@odoo/o-spreadsheet 16.4.13 → 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 -29
- package/dist/o-spreadsheet.d.ts +2 -2
- package/dist/o-spreadsheet.esm.js +35 -29
- package/dist/o-spreadsheet.iife.js +35 -29
- 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] };
|
|
@@ -36525,22 +36531,20 @@ class EvaluationChartPlugin extends UIPlugin {
|
|
|
36525
36531
|
invalidateCFEvaluationCommands.has(cmd.type) ||
|
|
36526
36532
|
cmd.type === "EVALUATE_CELLS" ||
|
|
36527
36533
|
cmd.type === "UPDATE_CELL") {
|
|
36528
|
-
|
|
36529
|
-
|
|
36530
|
-
this.history.update("charts", chartId, undefined);
|
|
36531
|
-
}
|
|
36534
|
+
for (const chartId in this.charts) {
|
|
36535
|
+
this.charts[chartId] = undefined;
|
|
36532
36536
|
}
|
|
36533
36537
|
}
|
|
36534
36538
|
switch (cmd.type) {
|
|
36535
36539
|
case "UPDATE_CHART":
|
|
36536
36540
|
case "CREATE_CHART":
|
|
36537
36541
|
case "DELETE_FIGURE":
|
|
36538
|
-
this.
|
|
36542
|
+
this.charts[cmd.id] = undefined;
|
|
36539
36543
|
break;
|
|
36540
36544
|
case "DELETE_SHEET":
|
|
36541
36545
|
for (let chartId in this.charts) {
|
|
36542
36546
|
if (!this.getters.isChartDefined(chartId)) {
|
|
36543
|
-
this.
|
|
36547
|
+
this.charts[chartId] = undefined;
|
|
36544
36548
|
}
|
|
36545
36549
|
}
|
|
36546
36550
|
break;
|
|
@@ -36552,7 +36556,7 @@ class EvaluationChartPlugin extends UIPlugin {
|
|
|
36552
36556
|
if (!chart) {
|
|
36553
36557
|
throw new Error(`No chart for the given id: ${figureId}`);
|
|
36554
36558
|
}
|
|
36555
|
-
this.
|
|
36559
|
+
this.charts[figureId] = this.createRuntimeChart(chart);
|
|
36556
36560
|
}
|
|
36557
36561
|
return this.charts[figureId];
|
|
36558
36562
|
}
|
|
@@ -43016,6 +43020,8 @@ class FilterEvaluationPlugin extends UIPlugin {
|
|
|
43016
43020
|
case "EVALUATE_CELLS":
|
|
43017
43021
|
case "ACTIVATE_SHEET":
|
|
43018
43022
|
case "REMOVE_FILTER_TABLE":
|
|
43023
|
+
case "ADD_COLUMNS_ROWS":
|
|
43024
|
+
case "REMOVE_COLUMNS_ROWS":
|
|
43019
43025
|
this.isEvaluationDirty = true;
|
|
43020
43026
|
break;
|
|
43021
43027
|
case "START":
|
|
@@ -50772,6 +50778,6 @@ exports.setTranslationMethod = setTranslationMethod;
|
|
|
50772
50778
|
exports.tokenize = tokenize;
|
|
50773
50779
|
|
|
50774
50780
|
|
|
50775
|
-
__info__.version = '16.4.
|
|
50776
|
-
__info__.date = '2023-11-
|
|
50777
|
-
__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] };
|
|
@@ -36521,22 +36527,20 @@ class EvaluationChartPlugin extends UIPlugin {
|
|
|
36521
36527
|
invalidateCFEvaluationCommands.has(cmd.type) ||
|
|
36522
36528
|
cmd.type === "EVALUATE_CELLS" ||
|
|
36523
36529
|
cmd.type === "UPDATE_CELL") {
|
|
36524
|
-
|
|
36525
|
-
|
|
36526
|
-
this.history.update("charts", chartId, undefined);
|
|
36527
|
-
}
|
|
36530
|
+
for (const chartId in this.charts) {
|
|
36531
|
+
this.charts[chartId] = undefined;
|
|
36528
36532
|
}
|
|
36529
36533
|
}
|
|
36530
36534
|
switch (cmd.type) {
|
|
36531
36535
|
case "UPDATE_CHART":
|
|
36532
36536
|
case "CREATE_CHART":
|
|
36533
36537
|
case "DELETE_FIGURE":
|
|
36534
|
-
this.
|
|
36538
|
+
this.charts[cmd.id] = undefined;
|
|
36535
36539
|
break;
|
|
36536
36540
|
case "DELETE_SHEET":
|
|
36537
36541
|
for (let chartId in this.charts) {
|
|
36538
36542
|
if (!this.getters.isChartDefined(chartId)) {
|
|
36539
|
-
this.
|
|
36543
|
+
this.charts[chartId] = undefined;
|
|
36540
36544
|
}
|
|
36541
36545
|
}
|
|
36542
36546
|
break;
|
|
@@ -36548,7 +36552,7 @@ class EvaluationChartPlugin extends UIPlugin {
|
|
|
36548
36552
|
if (!chart) {
|
|
36549
36553
|
throw new Error(`No chart for the given id: ${figureId}`);
|
|
36550
36554
|
}
|
|
36551
|
-
this.
|
|
36555
|
+
this.charts[figureId] = this.createRuntimeChart(chart);
|
|
36552
36556
|
}
|
|
36553
36557
|
return this.charts[figureId];
|
|
36554
36558
|
}
|
|
@@ -43012,6 +43016,8 @@ class FilterEvaluationPlugin extends UIPlugin {
|
|
|
43012
43016
|
case "EVALUATE_CELLS":
|
|
43013
43017
|
case "ACTIVATE_SHEET":
|
|
43014
43018
|
case "REMOVE_FILTER_TABLE":
|
|
43019
|
+
case "ADD_COLUMNS_ROWS":
|
|
43020
|
+
case "REMOVE_COLUMNS_ROWS":
|
|
43015
43021
|
this.isEvaluationDirty = true;
|
|
43016
43022
|
break;
|
|
43017
43023
|
case "START":
|
|
@@ -50736,6 +50742,6 @@ const constants = {
|
|
|
50736
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 };
|
|
50737
50743
|
|
|
50738
50744
|
|
|
50739
|
-
__info__.version = '16.4.
|
|
50740
|
-
__info__.date = '2023-11-
|
|
50741
|
-
__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] };
|
|
@@ -36522,22 +36528,20 @@
|
|
|
36522
36528
|
invalidateCFEvaluationCommands.has(cmd.type) ||
|
|
36523
36529
|
cmd.type === "EVALUATE_CELLS" ||
|
|
36524
36530
|
cmd.type === "UPDATE_CELL") {
|
|
36525
|
-
|
|
36526
|
-
|
|
36527
|
-
this.history.update("charts", chartId, undefined);
|
|
36528
|
-
}
|
|
36531
|
+
for (const chartId in this.charts) {
|
|
36532
|
+
this.charts[chartId] = undefined;
|
|
36529
36533
|
}
|
|
36530
36534
|
}
|
|
36531
36535
|
switch (cmd.type) {
|
|
36532
36536
|
case "UPDATE_CHART":
|
|
36533
36537
|
case "CREATE_CHART":
|
|
36534
36538
|
case "DELETE_FIGURE":
|
|
36535
|
-
this.
|
|
36539
|
+
this.charts[cmd.id] = undefined;
|
|
36536
36540
|
break;
|
|
36537
36541
|
case "DELETE_SHEET":
|
|
36538
36542
|
for (let chartId in this.charts) {
|
|
36539
36543
|
if (!this.getters.isChartDefined(chartId)) {
|
|
36540
|
-
this.
|
|
36544
|
+
this.charts[chartId] = undefined;
|
|
36541
36545
|
}
|
|
36542
36546
|
}
|
|
36543
36547
|
break;
|
|
@@ -36549,7 +36553,7 @@
|
|
|
36549
36553
|
if (!chart) {
|
|
36550
36554
|
throw new Error(`No chart for the given id: ${figureId}`);
|
|
36551
36555
|
}
|
|
36552
|
-
this.
|
|
36556
|
+
this.charts[figureId] = this.createRuntimeChart(chart);
|
|
36553
36557
|
}
|
|
36554
36558
|
return this.charts[figureId];
|
|
36555
36559
|
}
|
|
@@ -43013,6 +43017,8 @@
|
|
|
43013
43017
|
case "EVALUATE_CELLS":
|
|
43014
43018
|
case "ACTIVATE_SHEET":
|
|
43015
43019
|
case "REMOVE_FILTER_TABLE":
|
|
43020
|
+
case "ADD_COLUMNS_ROWS":
|
|
43021
|
+
case "REMOVE_COLUMNS_ROWS":
|
|
43016
43022
|
this.isEvaluationDirty = true;
|
|
43017
43023
|
break;
|
|
43018
43024
|
case "START":
|
|
@@ -50771,9 +50777,9 @@
|
|
|
50771
50777
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
50772
50778
|
|
|
50773
50779
|
|
|
50774
|
-
__info__.version = '16.4.
|
|
50775
|
-
__info__.date = '2023-11-
|
|
50776
|
-
__info__.hash = '
|
|
50780
|
+
__info__.version = '16.4.14';
|
|
50781
|
+
__info__.date = '2023-11-16T11:59:51.900Z';
|
|
50782
|
+
__info__.hash = '66c6f47';
|
|
50777
50783
|
|
|
50778
50784
|
|
|
50779
50785
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|