@odoo/o-spreadsheet 16.2.13 → 16.2.16
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 +112 -62
- package/dist/o-spreadsheet.d.ts +13 -5
- package/dist/o-spreadsheet.esm.js +112 -62
- package/dist/o-spreadsheet.iife.js +112 -62
- package/dist/o-spreadsheet.iife.min.js +244 -243
- package/package.json +1 -1
|
@@ -988,13 +988,17 @@
|
|
|
988
988
|
return position === "after" ? base + 1 : base;
|
|
989
989
|
}
|
|
990
990
|
/**
|
|
991
|
-
*
|
|
991
|
+
* Compares two objects.
|
|
992
992
|
*/
|
|
993
993
|
function deepEquals(o1, o2) {
|
|
994
994
|
if (o1 === o2)
|
|
995
995
|
return true;
|
|
996
996
|
if ((o1 && !o2) || (o2 && !o1))
|
|
997
997
|
return false;
|
|
998
|
+
if (typeof o1 !== typeof o2)
|
|
999
|
+
return false;
|
|
1000
|
+
if (typeof o1 !== "object")
|
|
1001
|
+
return o1 === o2;
|
|
998
1002
|
// Objects can have different keys if the values are undefined
|
|
999
1003
|
const keys = new Set();
|
|
1000
1004
|
Object.keys(o1).forEach((key) => keys.add(key));
|
|
@@ -4680,6 +4684,7 @@
|
|
|
4680
4684
|
padding: 10px;
|
|
4681
4685
|
width: ${ERROR_TOOLTIP_WIDTH}px;
|
|
4682
4686
|
box-sizing: border-box !important;
|
|
4687
|
+
overflow-wrap: break-word;
|
|
4683
4688
|
}
|
|
4684
4689
|
`;
|
|
4685
4690
|
class ErrorToolTip extends owl.Component {
|
|
@@ -7242,6 +7247,7 @@
|
|
|
7242
7247
|
this.labelsAsText = definition.labelsAsText;
|
|
7243
7248
|
this.stacked = definition.stacked;
|
|
7244
7249
|
this.aggregated = definition.aggregated;
|
|
7250
|
+
this.cumulative = definition.cumulative;
|
|
7245
7251
|
}
|
|
7246
7252
|
static validateChartDefinition(validator, definition) {
|
|
7247
7253
|
return validator.checkValidations(definition, checkDataset, checkLabelRange);
|
|
@@ -7262,6 +7268,7 @@
|
|
|
7262
7268
|
labelRange: context.auxiliaryRange || undefined,
|
|
7263
7269
|
stacked: false,
|
|
7264
7270
|
aggregated: false,
|
|
7271
|
+
cumulative: false,
|
|
7265
7272
|
};
|
|
7266
7273
|
}
|
|
7267
7274
|
getDefinition() {
|
|
@@ -7282,6 +7289,7 @@
|
|
|
7282
7289
|
labelsAsText: this.labelsAsText,
|
|
7283
7290
|
stacked: this.stacked,
|
|
7284
7291
|
aggregated: this.aggregated,
|
|
7292
|
+
cumulative: this.cumulative,
|
|
7285
7293
|
};
|
|
7286
7294
|
}
|
|
7287
7295
|
getContextCreation() {
|
|
@@ -7485,6 +7493,16 @@
|
|
|
7485
7493
|
if (chart.stacked) {
|
|
7486
7494
|
backgroundRGBA.a = LINE_FILL_TRANSPARENCY;
|
|
7487
7495
|
}
|
|
7496
|
+
if (chart.cumulative) {
|
|
7497
|
+
let accumulator = 0;
|
|
7498
|
+
data = data.map((value) => {
|
|
7499
|
+
if (!isNaN(value)) {
|
|
7500
|
+
accumulator += parseFloat(value);
|
|
7501
|
+
return accumulator;
|
|
7502
|
+
}
|
|
7503
|
+
return value;
|
|
7504
|
+
});
|
|
7505
|
+
}
|
|
7488
7506
|
const backgroundColor = rgbaToHex(backgroundRGBA);
|
|
7489
7507
|
const dataset = {
|
|
7490
7508
|
label,
|
|
@@ -8267,6 +8285,7 @@
|
|
|
8267
8285
|
labelsAsText: false,
|
|
8268
8286
|
stacked: false,
|
|
8269
8287
|
aggregated: false,
|
|
8288
|
+
cumulative: false,
|
|
8270
8289
|
labelRange: labelRangeXc,
|
|
8271
8290
|
type: "line",
|
|
8272
8291
|
dataSetsHaveTitle,
|
|
@@ -8629,6 +8648,13 @@
|
|
|
8629
8648
|
elements: rows,
|
|
8630
8649
|
});
|
|
8631
8650
|
};
|
|
8651
|
+
const CAN_REMOVE_COLUMNS_ROWS = (dimension, env) => {
|
|
8652
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
8653
|
+
const selectedElements = env.model.getters.getElementsFromSelection(dimension);
|
|
8654
|
+
const includesAllVisibleHeaders = env.model.getters.checkElementsIncludeAllVisibleHeaders(sheetId, dimension, selectedElements);
|
|
8655
|
+
const includesAllNonFrozenHeaders = env.model.getters.checkElementsIncludeAllNonFrozenHeaders(sheetId, dimension, selectedElements);
|
|
8656
|
+
return !includesAllVisibleHeaders && !includesAllNonFrozenHeaders;
|
|
8657
|
+
};
|
|
8632
8658
|
const REMOVE_COLUMNS_NAME = (env) => {
|
|
8633
8659
|
if (env.model.getters.getSelectedZones().length > 1) {
|
|
8634
8660
|
return _lt("Delete columns");
|
|
@@ -9219,11 +9245,7 @@
|
|
|
9219
9245
|
name: REMOVE_COLUMNS_NAME,
|
|
9220
9246
|
sequence: 90,
|
|
9221
9247
|
action: REMOVE_COLUMNS_ACTION,
|
|
9222
|
-
isVisible: (env) =>
|
|
9223
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
9224
|
-
const selectedCols = env.model.getters.getElementsFromSelection("COL");
|
|
9225
|
-
return env.model.getters.canRemoveHeaders(sheetId, "COL", selectedCols);
|
|
9226
|
-
},
|
|
9248
|
+
isVisible: (env) => CAN_REMOVE_COLUMNS_ROWS("COL", env),
|
|
9227
9249
|
})
|
|
9228
9250
|
.add("clear_column", {
|
|
9229
9251
|
name: DELETE_CONTENT_COLUMNS_NAME,
|
|
@@ -9237,7 +9259,7 @@
|
|
|
9237
9259
|
isVisible: (env) => {
|
|
9238
9260
|
const sheetId = env.model.getters.getActiveSheetId();
|
|
9239
9261
|
const selectedCols = env.model.getters.getElementsFromSelection("COL");
|
|
9240
|
-
return env.model.getters.
|
|
9262
|
+
return !env.model.getters.checkElementsIncludeAllVisibleHeaders(sheetId, "COL", selectedCols);
|
|
9241
9263
|
},
|
|
9242
9264
|
separator: true,
|
|
9243
9265
|
})
|
|
@@ -9311,11 +9333,7 @@
|
|
|
9311
9333
|
name: REMOVE_ROWS_NAME,
|
|
9312
9334
|
sequence: 70,
|
|
9313
9335
|
action: REMOVE_ROWS_ACTION,
|
|
9314
|
-
isVisible: (env) =>
|
|
9315
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
9316
|
-
const selectedRows = env.model.getters.getElementsFromSelection("ROW");
|
|
9317
|
-
return env.model.getters.canRemoveHeaders(sheetId, "ROW", selectedRows);
|
|
9318
|
-
},
|
|
9336
|
+
isVisible: (env) => CAN_REMOVE_COLUMNS_ROWS("ROW", env),
|
|
9319
9337
|
})
|
|
9320
9338
|
.add("clear_row", {
|
|
9321
9339
|
name: DELETE_CONTENT_ROWS_NAME,
|
|
@@ -9329,7 +9347,7 @@
|
|
|
9329
9347
|
isVisible: (env) => {
|
|
9330
9348
|
const sheetId = env.model.getters.getActiveSheetId();
|
|
9331
9349
|
const selectedRows = env.model.getters.getElementsFromSelection("ROW");
|
|
9332
|
-
return env.model.getters.
|
|
9350
|
+
return !env.model.getters.checkElementsIncludeAllVisibleHeaders(sheetId, "ROW", selectedRows);
|
|
9333
9351
|
},
|
|
9334
9352
|
separator: true,
|
|
9335
9353
|
})
|
|
@@ -16175,11 +16193,13 @@
|
|
|
16175
16193
|
name: REMOVE_ROWS_NAME,
|
|
16176
16194
|
sequence: 80,
|
|
16177
16195
|
action: REMOVE_ROWS_ACTION,
|
|
16196
|
+
isVisible: (env) => CAN_REMOVE_COLUMNS_ROWS("ROW", env),
|
|
16178
16197
|
})
|
|
16179
16198
|
.addChild("edit_delete_column", ["edit"], {
|
|
16180
16199
|
name: REMOVE_COLUMNS_NAME,
|
|
16181
16200
|
sequence: 90,
|
|
16182
16201
|
action: REMOVE_COLUMNS_ACTION,
|
|
16202
|
+
isVisible: (env) => CAN_REMOVE_COLUMNS_ROWS("COL", env),
|
|
16183
16203
|
})
|
|
16184
16204
|
.addChild("edit_delete_cell_shift_up", ["edit"], {
|
|
16185
16205
|
name: _lt("Delete cell and shift up"),
|
|
@@ -17492,6 +17512,11 @@
|
|
|
17492
17512
|
aggregated: ev.target.checked,
|
|
17493
17513
|
});
|
|
17494
17514
|
}
|
|
17515
|
+
onUpdateCumulative(ev) {
|
|
17516
|
+
this.props.updateChart(this.props.figureId, {
|
|
17517
|
+
cumulative: ev.target.checked,
|
|
17518
|
+
});
|
|
17519
|
+
}
|
|
17495
17520
|
}
|
|
17496
17521
|
LineConfigPanel.template = "o-spreadsheet-LineConfigPanel";
|
|
17497
17522
|
|
|
@@ -19031,34 +19056,25 @@
|
|
|
19031
19056
|
};
|
|
19032
19057
|
|
|
19033
19058
|
function startDnd(onMouseMove, onMouseUp, onMouseDown = () => { }) {
|
|
19034
|
-
const _onMouseDown = (ev) => {
|
|
19035
|
-
ev.preventDefault();
|
|
19036
|
-
onMouseDown(ev);
|
|
19037
|
-
};
|
|
19038
|
-
const _onMouseMove = (ev) => {
|
|
19039
|
-
ev.preventDefault();
|
|
19040
|
-
onMouseMove(ev);
|
|
19041
|
-
};
|
|
19042
19059
|
const _onMouseUp = (ev) => {
|
|
19043
|
-
ev.preventDefault();
|
|
19044
19060
|
onMouseUp(ev);
|
|
19045
|
-
window.removeEventListener("mousedown",
|
|
19061
|
+
window.removeEventListener("mousedown", onMouseDown);
|
|
19046
19062
|
window.removeEventListener("mouseup", _onMouseUp);
|
|
19047
19063
|
window.removeEventListener("dragstart", _onDragStart);
|
|
19048
|
-
window.removeEventListener("mousemove",
|
|
19049
|
-
window.removeEventListener("wheel",
|
|
19064
|
+
window.removeEventListener("mousemove", onMouseMove);
|
|
19065
|
+
window.removeEventListener("wheel", onMouseMove);
|
|
19050
19066
|
};
|
|
19051
19067
|
function _onDragStart(ev) {
|
|
19052
19068
|
ev.preventDefault();
|
|
19053
19069
|
}
|
|
19054
|
-
window.addEventListener("mousedown",
|
|
19070
|
+
window.addEventListener("mousedown", onMouseDown);
|
|
19055
19071
|
window.addEventListener("mouseup", _onMouseUp);
|
|
19056
19072
|
window.addEventListener("dragstart", _onDragStart);
|
|
19057
|
-
window.addEventListener("mousemove",
|
|
19073
|
+
window.addEventListener("mousemove", onMouseMove);
|
|
19058
19074
|
// mouse wheel on window is by default a passive event.
|
|
19059
19075
|
// preventDefault() is not allowed in passive event handler.
|
|
19060
19076
|
// https://chromestatus.com/feature/6662647093133312
|
|
19061
|
-
window.addEventListener("wheel",
|
|
19077
|
+
window.addEventListener("wheel", onMouseMove, { passive: false });
|
|
19062
19078
|
}
|
|
19063
19079
|
/**
|
|
19064
19080
|
* Function to be used during a mousedown event, this function allows to
|
|
@@ -20860,9 +20876,11 @@
|
|
|
20860
20876
|
}
|
|
20861
20877
|
}
|
|
20862
20878
|
function updateMousePosition(e) {
|
|
20863
|
-
|
|
20864
|
-
|
|
20865
|
-
|
|
20879
|
+
if (gridRef.el === e.target) {
|
|
20880
|
+
x = e.offsetX;
|
|
20881
|
+
y = e.offsetY;
|
|
20882
|
+
lastMoved = Date.now();
|
|
20883
|
+
}
|
|
20866
20884
|
}
|
|
20867
20885
|
function recompute() {
|
|
20868
20886
|
const { col, row } = getPosition();
|
|
@@ -22303,7 +22321,8 @@
|
|
|
22303
22321
|
}
|
|
22304
22322
|
let prevCol = col;
|
|
22305
22323
|
let prevRow = row;
|
|
22306
|
-
const onMouseMove = (col, row) => {
|
|
22324
|
+
const onMouseMove = (col, row, ev) => {
|
|
22325
|
+
ev.preventDefault();
|
|
22307
22326
|
if ((col !== prevCol && col != -1) || (row !== prevRow && row != -1)) {
|
|
22308
22327
|
prevCol = col === -1 ? prevCol : col;
|
|
22309
22328
|
prevRow = row === -1 ? prevRow : row;
|
|
@@ -24974,6 +24993,7 @@
|
|
|
24974
24993
|
legendPosition: chartData.legendPosition,
|
|
24975
24994
|
stacked: chartData.stacked || false,
|
|
24976
24995
|
aggregated: false,
|
|
24996
|
+
cumulative: chartData.cumulative || false,
|
|
24977
24997
|
labelsAsText: false,
|
|
24978
24998
|
};
|
|
24979
24999
|
}
|
|
@@ -29628,7 +29648,7 @@
|
|
|
29628
29648
|
if (!this.getters.tryGetSheet(cmd.sheetId)) {
|
|
29629
29649
|
return 27 /* CommandResult.InvalidSheetId */;
|
|
29630
29650
|
}
|
|
29631
|
-
if (
|
|
29651
|
+
if (this.checkElementsIncludeAllVisibleHeaders(cmd.sheetId, cmd.dimension, cmd.elements)) {
|
|
29632
29652
|
return 8 /* CommandResult.NotEnoughElements */;
|
|
29633
29653
|
}
|
|
29634
29654
|
return 0 /* CommandResult.Success */;
|
|
@@ -29678,9 +29698,9 @@
|
|
|
29678
29698
|
}
|
|
29679
29699
|
return;
|
|
29680
29700
|
}
|
|
29681
|
-
|
|
29701
|
+
checkElementsIncludeAllVisibleHeaders(sheetId, dimension, elements) {
|
|
29682
29702
|
const visibleHeaders = this.getAllVisibleHeaders(sheetId, dimension);
|
|
29683
|
-
return
|
|
29703
|
+
return includesAll(elements, visibleHeaders);
|
|
29684
29704
|
}
|
|
29685
29705
|
isRowHiddenByUser(sheetId, index) {
|
|
29686
29706
|
return this.hiddenHeaders[sheetId].ROW[index];
|
|
@@ -29776,7 +29796,7 @@
|
|
|
29776
29796
|
}
|
|
29777
29797
|
}
|
|
29778
29798
|
HeaderVisibilityPlugin.getters = [
|
|
29779
|
-
"
|
|
29799
|
+
"checkElementsIncludeAllVisibleHeaders",
|
|
29780
29800
|
"getHiddenColsGroups",
|
|
29781
29801
|
"getHiddenRowsGroups",
|
|
29782
29802
|
"isRowHiddenByUser",
|
|
@@ -30813,6 +30833,9 @@
|
|
|
30813
30833
|
if (Math.min(...cmd.elements) < 0 || Math.max(...cmd.elements) > elements) {
|
|
30814
30834
|
return 86 /* CommandResult.InvalidHeaderIndex */;
|
|
30815
30835
|
}
|
|
30836
|
+
else if (this.checkElementsIncludeAllNonFrozenHeaders(cmd.sheetId, cmd.dimension, cmd.elements)) {
|
|
30837
|
+
return 8 /* CommandResult.NotEnoughElements */;
|
|
30838
|
+
}
|
|
30816
30839
|
else {
|
|
30817
30840
|
return 0 /* CommandResult.Success */;
|
|
30818
30841
|
}
|
|
@@ -31099,6 +31122,20 @@
|
|
|
31099
31122
|
}
|
|
31100
31123
|
this.history.update("sheets", sheetId, "panes", panes);
|
|
31101
31124
|
}
|
|
31125
|
+
/**
|
|
31126
|
+
* Checks if all non-frozen header indices are present in the provided elements of selected rows/columns.
|
|
31127
|
+
* This validation ensures that all rows or columns cannot be deleted when frozen panes exist.
|
|
31128
|
+
*/
|
|
31129
|
+
checkElementsIncludeAllNonFrozenHeaders(sheetId, dimension, elements) {
|
|
31130
|
+
const paneDivisions = this.getters.getPaneDivisions(sheetId);
|
|
31131
|
+
const startIndex = dimension === "ROW" ? paneDivisions.ySplit : paneDivisions.xSplit;
|
|
31132
|
+
const endIndex = this.getters.getNumberHeaders(sheetId, dimension);
|
|
31133
|
+
if (!startIndex) {
|
|
31134
|
+
return false;
|
|
31135
|
+
}
|
|
31136
|
+
const indicesToCheck = range(startIndex, endIndex);
|
|
31137
|
+
return includesAll(elements, indicesToCheck);
|
|
31138
|
+
}
|
|
31102
31139
|
// ---------------------------------------------------------------------------
|
|
31103
31140
|
// Row/Col manipulation
|
|
31104
31141
|
// ---------------------------------------------------------------------------
|
|
@@ -31627,6 +31664,7 @@
|
|
|
31627
31664
|
"getSheetSize",
|
|
31628
31665
|
"getSheetZone",
|
|
31629
31666
|
"getPaneDivisions",
|
|
31667
|
+
"checkElementsIncludeAllNonFrozenHeaders",
|
|
31630
31668
|
];
|
|
31631
31669
|
|
|
31632
31670
|
/**
|
|
@@ -32193,6 +32231,7 @@
|
|
|
32193
32231
|
// stores the computed styles in the format of computedStyles.sheetName[col][row] = Style
|
|
32194
32232
|
this.computedStyles = {};
|
|
32195
32233
|
this.computedIcons = {};
|
|
32234
|
+
this.uuidGenerator = new UuidGenerator();
|
|
32196
32235
|
/**
|
|
32197
32236
|
* Execute the predicate to know if a conditional formatting rule should be applied to a cell
|
|
32198
32237
|
*/
|
|
@@ -32545,13 +32584,20 @@
|
|
|
32545
32584
|
this.adaptRules(origin.sheetId, cf, [xc], toRemoveRange);
|
|
32546
32585
|
}
|
|
32547
32586
|
else {
|
|
32548
|
-
this.adaptRules(target.sheetId, cf, [xc], []);
|
|
32549
32587
|
this.adaptRules(origin.sheetId, cf, [], toRemoveRange);
|
|
32588
|
+
const cfToCopyTo = this.getCFToCopyTo(target.sheetId, cf);
|
|
32589
|
+
this.adaptRules(target.sheetId, cfToCopyTo, [xc], []);
|
|
32550
32590
|
}
|
|
32551
32591
|
}
|
|
32552
32592
|
}
|
|
32553
32593
|
}
|
|
32554
32594
|
}
|
|
32595
|
+
getCFToCopyTo(targetSheetId, originCF) {
|
|
32596
|
+
const cfInTarget = this.getters
|
|
32597
|
+
.getConditionalFormats(targetSheetId)
|
|
32598
|
+
.find((cf) => cf.stopIfTrue === originCF.stopIfTrue && deepEquals(cf.rule, originCF.rule));
|
|
32599
|
+
return cfInTarget ? cfInTarget : { ...originCF, id: this.uuidGenerator.uuidv4(), ranges: [] };
|
|
32600
|
+
}
|
|
32555
32601
|
}
|
|
32556
32602
|
EvaluationConditionalFormatPlugin.getters = ["getConditionalIcon", "getCellComputedStyle"];
|
|
32557
32603
|
|
|
@@ -33073,6 +33119,9 @@
|
|
|
33073
33119
|
const sheetId = this.sheetId;
|
|
33074
33120
|
this.left = this.searchHeaderIndex("COL", this.offsetScrollbarX, this.boundaries.left);
|
|
33075
33121
|
this.right = Math.min(this.boundaries.right, this.searchHeaderIndex("COL", this.viewportWidth, this.left));
|
|
33122
|
+
if (this.left === -1) {
|
|
33123
|
+
this.left = this.boundaries.left;
|
|
33124
|
+
}
|
|
33076
33125
|
if (this.right === -1) {
|
|
33077
33126
|
this.right = this.getters.getNumberCols(sheetId) - 1;
|
|
33078
33127
|
}
|
|
@@ -33086,6 +33135,9 @@
|
|
|
33086
33135
|
const sheetId = this.sheetId;
|
|
33087
33136
|
this.top = this.searchHeaderIndex("ROW", this.offsetScrollbarY, this.boundaries.top);
|
|
33088
33137
|
this.bottom = Math.min(this.boundaries.bottom, this.searchHeaderIndex("ROW", this.viewportHeight, this.top));
|
|
33138
|
+
if (this.top === -1) {
|
|
33139
|
+
this.top = this.boundaries.top;
|
|
33140
|
+
}
|
|
33089
33141
|
if (this.bottom === -1) {
|
|
33090
33142
|
this.bottom = this.getters.getNumberRows(sheetId) - 1;
|
|
33091
33143
|
}
|
|
@@ -38007,7 +38059,7 @@
|
|
|
38007
38059
|
allowDispatch(cmd) {
|
|
38008
38060
|
switch (cmd.type) {
|
|
38009
38061
|
case "CUT":
|
|
38010
|
-
const zones =
|
|
38062
|
+
const zones = this.getters.getSelectedZones();
|
|
38011
38063
|
const state = this.getClipboardState(zones, cmd.type);
|
|
38012
38064
|
return state.isCutAllowed(zones);
|
|
38013
38065
|
case "PASTE":
|
|
@@ -38038,7 +38090,7 @@
|
|
|
38038
38090
|
switch (cmd.type) {
|
|
38039
38091
|
case "COPY":
|
|
38040
38092
|
case "CUT":
|
|
38041
|
-
const zones =
|
|
38093
|
+
const zones = this.getters.getSelectedZones();
|
|
38042
38094
|
this.state = this.getClipboardState(zones, cmd.type);
|
|
38043
38095
|
this.status = "visible";
|
|
38044
38096
|
break;
|
|
@@ -39418,26 +39470,24 @@
|
|
|
39418
39470
|
const isBasedBefore = cmd.base < start;
|
|
39419
39471
|
const deltaCol = isBasedBefore && isCol ? thickness : 0;
|
|
39420
39472
|
const deltaRow = isBasedBefore && !isCol ? thickness : 0;
|
|
39421
|
-
|
|
39422
|
-
|
|
39423
|
-
|
|
39424
|
-
|
|
39425
|
-
|
|
39426
|
-
|
|
39427
|
-
|
|
39428
|
-
|
|
39429
|
-
|
|
39430
|
-
|
|
39431
|
-
|
|
39432
|
-
|
|
39433
|
-
|
|
39434
|
-
|
|
39435
|
-
|
|
39436
|
-
|
|
39437
|
-
|
|
39438
|
-
|
|
39439
|
-
],
|
|
39440
|
-
});
|
|
39473
|
+
const target = [
|
|
39474
|
+
{
|
|
39475
|
+
left: isCol ? start + deltaCol : 0,
|
|
39476
|
+
right: isCol ? end + deltaCol : this.getters.getNumberCols(cmd.sheetId) - 1,
|
|
39477
|
+
top: !isCol ? start + deltaRow : 0,
|
|
39478
|
+
bottom: !isCol ? end + deltaRow : this.getters.getNumberRows(cmd.sheetId) - 1,
|
|
39479
|
+
},
|
|
39480
|
+
];
|
|
39481
|
+
const state = new ClipboardCellsState(target, "CUT", this.getters, this.dispatch, this.selection);
|
|
39482
|
+
const pasteTarget = [
|
|
39483
|
+
{
|
|
39484
|
+
left: isCol ? cmd.base : 0,
|
|
39485
|
+
right: isCol ? cmd.base + thickness - 1 : this.getters.getNumberCols(cmd.sheetId) - 1,
|
|
39486
|
+
top: !isCol ? cmd.base : 0,
|
|
39487
|
+
bottom: !isCol ? cmd.base + thickness - 1 : this.getters.getNumberRows(cmd.sheetId) - 1,
|
|
39488
|
+
},
|
|
39489
|
+
];
|
|
39490
|
+
state.paste(pasteTarget, { selectTarget: true });
|
|
39441
39491
|
const toRemove = isBasedBefore ? cmd.elements.map((el) => el + thickness) : cmd.elements;
|
|
39442
39492
|
let currentIndex = cmd.base;
|
|
39443
39493
|
for (const element of toRemove) {
|
|
@@ -45407,9 +45457,9 @@
|
|
|
45407
45457
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
45408
45458
|
|
|
45409
45459
|
|
|
45410
|
-
__info__.version = '16.2.
|
|
45411
|
-
__info__.date = '2023-
|
|
45412
|
-
__info__.hash = '
|
|
45460
|
+
__info__.version = '16.2.16';
|
|
45461
|
+
__info__.date = '2023-09-21T15:56:53.639Z';
|
|
45462
|
+
__info__.hash = '1a70819';
|
|
45413
45463
|
|
|
45414
45464
|
|
|
45415
45465
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|