@odoo/o-spreadsheet 16.4.12 → 16.4.14
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 +35 -32
- package/dist/o-spreadsheet.d.ts +2 -2
- package/dist/o-spreadsheet.esm.js +35 -32
- package/dist/o-spreadsheet.iife.js +35 -32
- package/dist/o-spreadsheet.iife.min.js +77 -77
- package/dist/o_spreadsheet.xml +3 -3
- package/package.json +1 -1
|
@@ -18569,6 +18569,17 @@ const SELECTION_CONTAINS_FILTER = (env) => {
|
|
|
18569
18569
|
//------------------------------------------------------------------------------
|
|
18570
18570
|
const IS_ONLY_ONE_RANGE = (env) => {
|
|
18571
18571
|
return env.model.getters.getSelectedZones().length === 1;
|
|
18572
|
+
};
|
|
18573
|
+
const CAN_INSERT_HEADER = (env, dimension) => {
|
|
18574
|
+
if (!IS_ONLY_ONE_RANGE(env)) {
|
|
18575
|
+
return false;
|
|
18576
|
+
}
|
|
18577
|
+
const activeHeaders = dimension === "COL" ? env.model.getters.getActiveCols() : env.model.getters.getActiveRows();
|
|
18578
|
+
const ortogonalActiveHeaders = dimension === "COL" ? env.model.getters.getActiveRows() : env.model.getters.getActiveCols();
|
|
18579
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
18580
|
+
const zone = env.model.getters.getSelectedZone();
|
|
18581
|
+
const allSheetSelected = isEqual(zone, env.model.getters.getSheetZone(sheetId));
|
|
18582
|
+
return isConsecutive(activeHeaders) && (ortogonalActiveHeaders.size === 0 || allSheetSelected);
|
|
18572
18583
|
};
|
|
18573
18584
|
|
|
18574
18585
|
const undo = {
|
|
@@ -18758,9 +18769,7 @@ const insertRow = {
|
|
|
18758
18769
|
const number = getRowsNumber(env);
|
|
18759
18770
|
return number === 1 ? _lt("Insert row") : _lt("Insert %s rows", number.toString());
|
|
18760
18771
|
},
|
|
18761
|
-
isVisible: (env) =>
|
|
18762
|
-
IS_ONLY_ONE_RANGE(env) &&
|
|
18763
|
-
env.model.getters.getActiveCols().size === 0,
|
|
18772
|
+
isVisible: (env) => CAN_INSERT_HEADER(env, "ROW"),
|
|
18764
18773
|
icon: "o-spreadsheet-Icon.INSERT_ROW",
|
|
18765
18774
|
};
|
|
18766
18775
|
const rowInsertRowBefore = {
|
|
@@ -18769,9 +18778,7 @@ const rowInsertRowBefore = {
|
|
|
18769
18778
|
return number === 1 ? _lt("Insert row above") : _lt("Insert %s rows above", number.toString());
|
|
18770
18779
|
},
|
|
18771
18780
|
execute: INSERT_ROWS_BEFORE_ACTION,
|
|
18772
|
-
isVisible: (env) =>
|
|
18773
|
-
IS_ONLY_ONE_RANGE(env) &&
|
|
18774
|
-
env.model.getters.getActiveCols().size === 0,
|
|
18781
|
+
isVisible: (env) => CAN_INSERT_HEADER(env, "ROW"),
|
|
18775
18782
|
icon: "o-spreadsheet-Icon.INSERT_ROW_BEFORE",
|
|
18776
18783
|
};
|
|
18777
18784
|
const topBarInsertRowsBefore = {
|
|
@@ -18802,9 +18809,7 @@ const rowInsertRowsAfter = {
|
|
|
18802
18809
|
const number = getRowsNumber(env);
|
|
18803
18810
|
return number === 1 ? _lt("Insert row below") : _lt("Insert %s rows below", number.toString());
|
|
18804
18811
|
},
|
|
18805
|
-
isVisible: (env) =>
|
|
18806
|
-
IS_ONLY_ONE_RANGE(env) &&
|
|
18807
|
-
env.model.getters.getActiveCols().size === 0,
|
|
18812
|
+
isVisible: (env) => CAN_INSERT_HEADER(env, "ROW"),
|
|
18808
18813
|
icon: "o-spreadsheet-Icon.INSERT_ROW_AFTER",
|
|
18809
18814
|
};
|
|
18810
18815
|
const topBarInsertRowsAfter = {
|
|
@@ -18822,9 +18827,7 @@ const insertCol = {
|
|
|
18822
18827
|
const number = getColumnsNumber(env);
|
|
18823
18828
|
return number === 1 ? _lt("Insert column") : _lt("Insert %s columns", number.toString());
|
|
18824
18829
|
},
|
|
18825
|
-
isVisible: (env) =>
|
|
18826
|
-
IS_ONLY_ONE_RANGE(env) &&
|
|
18827
|
-
env.model.getters.getActiveRows().size === 0,
|
|
18830
|
+
isVisible: (env) => CAN_INSERT_HEADER(env, "COL"),
|
|
18828
18831
|
icon: "o-spreadsheet-Icon.INSERT_COL",
|
|
18829
18832
|
};
|
|
18830
18833
|
const colInsertColsBefore = {
|
|
@@ -18835,9 +18838,7 @@ const colInsertColsBefore = {
|
|
|
18835
18838
|
: _lt("Insert %s columns left", number.toString());
|
|
18836
18839
|
},
|
|
18837
18840
|
execute: INSERT_COLUMNS_BEFORE_ACTION,
|
|
18838
|
-
isVisible: (env) =>
|
|
18839
|
-
IS_ONLY_ONE_RANGE(env) &&
|
|
18840
|
-
env.model.getters.getActiveRows().size === 0,
|
|
18841
|
+
isVisible: (env) => CAN_INSERT_HEADER(env, "COL"),
|
|
18841
18842
|
icon: "o-spreadsheet-Icon.INSERT_COL_BEFORE",
|
|
18842
18843
|
};
|
|
18843
18844
|
const topBarInsertColsBefore = {
|
|
@@ -18870,9 +18871,7 @@ const colInsertColsAfter = {
|
|
|
18870
18871
|
: _lt("Insert %s columns right", number.toString());
|
|
18871
18872
|
},
|
|
18872
18873
|
execute: INSERT_COLUMNS_AFTER_ACTION,
|
|
18873
|
-
isVisible: (env) =>
|
|
18874
|
-
IS_ONLY_ONE_RANGE(env) &&
|
|
18875
|
-
env.model.getters.getActiveRows().size === 0,
|
|
18874
|
+
isVisible: (env) => CAN_INSERT_HEADER(env, "COL"),
|
|
18876
18875
|
icon: "o-spreadsheet-Icon.INSERT_COL_AFTER",
|
|
18877
18876
|
};
|
|
18878
18877
|
const topBarInsertColsAfter = {
|
|
@@ -22830,7 +22829,7 @@ css /* scss */ `
|
|
|
22830
22829
|
}
|
|
22831
22830
|
.o-input-count {
|
|
22832
22831
|
width: fit-content;
|
|
22833
|
-
padding:
|
|
22832
|
+
padding: 4px 0 4px 4px;
|
|
22834
22833
|
}
|
|
22835
22834
|
}
|
|
22836
22835
|
}
|
|
@@ -33077,6 +33076,13 @@ class FiltersPlugin extends CorePlugin {
|
|
|
33077
33076
|
}
|
|
33078
33077
|
onDeleteColumnsRows(cmd) {
|
|
33079
33078
|
for (const table of this.getFilterTables(cmd.sheetId)) {
|
|
33079
|
+
// Remove the filter tables whose data filter headers are in the removed rows.
|
|
33080
|
+
if (cmd.dimension === "ROW" && cmd.elements.includes(table.zone.top)) {
|
|
33081
|
+
const tables = { ...this.tables[cmd.sheetId] };
|
|
33082
|
+
delete tables[table.id];
|
|
33083
|
+
this.history.update("tables", cmd.sheetId, tables);
|
|
33084
|
+
continue;
|
|
33085
|
+
}
|
|
33080
33086
|
const zone = reduceZoneOnDeletion(table.zone, cmd.dimension === "COL" ? "left" : "top", cmd.elements);
|
|
33081
33087
|
if (!zone) {
|
|
33082
33088
|
const tables = { ...this.tables[cmd.sheetId] };
|
|
@@ -35812,9 +35818,6 @@ class Evaluator {
|
|
|
35812
35818
|
}
|
|
35813
35819
|
}
|
|
35814
35820
|
setEvaluatedCell(positionId, evaluatedCell) {
|
|
35815
|
-
if (this.nextPositionsToUpdate.has(positionId)) {
|
|
35816
|
-
this.nextPositionsToUpdate.delete(positionId);
|
|
35817
|
-
}
|
|
35818
35821
|
this.evaluatedCells.set(positionId, evaluatedCell);
|
|
35819
35822
|
}
|
|
35820
35823
|
computeCell(positionId) {
|
|
@@ -36528,22 +36531,20 @@ class EvaluationChartPlugin extends UIPlugin {
|
|
|
36528
36531
|
invalidateCFEvaluationCommands.has(cmd.type) ||
|
|
36529
36532
|
cmd.type === "EVALUATE_CELLS" ||
|
|
36530
36533
|
cmd.type === "UPDATE_CELL") {
|
|
36531
|
-
|
|
36532
|
-
|
|
36533
|
-
this.history.update("charts", chartId, undefined);
|
|
36534
|
-
}
|
|
36534
|
+
for (const chartId in this.charts) {
|
|
36535
|
+
this.charts[chartId] = undefined;
|
|
36535
36536
|
}
|
|
36536
36537
|
}
|
|
36537
36538
|
switch (cmd.type) {
|
|
36538
36539
|
case "UPDATE_CHART":
|
|
36539
36540
|
case "CREATE_CHART":
|
|
36540
36541
|
case "DELETE_FIGURE":
|
|
36541
|
-
this.
|
|
36542
|
+
this.charts[cmd.id] = undefined;
|
|
36542
36543
|
break;
|
|
36543
36544
|
case "DELETE_SHEET":
|
|
36544
36545
|
for (let chartId in this.charts) {
|
|
36545
36546
|
if (!this.getters.isChartDefined(chartId)) {
|
|
36546
|
-
this.
|
|
36547
|
+
this.charts[chartId] = undefined;
|
|
36547
36548
|
}
|
|
36548
36549
|
}
|
|
36549
36550
|
break;
|
|
@@ -36555,7 +36556,7 @@ class EvaluationChartPlugin extends UIPlugin {
|
|
|
36555
36556
|
if (!chart) {
|
|
36556
36557
|
throw new Error(`No chart for the given id: ${figureId}`);
|
|
36557
36558
|
}
|
|
36558
|
-
this.
|
|
36559
|
+
this.charts[figureId] = this.createRuntimeChart(chart);
|
|
36559
36560
|
}
|
|
36560
36561
|
return this.charts[figureId];
|
|
36561
36562
|
}
|
|
@@ -43019,6 +43020,8 @@ class FilterEvaluationPlugin extends UIPlugin {
|
|
|
43019
43020
|
case "EVALUATE_CELLS":
|
|
43020
43021
|
case "ACTIVATE_SHEET":
|
|
43021
43022
|
case "REMOVE_FILTER_TABLE":
|
|
43023
|
+
case "ADD_COLUMNS_ROWS":
|
|
43024
|
+
case "REMOVE_COLUMNS_ROWS":
|
|
43022
43025
|
this.isEvaluationDirty = true;
|
|
43023
43026
|
break;
|
|
43024
43027
|
case "START":
|
|
@@ -50775,6 +50778,6 @@ exports.setTranslationMethod = setTranslationMethod;
|
|
|
50775
50778
|
exports.tokenize = tokenize;
|
|
50776
50779
|
|
|
50777
50780
|
|
|
50778
|
-
__info__.version = '16.4.
|
|
50779
|
-
__info__.date = '2023-11-
|
|
50780
|
-
__info__.hash = '
|
|
50781
|
+
__info__.version = '16.4.14';
|
|
50782
|
+
__info__.date = '2023-11-16T11:59:51.900Z';
|
|
50783
|
+
__info__.hash = '66c6f47';
|
package/dist/o-spreadsheet.d.ts
CHANGED
|
@@ -3819,11 +3819,11 @@ declare class CustomColorsPlugin extends UIPlugin<CustomColorState> {
|
|
|
3819
3819
|
}
|
|
3820
3820
|
|
|
3821
3821
|
interface EvaluationChartState {
|
|
3822
|
-
|
|
3822
|
+
charts: Record<UID, ChartRuntime | undefined>;
|
|
3823
3823
|
}
|
|
3824
3824
|
declare class EvaluationChartPlugin extends UIPlugin<EvaluationChartState> {
|
|
3825
3825
|
static getters: readonly ["getChartRuntime", "getBackgroundOfSingleCellChart"];
|
|
3826
|
-
|
|
3826
|
+
charts: Record<UID, ChartRuntime | undefined>;
|
|
3827
3827
|
private createRuntimeChart;
|
|
3828
3828
|
handle(cmd: CoreViewCommand): void;
|
|
3829
3829
|
getChartRuntime(figureId: UID): ChartRuntime;
|
|
@@ -18565,6 +18565,17 @@ const SELECTION_CONTAINS_FILTER = (env) => {
|
|
|
18565
18565
|
//------------------------------------------------------------------------------
|
|
18566
18566
|
const IS_ONLY_ONE_RANGE = (env) => {
|
|
18567
18567
|
return env.model.getters.getSelectedZones().length === 1;
|
|
18568
|
+
};
|
|
18569
|
+
const CAN_INSERT_HEADER = (env, dimension) => {
|
|
18570
|
+
if (!IS_ONLY_ONE_RANGE(env)) {
|
|
18571
|
+
return false;
|
|
18572
|
+
}
|
|
18573
|
+
const activeHeaders = dimension === "COL" ? env.model.getters.getActiveCols() : env.model.getters.getActiveRows();
|
|
18574
|
+
const ortogonalActiveHeaders = dimension === "COL" ? env.model.getters.getActiveRows() : env.model.getters.getActiveCols();
|
|
18575
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
18576
|
+
const zone = env.model.getters.getSelectedZone();
|
|
18577
|
+
const allSheetSelected = isEqual(zone, env.model.getters.getSheetZone(sheetId));
|
|
18578
|
+
return isConsecutive(activeHeaders) && (ortogonalActiveHeaders.size === 0 || allSheetSelected);
|
|
18568
18579
|
};
|
|
18569
18580
|
|
|
18570
18581
|
const undo = {
|
|
@@ -18754,9 +18765,7 @@ const insertRow = {
|
|
|
18754
18765
|
const number = getRowsNumber(env);
|
|
18755
18766
|
return number === 1 ? _lt("Insert row") : _lt("Insert %s rows", number.toString());
|
|
18756
18767
|
},
|
|
18757
|
-
isVisible: (env) =>
|
|
18758
|
-
IS_ONLY_ONE_RANGE(env) &&
|
|
18759
|
-
env.model.getters.getActiveCols().size === 0,
|
|
18768
|
+
isVisible: (env) => CAN_INSERT_HEADER(env, "ROW"),
|
|
18760
18769
|
icon: "o-spreadsheet-Icon.INSERT_ROW",
|
|
18761
18770
|
};
|
|
18762
18771
|
const rowInsertRowBefore = {
|
|
@@ -18765,9 +18774,7 @@ const rowInsertRowBefore = {
|
|
|
18765
18774
|
return number === 1 ? _lt("Insert row above") : _lt("Insert %s rows above", number.toString());
|
|
18766
18775
|
},
|
|
18767
18776
|
execute: INSERT_ROWS_BEFORE_ACTION,
|
|
18768
|
-
isVisible: (env) =>
|
|
18769
|
-
IS_ONLY_ONE_RANGE(env) &&
|
|
18770
|
-
env.model.getters.getActiveCols().size === 0,
|
|
18777
|
+
isVisible: (env) => CAN_INSERT_HEADER(env, "ROW"),
|
|
18771
18778
|
icon: "o-spreadsheet-Icon.INSERT_ROW_BEFORE",
|
|
18772
18779
|
};
|
|
18773
18780
|
const topBarInsertRowsBefore = {
|
|
@@ -18798,9 +18805,7 @@ const rowInsertRowsAfter = {
|
|
|
18798
18805
|
const number = getRowsNumber(env);
|
|
18799
18806
|
return number === 1 ? _lt("Insert row below") : _lt("Insert %s rows below", number.toString());
|
|
18800
18807
|
},
|
|
18801
|
-
isVisible: (env) =>
|
|
18802
|
-
IS_ONLY_ONE_RANGE(env) &&
|
|
18803
|
-
env.model.getters.getActiveCols().size === 0,
|
|
18808
|
+
isVisible: (env) => CAN_INSERT_HEADER(env, "ROW"),
|
|
18804
18809
|
icon: "o-spreadsheet-Icon.INSERT_ROW_AFTER",
|
|
18805
18810
|
};
|
|
18806
18811
|
const topBarInsertRowsAfter = {
|
|
@@ -18818,9 +18823,7 @@ const insertCol = {
|
|
|
18818
18823
|
const number = getColumnsNumber(env);
|
|
18819
18824
|
return number === 1 ? _lt("Insert column") : _lt("Insert %s columns", number.toString());
|
|
18820
18825
|
},
|
|
18821
|
-
isVisible: (env) =>
|
|
18822
|
-
IS_ONLY_ONE_RANGE(env) &&
|
|
18823
|
-
env.model.getters.getActiveRows().size === 0,
|
|
18826
|
+
isVisible: (env) => CAN_INSERT_HEADER(env, "COL"),
|
|
18824
18827
|
icon: "o-spreadsheet-Icon.INSERT_COL",
|
|
18825
18828
|
};
|
|
18826
18829
|
const colInsertColsBefore = {
|
|
@@ -18831,9 +18834,7 @@ const colInsertColsBefore = {
|
|
|
18831
18834
|
: _lt("Insert %s columns left", number.toString());
|
|
18832
18835
|
},
|
|
18833
18836
|
execute: INSERT_COLUMNS_BEFORE_ACTION,
|
|
18834
|
-
isVisible: (env) =>
|
|
18835
|
-
IS_ONLY_ONE_RANGE(env) &&
|
|
18836
|
-
env.model.getters.getActiveRows().size === 0,
|
|
18837
|
+
isVisible: (env) => CAN_INSERT_HEADER(env, "COL"),
|
|
18837
18838
|
icon: "o-spreadsheet-Icon.INSERT_COL_BEFORE",
|
|
18838
18839
|
};
|
|
18839
18840
|
const topBarInsertColsBefore = {
|
|
@@ -18866,9 +18867,7 @@ const colInsertColsAfter = {
|
|
|
18866
18867
|
: _lt("Insert %s columns right", number.toString());
|
|
18867
18868
|
},
|
|
18868
18869
|
execute: INSERT_COLUMNS_AFTER_ACTION,
|
|
18869
|
-
isVisible: (env) =>
|
|
18870
|
-
IS_ONLY_ONE_RANGE(env) &&
|
|
18871
|
-
env.model.getters.getActiveRows().size === 0,
|
|
18870
|
+
isVisible: (env) => CAN_INSERT_HEADER(env, "COL"),
|
|
18872
18871
|
icon: "o-spreadsheet-Icon.INSERT_COL_AFTER",
|
|
18873
18872
|
};
|
|
18874
18873
|
const topBarInsertColsAfter = {
|
|
@@ -22826,7 +22825,7 @@ css /* scss */ `
|
|
|
22826
22825
|
}
|
|
22827
22826
|
.o-input-count {
|
|
22828
22827
|
width: fit-content;
|
|
22829
|
-
padding:
|
|
22828
|
+
padding: 4px 0 4px 4px;
|
|
22830
22829
|
}
|
|
22831
22830
|
}
|
|
22832
22831
|
}
|
|
@@ -33073,6 +33072,13 @@ class FiltersPlugin extends CorePlugin {
|
|
|
33073
33072
|
}
|
|
33074
33073
|
onDeleteColumnsRows(cmd) {
|
|
33075
33074
|
for (const table of this.getFilterTables(cmd.sheetId)) {
|
|
33075
|
+
// Remove the filter tables whose data filter headers are in the removed rows.
|
|
33076
|
+
if (cmd.dimension === "ROW" && cmd.elements.includes(table.zone.top)) {
|
|
33077
|
+
const tables = { ...this.tables[cmd.sheetId] };
|
|
33078
|
+
delete tables[table.id];
|
|
33079
|
+
this.history.update("tables", cmd.sheetId, tables);
|
|
33080
|
+
continue;
|
|
33081
|
+
}
|
|
33076
33082
|
const zone = reduceZoneOnDeletion(table.zone, cmd.dimension === "COL" ? "left" : "top", cmd.elements);
|
|
33077
33083
|
if (!zone) {
|
|
33078
33084
|
const tables = { ...this.tables[cmd.sheetId] };
|
|
@@ -35808,9 +35814,6 @@ class Evaluator {
|
|
|
35808
35814
|
}
|
|
35809
35815
|
}
|
|
35810
35816
|
setEvaluatedCell(positionId, evaluatedCell) {
|
|
35811
|
-
if (this.nextPositionsToUpdate.has(positionId)) {
|
|
35812
|
-
this.nextPositionsToUpdate.delete(positionId);
|
|
35813
|
-
}
|
|
35814
35817
|
this.evaluatedCells.set(positionId, evaluatedCell);
|
|
35815
35818
|
}
|
|
35816
35819
|
computeCell(positionId) {
|
|
@@ -36524,22 +36527,20 @@ class EvaluationChartPlugin extends UIPlugin {
|
|
|
36524
36527
|
invalidateCFEvaluationCommands.has(cmd.type) ||
|
|
36525
36528
|
cmd.type === "EVALUATE_CELLS" ||
|
|
36526
36529
|
cmd.type === "UPDATE_CELL") {
|
|
36527
|
-
|
|
36528
|
-
|
|
36529
|
-
this.history.update("charts", chartId, undefined);
|
|
36530
|
-
}
|
|
36530
|
+
for (const chartId in this.charts) {
|
|
36531
|
+
this.charts[chartId] = undefined;
|
|
36531
36532
|
}
|
|
36532
36533
|
}
|
|
36533
36534
|
switch (cmd.type) {
|
|
36534
36535
|
case "UPDATE_CHART":
|
|
36535
36536
|
case "CREATE_CHART":
|
|
36536
36537
|
case "DELETE_FIGURE":
|
|
36537
|
-
this.
|
|
36538
|
+
this.charts[cmd.id] = undefined;
|
|
36538
36539
|
break;
|
|
36539
36540
|
case "DELETE_SHEET":
|
|
36540
36541
|
for (let chartId in this.charts) {
|
|
36541
36542
|
if (!this.getters.isChartDefined(chartId)) {
|
|
36542
|
-
this.
|
|
36543
|
+
this.charts[chartId] = undefined;
|
|
36543
36544
|
}
|
|
36544
36545
|
}
|
|
36545
36546
|
break;
|
|
@@ -36551,7 +36552,7 @@ class EvaluationChartPlugin extends UIPlugin {
|
|
|
36551
36552
|
if (!chart) {
|
|
36552
36553
|
throw new Error(`No chart for the given id: ${figureId}`);
|
|
36553
36554
|
}
|
|
36554
|
-
this.
|
|
36555
|
+
this.charts[figureId] = this.createRuntimeChart(chart);
|
|
36555
36556
|
}
|
|
36556
36557
|
return this.charts[figureId];
|
|
36557
36558
|
}
|
|
@@ -43015,6 +43016,8 @@ class FilterEvaluationPlugin extends UIPlugin {
|
|
|
43015
43016
|
case "EVALUATE_CELLS":
|
|
43016
43017
|
case "ACTIVATE_SHEET":
|
|
43017
43018
|
case "REMOVE_FILTER_TABLE":
|
|
43019
|
+
case "ADD_COLUMNS_ROWS":
|
|
43020
|
+
case "REMOVE_COLUMNS_ROWS":
|
|
43018
43021
|
this.isEvaluationDirty = true;
|
|
43019
43022
|
break;
|
|
43020
43023
|
case "START":
|
|
@@ -50739,6 +50742,6 @@ const constants = {
|
|
|
50739
50742
|
export { AbstractChart, CommandResult, CorePlugin, DispatchResult, EvaluationError, Model, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, UIPlugin, __info__, addFunction, astToFormula, compile, components, constants, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, invalidateCFEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, tokenize };
|
|
50740
50743
|
|
|
50741
50744
|
|
|
50742
|
-
__info__.version = '16.4.
|
|
50743
|
-
__info__.date = '2023-11-
|
|
50744
|
-
__info__.hash = '
|
|
50745
|
+
__info__.version = '16.4.14';
|
|
50746
|
+
__info__.date = '2023-11-16T11:59:51.900Z';
|
|
50747
|
+
__info__.hash = '66c6f47';
|
|
@@ -18566,6 +18566,17 @@
|
|
|
18566
18566
|
//------------------------------------------------------------------------------
|
|
18567
18567
|
const IS_ONLY_ONE_RANGE = (env) => {
|
|
18568
18568
|
return env.model.getters.getSelectedZones().length === 1;
|
|
18569
|
+
};
|
|
18570
|
+
const CAN_INSERT_HEADER = (env, dimension) => {
|
|
18571
|
+
if (!IS_ONLY_ONE_RANGE(env)) {
|
|
18572
|
+
return false;
|
|
18573
|
+
}
|
|
18574
|
+
const activeHeaders = dimension === "COL" ? env.model.getters.getActiveCols() : env.model.getters.getActiveRows();
|
|
18575
|
+
const ortogonalActiveHeaders = dimension === "COL" ? env.model.getters.getActiveRows() : env.model.getters.getActiveCols();
|
|
18576
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
18577
|
+
const zone = env.model.getters.getSelectedZone();
|
|
18578
|
+
const allSheetSelected = isEqual(zone, env.model.getters.getSheetZone(sheetId));
|
|
18579
|
+
return isConsecutive(activeHeaders) && (ortogonalActiveHeaders.size === 0 || allSheetSelected);
|
|
18569
18580
|
};
|
|
18570
18581
|
|
|
18571
18582
|
const undo = {
|
|
@@ -18755,9 +18766,7 @@
|
|
|
18755
18766
|
const number = getRowsNumber(env);
|
|
18756
18767
|
return number === 1 ? _lt("Insert row") : _lt("Insert %s rows", number.toString());
|
|
18757
18768
|
},
|
|
18758
|
-
isVisible: (env) =>
|
|
18759
|
-
IS_ONLY_ONE_RANGE(env) &&
|
|
18760
|
-
env.model.getters.getActiveCols().size === 0,
|
|
18769
|
+
isVisible: (env) => CAN_INSERT_HEADER(env, "ROW"),
|
|
18761
18770
|
icon: "o-spreadsheet-Icon.INSERT_ROW",
|
|
18762
18771
|
};
|
|
18763
18772
|
const rowInsertRowBefore = {
|
|
@@ -18766,9 +18775,7 @@
|
|
|
18766
18775
|
return number === 1 ? _lt("Insert row above") : _lt("Insert %s rows above", number.toString());
|
|
18767
18776
|
},
|
|
18768
18777
|
execute: INSERT_ROWS_BEFORE_ACTION,
|
|
18769
|
-
isVisible: (env) =>
|
|
18770
|
-
IS_ONLY_ONE_RANGE(env) &&
|
|
18771
|
-
env.model.getters.getActiveCols().size === 0,
|
|
18778
|
+
isVisible: (env) => CAN_INSERT_HEADER(env, "ROW"),
|
|
18772
18779
|
icon: "o-spreadsheet-Icon.INSERT_ROW_BEFORE",
|
|
18773
18780
|
};
|
|
18774
18781
|
const topBarInsertRowsBefore = {
|
|
@@ -18799,9 +18806,7 @@
|
|
|
18799
18806
|
const number = getRowsNumber(env);
|
|
18800
18807
|
return number === 1 ? _lt("Insert row below") : _lt("Insert %s rows below", number.toString());
|
|
18801
18808
|
},
|
|
18802
|
-
isVisible: (env) =>
|
|
18803
|
-
IS_ONLY_ONE_RANGE(env) &&
|
|
18804
|
-
env.model.getters.getActiveCols().size === 0,
|
|
18809
|
+
isVisible: (env) => CAN_INSERT_HEADER(env, "ROW"),
|
|
18805
18810
|
icon: "o-spreadsheet-Icon.INSERT_ROW_AFTER",
|
|
18806
18811
|
};
|
|
18807
18812
|
const topBarInsertRowsAfter = {
|
|
@@ -18819,9 +18824,7 @@
|
|
|
18819
18824
|
const number = getColumnsNumber(env);
|
|
18820
18825
|
return number === 1 ? _lt("Insert column") : _lt("Insert %s columns", number.toString());
|
|
18821
18826
|
},
|
|
18822
|
-
isVisible: (env) =>
|
|
18823
|
-
IS_ONLY_ONE_RANGE(env) &&
|
|
18824
|
-
env.model.getters.getActiveRows().size === 0,
|
|
18827
|
+
isVisible: (env) => CAN_INSERT_HEADER(env, "COL"),
|
|
18825
18828
|
icon: "o-spreadsheet-Icon.INSERT_COL",
|
|
18826
18829
|
};
|
|
18827
18830
|
const colInsertColsBefore = {
|
|
@@ -18832,9 +18835,7 @@
|
|
|
18832
18835
|
: _lt("Insert %s columns left", number.toString());
|
|
18833
18836
|
},
|
|
18834
18837
|
execute: INSERT_COLUMNS_BEFORE_ACTION,
|
|
18835
|
-
isVisible: (env) =>
|
|
18836
|
-
IS_ONLY_ONE_RANGE(env) &&
|
|
18837
|
-
env.model.getters.getActiveRows().size === 0,
|
|
18838
|
+
isVisible: (env) => CAN_INSERT_HEADER(env, "COL"),
|
|
18838
18839
|
icon: "o-spreadsheet-Icon.INSERT_COL_BEFORE",
|
|
18839
18840
|
};
|
|
18840
18841
|
const topBarInsertColsBefore = {
|
|
@@ -18867,9 +18868,7 @@
|
|
|
18867
18868
|
: _lt("Insert %s columns right", number.toString());
|
|
18868
18869
|
},
|
|
18869
18870
|
execute: INSERT_COLUMNS_AFTER_ACTION,
|
|
18870
|
-
isVisible: (env) =>
|
|
18871
|
-
IS_ONLY_ONE_RANGE(env) &&
|
|
18872
|
-
env.model.getters.getActiveRows().size === 0,
|
|
18871
|
+
isVisible: (env) => CAN_INSERT_HEADER(env, "COL"),
|
|
18873
18872
|
icon: "o-spreadsheet-Icon.INSERT_COL_AFTER",
|
|
18874
18873
|
};
|
|
18875
18874
|
const topBarInsertColsAfter = {
|
|
@@ -22827,7 +22826,7 @@
|
|
|
22827
22826
|
}
|
|
22828
22827
|
.o-input-count {
|
|
22829
22828
|
width: fit-content;
|
|
22830
|
-
padding:
|
|
22829
|
+
padding: 4px 0 4px 4px;
|
|
22831
22830
|
}
|
|
22832
22831
|
}
|
|
22833
22832
|
}
|
|
@@ -33074,6 +33073,13 @@
|
|
|
33074
33073
|
}
|
|
33075
33074
|
onDeleteColumnsRows(cmd) {
|
|
33076
33075
|
for (const table of this.getFilterTables(cmd.sheetId)) {
|
|
33076
|
+
// Remove the filter tables whose data filter headers are in the removed rows.
|
|
33077
|
+
if (cmd.dimension === "ROW" && cmd.elements.includes(table.zone.top)) {
|
|
33078
|
+
const tables = { ...this.tables[cmd.sheetId] };
|
|
33079
|
+
delete tables[table.id];
|
|
33080
|
+
this.history.update("tables", cmd.sheetId, tables);
|
|
33081
|
+
continue;
|
|
33082
|
+
}
|
|
33077
33083
|
const zone = reduceZoneOnDeletion(table.zone, cmd.dimension === "COL" ? "left" : "top", cmd.elements);
|
|
33078
33084
|
if (!zone) {
|
|
33079
33085
|
const tables = { ...this.tables[cmd.sheetId] };
|
|
@@ -35809,9 +35815,6 @@
|
|
|
35809
35815
|
}
|
|
35810
35816
|
}
|
|
35811
35817
|
setEvaluatedCell(positionId, evaluatedCell) {
|
|
35812
|
-
if (this.nextPositionsToUpdate.has(positionId)) {
|
|
35813
|
-
this.nextPositionsToUpdate.delete(positionId);
|
|
35814
|
-
}
|
|
35815
35818
|
this.evaluatedCells.set(positionId, evaluatedCell);
|
|
35816
35819
|
}
|
|
35817
35820
|
computeCell(positionId) {
|
|
@@ -36525,22 +36528,20 @@
|
|
|
36525
36528
|
invalidateCFEvaluationCommands.has(cmd.type) ||
|
|
36526
36529
|
cmd.type === "EVALUATE_CELLS" ||
|
|
36527
36530
|
cmd.type === "UPDATE_CELL") {
|
|
36528
|
-
|
|
36529
|
-
|
|
36530
|
-
this.history.update("charts", chartId, undefined);
|
|
36531
|
-
}
|
|
36531
|
+
for (const chartId in this.charts) {
|
|
36532
|
+
this.charts[chartId] = undefined;
|
|
36532
36533
|
}
|
|
36533
36534
|
}
|
|
36534
36535
|
switch (cmd.type) {
|
|
36535
36536
|
case "UPDATE_CHART":
|
|
36536
36537
|
case "CREATE_CHART":
|
|
36537
36538
|
case "DELETE_FIGURE":
|
|
36538
|
-
this.
|
|
36539
|
+
this.charts[cmd.id] = undefined;
|
|
36539
36540
|
break;
|
|
36540
36541
|
case "DELETE_SHEET":
|
|
36541
36542
|
for (let chartId in this.charts) {
|
|
36542
36543
|
if (!this.getters.isChartDefined(chartId)) {
|
|
36543
|
-
this.
|
|
36544
|
+
this.charts[chartId] = undefined;
|
|
36544
36545
|
}
|
|
36545
36546
|
}
|
|
36546
36547
|
break;
|
|
@@ -36552,7 +36553,7 @@
|
|
|
36552
36553
|
if (!chart) {
|
|
36553
36554
|
throw new Error(`No chart for the given id: ${figureId}`);
|
|
36554
36555
|
}
|
|
36555
|
-
this.
|
|
36556
|
+
this.charts[figureId] = this.createRuntimeChart(chart);
|
|
36556
36557
|
}
|
|
36557
36558
|
return this.charts[figureId];
|
|
36558
36559
|
}
|
|
@@ -43016,6 +43017,8 @@
|
|
|
43016
43017
|
case "EVALUATE_CELLS":
|
|
43017
43018
|
case "ACTIVATE_SHEET":
|
|
43018
43019
|
case "REMOVE_FILTER_TABLE":
|
|
43020
|
+
case "ADD_COLUMNS_ROWS":
|
|
43021
|
+
case "REMOVE_COLUMNS_ROWS":
|
|
43019
43022
|
this.isEvaluationDirty = true;
|
|
43020
43023
|
break;
|
|
43021
43024
|
case "START":
|
|
@@ -50774,9 +50777,9 @@
|
|
|
50774
50777
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
50775
50778
|
|
|
50776
50779
|
|
|
50777
|
-
__info__.version = '16.4.
|
|
50778
|
-
__info__.date = '2023-11-
|
|
50779
|
-
__info__.hash = '
|
|
50780
|
+
__info__.version = '16.4.14';
|
|
50781
|
+
__info__.date = '2023-11-16T11:59:51.900Z';
|
|
50782
|
+
__info__.hash = '66c6f47';
|
|
50780
50783
|
|
|
50781
50784
|
|
|
50782
50785
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|