@odoo/o-spreadsheet 17.0.18 → 17.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 +365 -396
- package/dist/o-spreadsheet.d.ts +4 -7
- package/dist/o-spreadsheet.esm.js +365 -396
- package/dist/o-spreadsheet.iife.js +365 -396
- package/dist/o-spreadsheet.iife.min.js +265 -261
- package/dist/o_spreadsheet.xml +4 -4
- package/package.json +1 -1
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
4
4
|
* @see https://github.com/odoo/o-spreadsheet
|
|
5
|
-
* @version 17.0.
|
|
6
|
-
* @date 2024-04-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 17.0.19
|
|
6
|
+
* @date 2024-04-18T16:41:42.291Z
|
|
7
|
+
* @hash 9f3317a
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { Component, useRef, onMounted, useEffect, onWillPatch, useState, onWillUpdateProps, onPatched, useComponent, useExternalListener, onWillUnmount, onWillStart, xml, useChildSubEnv, useSubEnv, markRaw } from '@odoo/owl';
|
|
@@ -8118,6 +8118,7 @@ class LinkEditor extends Component {
|
|
|
8118
8118
|
this.save();
|
|
8119
8119
|
}
|
|
8120
8120
|
ev.stopPropagation();
|
|
8121
|
+
ev.preventDefault();
|
|
8121
8122
|
break;
|
|
8122
8123
|
case "Escape":
|
|
8123
8124
|
this.cancel();
|
|
@@ -19900,6 +19901,332 @@ function interactiveAddFilter(env, sheetId, target) {
|
|
|
19900
19901
|
}
|
|
19901
19902
|
}
|
|
19902
19903
|
|
|
19904
|
+
function interactiveFreezeColumnsRows(env, dimension, base) {
|
|
19905
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
19906
|
+
const cmd = dimension === "COL" ? "FREEZE_COLUMNS" : "FREEZE_ROWS";
|
|
19907
|
+
const result = env.model.dispatch(cmd, { sheetId, quantity: base });
|
|
19908
|
+
if (result.isCancelledBecause("MergeOverlap" /* CommandResult.MergeOverlap */)) {
|
|
19909
|
+
env.raiseError(MergeErrorMessage);
|
|
19910
|
+
}
|
|
19911
|
+
}
|
|
19912
|
+
|
|
19913
|
+
const hideCols = {
|
|
19914
|
+
name: HIDE_COLUMNS_NAME,
|
|
19915
|
+
execute: (env) => {
|
|
19916
|
+
const columns = env.model.getters.getElementsFromSelection("COL");
|
|
19917
|
+
env.model.dispatch("HIDE_COLUMNS_ROWS", {
|
|
19918
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
19919
|
+
dimension: "COL",
|
|
19920
|
+
elements: columns,
|
|
19921
|
+
});
|
|
19922
|
+
},
|
|
19923
|
+
isVisible: NOT_ALL_VISIBLE_COLS_SELECTED,
|
|
19924
|
+
icon: "o-spreadsheet-Icon.HIDE_COL",
|
|
19925
|
+
};
|
|
19926
|
+
const unhideCols = {
|
|
19927
|
+
name: _t("Unhide columns"),
|
|
19928
|
+
execute: (env) => {
|
|
19929
|
+
const columns = env.model.getters.getElementsFromSelection("COL");
|
|
19930
|
+
env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
19931
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
19932
|
+
dimension: "COL",
|
|
19933
|
+
elements: columns,
|
|
19934
|
+
});
|
|
19935
|
+
},
|
|
19936
|
+
isVisible: (env) => {
|
|
19937
|
+
const hiddenCols = env.model.getters
|
|
19938
|
+
.getHiddenColsGroups(env.model.getters.getActiveSheetId())
|
|
19939
|
+
.flat();
|
|
19940
|
+
const currentCols = env.model.getters.getElementsFromSelection("COL");
|
|
19941
|
+
return currentCols.some((col) => hiddenCols.includes(col));
|
|
19942
|
+
},
|
|
19943
|
+
};
|
|
19944
|
+
const unhideAllCols = {
|
|
19945
|
+
name: _t("Unhide all columns"),
|
|
19946
|
+
execute: (env) => {
|
|
19947
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
19948
|
+
env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
19949
|
+
sheetId,
|
|
19950
|
+
dimension: "COL",
|
|
19951
|
+
elements: Array.from(Array(env.model.getters.getNumberCols(sheetId)).keys()),
|
|
19952
|
+
});
|
|
19953
|
+
},
|
|
19954
|
+
isVisible: (env) => env.model.getters.getHiddenColsGroups(env.model.getters.getActiveSheetId()).length > 0,
|
|
19955
|
+
};
|
|
19956
|
+
const hideRows = {
|
|
19957
|
+
name: HIDE_ROWS_NAME,
|
|
19958
|
+
execute: (env) => {
|
|
19959
|
+
const rows = env.model.getters.getElementsFromSelection("ROW");
|
|
19960
|
+
env.model.dispatch("HIDE_COLUMNS_ROWS", {
|
|
19961
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
19962
|
+
dimension: "ROW",
|
|
19963
|
+
elements: rows,
|
|
19964
|
+
});
|
|
19965
|
+
},
|
|
19966
|
+
isVisible: NOT_ALL_VISIBLE_ROWS_SELECTED,
|
|
19967
|
+
icon: "o-spreadsheet-Icon.HIDE_ROW",
|
|
19968
|
+
};
|
|
19969
|
+
const unhideRows = {
|
|
19970
|
+
name: _t("Unhide rows"),
|
|
19971
|
+
execute: (env) => {
|
|
19972
|
+
const columns = env.model.getters.getElementsFromSelection("ROW");
|
|
19973
|
+
env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
19974
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
19975
|
+
dimension: "ROW",
|
|
19976
|
+
elements: columns,
|
|
19977
|
+
});
|
|
19978
|
+
},
|
|
19979
|
+
isVisible: (env) => {
|
|
19980
|
+
const hiddenRows = env.model.getters
|
|
19981
|
+
.getHiddenRowsGroups(env.model.getters.getActiveSheetId())
|
|
19982
|
+
.flat();
|
|
19983
|
+
const currentRows = env.model.getters.getElementsFromSelection("ROW");
|
|
19984
|
+
return currentRows.some((col) => hiddenRows.includes(col));
|
|
19985
|
+
},
|
|
19986
|
+
};
|
|
19987
|
+
const unhideAllRows = {
|
|
19988
|
+
name: _t("Unhide all rows"),
|
|
19989
|
+
execute: (env) => {
|
|
19990
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
19991
|
+
env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
19992
|
+
sheetId,
|
|
19993
|
+
dimension: "ROW",
|
|
19994
|
+
elements: Array.from(Array(env.model.getters.getNumberRows(sheetId)).keys()),
|
|
19995
|
+
});
|
|
19996
|
+
},
|
|
19997
|
+
isVisible: (env) => env.model.getters.getHiddenRowsGroups(env.model.getters.getActiveSheetId()).length > 0,
|
|
19998
|
+
};
|
|
19999
|
+
const unFreezePane = {
|
|
20000
|
+
name: _t("Unfreeze"),
|
|
20001
|
+
isVisible: (env) => {
|
|
20002
|
+
const { xSplit, ySplit } = env.model.getters.getPaneDivisions(env.model.getters.getActiveSheetId());
|
|
20003
|
+
return xSplit + ySplit > 0;
|
|
20004
|
+
},
|
|
20005
|
+
execute: (env) => env.model.dispatch("UNFREEZE_COLUMNS_ROWS", {
|
|
20006
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
20007
|
+
}),
|
|
20008
|
+
icon: "o-spreadsheet-Icon.UNFREEZE",
|
|
20009
|
+
};
|
|
20010
|
+
const freezePane = {
|
|
20011
|
+
name: _t("Freeze"),
|
|
20012
|
+
icon: "o-spreadsheet-Icon.FREEZE",
|
|
20013
|
+
};
|
|
20014
|
+
const unFreezeRows = {
|
|
20015
|
+
name: _t("No rows"),
|
|
20016
|
+
execute: (env) => env.model.dispatch("UNFREEZE_ROWS", {
|
|
20017
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
20018
|
+
}),
|
|
20019
|
+
isReadonlyAllowed: true,
|
|
20020
|
+
isVisible: (env) => !!env.model.getters.getPaneDivisions(env.model.getters.getActiveSheetId()).ySplit,
|
|
20021
|
+
};
|
|
20022
|
+
const freezeFirstRow = {
|
|
20023
|
+
name: _t("1 row"),
|
|
20024
|
+
execute: (env) => interactiveFreezeColumnsRows(env, "ROW", 1),
|
|
20025
|
+
isReadonlyAllowed: true,
|
|
20026
|
+
};
|
|
20027
|
+
const freezeSecondRow = {
|
|
20028
|
+
name: _t("2 rows"),
|
|
20029
|
+
execute: (env) => interactiveFreezeColumnsRows(env, "ROW", 2),
|
|
20030
|
+
isReadonlyAllowed: true,
|
|
20031
|
+
};
|
|
20032
|
+
const freezeCurrentRow = {
|
|
20033
|
+
name: _t("Up to current row"),
|
|
20034
|
+
execute: (env) => {
|
|
20035
|
+
const { bottom } = env.model.getters.getSelectedZone();
|
|
20036
|
+
interactiveFreezeColumnsRows(env, "ROW", bottom + 1);
|
|
20037
|
+
},
|
|
20038
|
+
isReadonlyAllowed: true,
|
|
20039
|
+
};
|
|
20040
|
+
const unFreezeCols = {
|
|
20041
|
+
name: _t("No columns"),
|
|
20042
|
+
execute: (env) => env.model.dispatch("UNFREEZE_COLUMNS", {
|
|
20043
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
20044
|
+
}),
|
|
20045
|
+
isReadonlyAllowed: true,
|
|
20046
|
+
isVisible: (env) => !!env.model.getters.getPaneDivisions(env.model.getters.getActiveSheetId()).xSplit,
|
|
20047
|
+
};
|
|
20048
|
+
const freezeFirstCol = {
|
|
20049
|
+
name: _t("1 column"),
|
|
20050
|
+
execute: (env) => interactiveFreezeColumnsRows(env, "COL", 1),
|
|
20051
|
+
isReadonlyAllowed: true,
|
|
20052
|
+
};
|
|
20053
|
+
const freezeSecondCol = {
|
|
20054
|
+
name: _t("2 columns"),
|
|
20055
|
+
execute: (env) => interactiveFreezeColumnsRows(env, "COL", 2),
|
|
20056
|
+
isReadonlyAllowed: true,
|
|
20057
|
+
};
|
|
20058
|
+
const freezeCurrentCol = {
|
|
20059
|
+
name: _t("Up to current column"),
|
|
20060
|
+
execute: (env) => {
|
|
20061
|
+
const { right } = env.model.getters.getSelectedZone();
|
|
20062
|
+
interactiveFreezeColumnsRows(env, "COL", right + 1);
|
|
20063
|
+
},
|
|
20064
|
+
isReadonlyAllowed: true,
|
|
20065
|
+
};
|
|
20066
|
+
const viewGridlines = {
|
|
20067
|
+
name: (env) => env.model.getters.getGridLinesVisibility(env.model.getters.getActiveSheetId())
|
|
20068
|
+
? _t("Hide gridlines")
|
|
20069
|
+
: _t("Show gridlines"),
|
|
20070
|
+
execute: (env) => {
|
|
20071
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
20072
|
+
env.model.dispatch("SET_GRID_LINES_VISIBILITY", {
|
|
20073
|
+
sheetId,
|
|
20074
|
+
areGridLinesVisible: !env.model.getters.getGridLinesVisibility(sheetId),
|
|
20075
|
+
});
|
|
20076
|
+
},
|
|
20077
|
+
icon: "o-spreadsheet-Icon.SHOW_HIDE_GRID",
|
|
20078
|
+
};
|
|
20079
|
+
const viewFormulas = {
|
|
20080
|
+
name: (env) => env.model.getters.shouldShowFormulas() ? "Hide formulas" : _t("Show formulas"),
|
|
20081
|
+
execute: (env) => env.model.dispatch("SET_FORMULA_VISIBILITY", { show: !env.model.getters.shouldShowFormulas() }),
|
|
20082
|
+
isReadonlyAllowed: true,
|
|
20083
|
+
icon: "o-spreadsheet-Icon.SHOW_HIDE_FORMULA",
|
|
20084
|
+
};
|
|
20085
|
+
const createRemoveFilter = {
|
|
20086
|
+
name: (env) => selectionContainsFilter(env) ? _t("Remove selected filters") : _t("Create filter"),
|
|
20087
|
+
isActive: (env) => selectionContainsFilter(env),
|
|
20088
|
+
isEnabled: (env) => !cannotCreateFilter(env),
|
|
20089
|
+
execute: (env) => createRemoveFilterAction(env),
|
|
20090
|
+
icon: "o-spreadsheet-Icon.FILTER_ICON_INACTIVE",
|
|
20091
|
+
};
|
|
20092
|
+
const groupColumns = {
|
|
20093
|
+
name: (env) => {
|
|
20094
|
+
const selection = env.model.getters.getSelectedZone();
|
|
20095
|
+
if (selection.left === selection.right) {
|
|
20096
|
+
return _t("Group column %s", numberToLetters(selection.left));
|
|
20097
|
+
}
|
|
20098
|
+
return _t("Group columns %s - %s", numberToLetters(selection.left), numberToLetters(selection.right));
|
|
20099
|
+
},
|
|
20100
|
+
execute: (env) => groupHeadersAction(env, "COL"),
|
|
20101
|
+
isVisible: (env) => {
|
|
20102
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
20103
|
+
const selection = env.model.getters.getSelectedZone();
|
|
20104
|
+
const groups = env.model.getters.getHeaderGroupsInZone(sheetId, "COL", selection);
|
|
20105
|
+
return (IS_ONLY_ONE_RANGE(env) &&
|
|
20106
|
+
!groups.some((group) => group.start === selection.left && group.end === selection.right));
|
|
20107
|
+
},
|
|
20108
|
+
icon: "o-spreadsheet-Icon.GROUP_COLUMNS",
|
|
20109
|
+
};
|
|
20110
|
+
const groupRows = {
|
|
20111
|
+
name: (env) => {
|
|
20112
|
+
const selection = env.model.getters.getSelectedZone();
|
|
20113
|
+
if (selection.top === selection.bottom) {
|
|
20114
|
+
return _t("Group row %s", String(selection.top + 1));
|
|
20115
|
+
}
|
|
20116
|
+
return _t("Group rows %s - %s", String(selection.top + 1), String(selection.bottom + 1));
|
|
20117
|
+
},
|
|
20118
|
+
execute: (env) => groupHeadersAction(env, "ROW"),
|
|
20119
|
+
isVisible: (env) => {
|
|
20120
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
20121
|
+
const selection = env.model.getters.getSelectedZone();
|
|
20122
|
+
const groups = env.model.getters.getHeaderGroupsInZone(sheetId, "ROW", selection);
|
|
20123
|
+
return (IS_ONLY_ONE_RANGE(env) &&
|
|
20124
|
+
!groups.some((group) => group.start === selection.top && group.end === selection.bottom));
|
|
20125
|
+
},
|
|
20126
|
+
icon: "o-spreadsheet-Icon.GROUP_ROWS",
|
|
20127
|
+
};
|
|
20128
|
+
const ungroupColumns = {
|
|
20129
|
+
name: (env) => {
|
|
20130
|
+
const selection = env.model.getters.getSelectedZone();
|
|
20131
|
+
if (selection.left === selection.right) {
|
|
20132
|
+
return _t("Ungroup column %s", numberToLetters(selection.left));
|
|
20133
|
+
}
|
|
20134
|
+
return _t("Ungroup columns %s - %s", numberToLetters(selection.left), numberToLetters(selection.right));
|
|
20135
|
+
},
|
|
20136
|
+
execute: (env) => ungroupHeaders(env, "COL"),
|
|
20137
|
+
icon: "o-spreadsheet-Icon.UNGROUP_COLUMNS",
|
|
20138
|
+
};
|
|
20139
|
+
const ungroupRows = {
|
|
20140
|
+
name: (env) => {
|
|
20141
|
+
const selection = env.model.getters.getSelectedZone();
|
|
20142
|
+
if (selection.top === selection.bottom) {
|
|
20143
|
+
return _t("Ungroup row %s", String(selection.top + 1));
|
|
20144
|
+
}
|
|
20145
|
+
return _t("Ungroup rows %s - %s", String(selection.top + 1), String(selection.bottom + 1));
|
|
20146
|
+
},
|
|
20147
|
+
execute: (env) => ungroupHeaders(env, "ROW"),
|
|
20148
|
+
icon: "o-spreadsheet-Icon.UNGROUP_ROWS",
|
|
20149
|
+
};
|
|
20150
|
+
function selectionContainsFilter(env) {
|
|
20151
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
20152
|
+
const selectedZones = env.model.getters.getSelectedZones();
|
|
20153
|
+
return env.model.getters.doesZonesContainFilter(sheetId, selectedZones);
|
|
20154
|
+
}
|
|
20155
|
+
function cannotCreateFilter(env) {
|
|
20156
|
+
return !areZonesContinuous(...env.model.getters.getSelectedZones());
|
|
20157
|
+
}
|
|
20158
|
+
function createRemoveFilterAction(env) {
|
|
20159
|
+
if (selectionContainsFilter(env)) {
|
|
20160
|
+
env.model.dispatch("REMOVE_FILTER_TABLE", {
|
|
20161
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
20162
|
+
target: env.model.getters.getSelectedZones(),
|
|
20163
|
+
});
|
|
20164
|
+
return;
|
|
20165
|
+
}
|
|
20166
|
+
if (cannotCreateFilter(env)) {
|
|
20167
|
+
return;
|
|
20168
|
+
}
|
|
20169
|
+
env.model.selection.selectTableAroundSelection();
|
|
20170
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
20171
|
+
const selection = env.model.getters.getSelectedZones();
|
|
20172
|
+
interactiveAddFilter(env, sheetId, selection);
|
|
20173
|
+
}
|
|
20174
|
+
function groupHeadersAction(env, dim) {
|
|
20175
|
+
const selection = env.model.getters.getSelectedZone();
|
|
20176
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
20177
|
+
env.model.dispatch("GROUP_HEADERS", {
|
|
20178
|
+
sheetId,
|
|
20179
|
+
dimension: dim,
|
|
20180
|
+
start: dim === "COL" ? selection.left : selection.top,
|
|
20181
|
+
end: dim === "COL" ? selection.right : selection.bottom,
|
|
20182
|
+
});
|
|
20183
|
+
}
|
|
20184
|
+
function ungroupHeaders(env, dim) {
|
|
20185
|
+
const selection = env.model.getters.getSelectedZone();
|
|
20186
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
20187
|
+
env.model.dispatch("UNGROUP_HEADERS", {
|
|
20188
|
+
sheetId,
|
|
20189
|
+
dimension: dim,
|
|
20190
|
+
start: dim === "COL" ? selection.left : selection.top,
|
|
20191
|
+
end: dim === "COL" ? selection.right : selection.bottom,
|
|
20192
|
+
});
|
|
20193
|
+
}
|
|
20194
|
+
function canUngroupHeaders(env, dimension) {
|
|
20195
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
20196
|
+
const selection = env.model.getters.getSelectedZones();
|
|
20197
|
+
return (selection.length === 1 &&
|
|
20198
|
+
env.model.getters.getHeaderGroupsInZone(sheetId, dimension, selection[0]).length > 0);
|
|
20199
|
+
}
|
|
20200
|
+
|
|
20201
|
+
var ACTION_VIEW = /*#__PURE__*/Object.freeze({
|
|
20202
|
+
__proto__: null,
|
|
20203
|
+
canUngroupHeaders: canUngroupHeaders,
|
|
20204
|
+
createRemoveFilter: createRemoveFilter,
|
|
20205
|
+
createRemoveFilterAction: createRemoveFilterAction,
|
|
20206
|
+
freezeCurrentCol: freezeCurrentCol,
|
|
20207
|
+
freezeCurrentRow: freezeCurrentRow,
|
|
20208
|
+
freezeFirstCol: freezeFirstCol,
|
|
20209
|
+
freezeFirstRow: freezeFirstRow,
|
|
20210
|
+
freezePane: freezePane,
|
|
20211
|
+
freezeSecondCol: freezeSecondCol,
|
|
20212
|
+
freezeSecondRow: freezeSecondRow,
|
|
20213
|
+
groupColumns: groupColumns,
|
|
20214
|
+
groupRows: groupRows,
|
|
20215
|
+
hideCols: hideCols,
|
|
20216
|
+
hideRows: hideRows,
|
|
20217
|
+
unFreezeCols: unFreezeCols,
|
|
20218
|
+
unFreezePane: unFreezePane,
|
|
20219
|
+
unFreezeRows: unFreezeRows,
|
|
20220
|
+
ungroupColumns: ungroupColumns,
|
|
20221
|
+
ungroupRows: ungroupRows,
|
|
20222
|
+
unhideAllCols: unhideAllCols,
|
|
20223
|
+
unhideAllRows: unhideAllRows,
|
|
20224
|
+
unhideCols: unhideCols,
|
|
20225
|
+
unhideRows: unhideRows,
|
|
20226
|
+
viewFormulas: viewFormulas,
|
|
20227
|
+
viewGridlines: viewGridlines
|
|
20228
|
+
});
|
|
20229
|
+
|
|
19903
20230
|
const sortRange = {
|
|
19904
20231
|
name: _t("Sort range"),
|
|
19905
20232
|
isVisible: IS_ONLY_ONE_RANGE,
|
|
@@ -19942,32 +20269,15 @@ const sortDescending = {
|
|
|
19942
20269
|
},
|
|
19943
20270
|
icon: "o-spreadsheet-Icon.SORT_DESCENDING",
|
|
19944
20271
|
};
|
|
19945
|
-
const
|
|
19946
|
-
name: _t("Create filter"),
|
|
19947
|
-
execute: (env) =>
|
|
19948
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
19949
|
-
const selection = env.model.getters.getSelection().zones;
|
|
19950
|
-
interactiveAddFilter(env, sheetId, selection);
|
|
19951
|
-
},
|
|
19952
|
-
isVisible: (env) => !SELECTION_CONTAINS_FILTER(env),
|
|
20272
|
+
const addRemoveDataFilter = {
|
|
20273
|
+
name: (env) => SELECTION_CONTAINS_FILTER(env) ? _t("Remove filter") : _t("Create filter"),
|
|
20274
|
+
execute: (env) => createRemoveFilterAction(env),
|
|
19953
20275
|
isEnabled: (env) => {
|
|
19954
20276
|
const selectedZones = env.model.getters.getSelectedZones();
|
|
19955
20277
|
return areZonesContinuous(...selectedZones);
|
|
19956
20278
|
},
|
|
19957
20279
|
icon: "o-spreadsheet-Icon.MENU_FILTER_ICON",
|
|
19958
20280
|
};
|
|
19959
|
-
const removeDataFilter = {
|
|
19960
|
-
name: _t("Remove filter"),
|
|
19961
|
-
execute: (env) => {
|
|
19962
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
19963
|
-
env.model.dispatch("REMOVE_FILTER_TABLE", {
|
|
19964
|
-
sheetId,
|
|
19965
|
-
target: env.model.getters.getSelectedZones(),
|
|
19966
|
-
});
|
|
19967
|
-
},
|
|
19968
|
-
isVisible: SELECTION_CONTAINS_FILTER,
|
|
19969
|
-
icon: "o-spreadsheet-Icon.MENU_FILTER_ICON",
|
|
19970
|
-
};
|
|
19971
20281
|
const splitToColumns = {
|
|
19972
20282
|
name: _t("Split text to columns"),
|
|
19973
20283
|
sequence: 1,
|
|
@@ -20373,331 +20683,6 @@ var ACTION_FORMAT = /*#__PURE__*/Object.freeze({
|
|
|
20373
20683
|
textColor: textColor
|
|
20374
20684
|
});
|
|
20375
20685
|
|
|
20376
|
-
function interactiveFreezeColumnsRows(env, dimension, base) {
|
|
20377
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20378
|
-
const cmd = dimension === "COL" ? "FREEZE_COLUMNS" : "FREEZE_ROWS";
|
|
20379
|
-
const result = env.model.dispatch(cmd, { sheetId, quantity: base });
|
|
20380
|
-
if (result.isCancelledBecause("MergeOverlap" /* CommandResult.MergeOverlap */)) {
|
|
20381
|
-
env.raiseError(MergeErrorMessage);
|
|
20382
|
-
}
|
|
20383
|
-
}
|
|
20384
|
-
|
|
20385
|
-
const hideCols = {
|
|
20386
|
-
name: HIDE_COLUMNS_NAME,
|
|
20387
|
-
execute: (env) => {
|
|
20388
|
-
const columns = env.model.getters.getElementsFromSelection("COL");
|
|
20389
|
-
env.model.dispatch("HIDE_COLUMNS_ROWS", {
|
|
20390
|
-
sheetId: env.model.getters.getActiveSheetId(),
|
|
20391
|
-
dimension: "COL",
|
|
20392
|
-
elements: columns,
|
|
20393
|
-
});
|
|
20394
|
-
},
|
|
20395
|
-
isVisible: NOT_ALL_VISIBLE_COLS_SELECTED,
|
|
20396
|
-
icon: "o-spreadsheet-Icon.HIDE_COL",
|
|
20397
|
-
};
|
|
20398
|
-
const unhideCols = {
|
|
20399
|
-
name: _t("Unhide columns"),
|
|
20400
|
-
execute: (env) => {
|
|
20401
|
-
const columns = env.model.getters.getElementsFromSelection("COL");
|
|
20402
|
-
env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
20403
|
-
sheetId: env.model.getters.getActiveSheetId(),
|
|
20404
|
-
dimension: "COL",
|
|
20405
|
-
elements: columns,
|
|
20406
|
-
});
|
|
20407
|
-
},
|
|
20408
|
-
isVisible: (env) => {
|
|
20409
|
-
const hiddenCols = env.model.getters
|
|
20410
|
-
.getHiddenColsGroups(env.model.getters.getActiveSheetId())
|
|
20411
|
-
.flat();
|
|
20412
|
-
const currentCols = env.model.getters.getElementsFromSelection("COL");
|
|
20413
|
-
return currentCols.some((col) => hiddenCols.includes(col));
|
|
20414
|
-
},
|
|
20415
|
-
};
|
|
20416
|
-
const unhideAllCols = {
|
|
20417
|
-
name: _t("Unhide all columns"),
|
|
20418
|
-
execute: (env) => {
|
|
20419
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20420
|
-
env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
20421
|
-
sheetId,
|
|
20422
|
-
dimension: "COL",
|
|
20423
|
-
elements: Array.from(Array(env.model.getters.getNumberCols(sheetId)).keys()),
|
|
20424
|
-
});
|
|
20425
|
-
},
|
|
20426
|
-
isVisible: (env) => env.model.getters.getHiddenColsGroups(env.model.getters.getActiveSheetId()).length > 0,
|
|
20427
|
-
};
|
|
20428
|
-
const hideRows = {
|
|
20429
|
-
name: HIDE_ROWS_NAME,
|
|
20430
|
-
execute: (env) => {
|
|
20431
|
-
const rows = env.model.getters.getElementsFromSelection("ROW");
|
|
20432
|
-
env.model.dispatch("HIDE_COLUMNS_ROWS", {
|
|
20433
|
-
sheetId: env.model.getters.getActiveSheetId(),
|
|
20434
|
-
dimension: "ROW",
|
|
20435
|
-
elements: rows,
|
|
20436
|
-
});
|
|
20437
|
-
},
|
|
20438
|
-
isVisible: NOT_ALL_VISIBLE_ROWS_SELECTED,
|
|
20439
|
-
icon: "o-spreadsheet-Icon.HIDE_ROW",
|
|
20440
|
-
};
|
|
20441
|
-
const unhideRows = {
|
|
20442
|
-
name: _t("Unhide rows"),
|
|
20443
|
-
execute: (env) => {
|
|
20444
|
-
const columns = env.model.getters.getElementsFromSelection("ROW");
|
|
20445
|
-
env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
20446
|
-
sheetId: env.model.getters.getActiveSheetId(),
|
|
20447
|
-
dimension: "ROW",
|
|
20448
|
-
elements: columns,
|
|
20449
|
-
});
|
|
20450
|
-
},
|
|
20451
|
-
isVisible: (env) => {
|
|
20452
|
-
const hiddenRows = env.model.getters
|
|
20453
|
-
.getHiddenRowsGroups(env.model.getters.getActiveSheetId())
|
|
20454
|
-
.flat();
|
|
20455
|
-
const currentRows = env.model.getters.getElementsFromSelection("ROW");
|
|
20456
|
-
return currentRows.some((col) => hiddenRows.includes(col));
|
|
20457
|
-
},
|
|
20458
|
-
};
|
|
20459
|
-
const unhideAllRows = {
|
|
20460
|
-
name: _t("Unhide all rows"),
|
|
20461
|
-
execute: (env) => {
|
|
20462
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20463
|
-
env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
20464
|
-
sheetId,
|
|
20465
|
-
dimension: "ROW",
|
|
20466
|
-
elements: Array.from(Array(env.model.getters.getNumberRows(sheetId)).keys()),
|
|
20467
|
-
});
|
|
20468
|
-
},
|
|
20469
|
-
isVisible: (env) => env.model.getters.getHiddenRowsGroups(env.model.getters.getActiveSheetId()).length > 0,
|
|
20470
|
-
};
|
|
20471
|
-
const unFreezePane = {
|
|
20472
|
-
name: _t("Unfreeze"),
|
|
20473
|
-
isVisible: (env) => {
|
|
20474
|
-
const { xSplit, ySplit } = env.model.getters.getPaneDivisions(env.model.getters.getActiveSheetId());
|
|
20475
|
-
return xSplit + ySplit > 0;
|
|
20476
|
-
},
|
|
20477
|
-
execute: (env) => env.model.dispatch("UNFREEZE_COLUMNS_ROWS", {
|
|
20478
|
-
sheetId: env.model.getters.getActiveSheetId(),
|
|
20479
|
-
}),
|
|
20480
|
-
icon: "o-spreadsheet-Icon.UNFREEZE",
|
|
20481
|
-
};
|
|
20482
|
-
const freezePane = {
|
|
20483
|
-
name: _t("Freeze"),
|
|
20484
|
-
icon: "o-spreadsheet-Icon.FREEZE",
|
|
20485
|
-
};
|
|
20486
|
-
const unFreezeRows = {
|
|
20487
|
-
name: _t("No rows"),
|
|
20488
|
-
execute: (env) => env.model.dispatch("UNFREEZE_ROWS", {
|
|
20489
|
-
sheetId: env.model.getters.getActiveSheetId(),
|
|
20490
|
-
}),
|
|
20491
|
-
isReadonlyAllowed: true,
|
|
20492
|
-
isVisible: (env) => !!env.model.getters.getPaneDivisions(env.model.getters.getActiveSheetId()).ySplit,
|
|
20493
|
-
};
|
|
20494
|
-
const freezeFirstRow = {
|
|
20495
|
-
name: _t("1 row"),
|
|
20496
|
-
execute: (env) => interactiveFreezeColumnsRows(env, "ROW", 1),
|
|
20497
|
-
isReadonlyAllowed: true,
|
|
20498
|
-
};
|
|
20499
|
-
const freezeSecondRow = {
|
|
20500
|
-
name: _t("2 rows"),
|
|
20501
|
-
execute: (env) => interactiveFreezeColumnsRows(env, "ROW", 2),
|
|
20502
|
-
isReadonlyAllowed: true,
|
|
20503
|
-
};
|
|
20504
|
-
const freezeCurrentRow = {
|
|
20505
|
-
name: _t("Up to current row"),
|
|
20506
|
-
execute: (env) => {
|
|
20507
|
-
const { bottom } = env.model.getters.getSelectedZone();
|
|
20508
|
-
interactiveFreezeColumnsRows(env, "ROW", bottom + 1);
|
|
20509
|
-
},
|
|
20510
|
-
isReadonlyAllowed: true,
|
|
20511
|
-
};
|
|
20512
|
-
const unFreezeCols = {
|
|
20513
|
-
name: _t("No columns"),
|
|
20514
|
-
execute: (env) => env.model.dispatch("UNFREEZE_COLUMNS", {
|
|
20515
|
-
sheetId: env.model.getters.getActiveSheetId(),
|
|
20516
|
-
}),
|
|
20517
|
-
isReadonlyAllowed: true,
|
|
20518
|
-
isVisible: (env) => !!env.model.getters.getPaneDivisions(env.model.getters.getActiveSheetId()).xSplit,
|
|
20519
|
-
};
|
|
20520
|
-
const freezeFirstCol = {
|
|
20521
|
-
name: _t("1 column"),
|
|
20522
|
-
execute: (env) => interactiveFreezeColumnsRows(env, "COL", 1),
|
|
20523
|
-
isReadonlyAllowed: true,
|
|
20524
|
-
};
|
|
20525
|
-
const freezeSecondCol = {
|
|
20526
|
-
name: _t("2 columns"),
|
|
20527
|
-
execute: (env) => interactiveFreezeColumnsRows(env, "COL", 2),
|
|
20528
|
-
isReadonlyAllowed: true,
|
|
20529
|
-
};
|
|
20530
|
-
const freezeCurrentCol = {
|
|
20531
|
-
name: _t("Up to current column"),
|
|
20532
|
-
execute: (env) => {
|
|
20533
|
-
const { right } = env.model.getters.getSelectedZone();
|
|
20534
|
-
interactiveFreezeColumnsRows(env, "COL", right + 1);
|
|
20535
|
-
},
|
|
20536
|
-
isReadonlyAllowed: true,
|
|
20537
|
-
};
|
|
20538
|
-
const viewGridlines = {
|
|
20539
|
-
name: (env) => env.model.getters.getGridLinesVisibility(env.model.getters.getActiveSheetId())
|
|
20540
|
-
? _t("Hide gridlines")
|
|
20541
|
-
: _t("Show gridlines"),
|
|
20542
|
-
execute: (env) => {
|
|
20543
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20544
|
-
env.model.dispatch("SET_GRID_LINES_VISIBILITY", {
|
|
20545
|
-
sheetId,
|
|
20546
|
-
areGridLinesVisible: !env.model.getters.getGridLinesVisibility(sheetId),
|
|
20547
|
-
});
|
|
20548
|
-
},
|
|
20549
|
-
icon: "o-spreadsheet-Icon.SHOW_HIDE_GRID",
|
|
20550
|
-
};
|
|
20551
|
-
const viewFormulas = {
|
|
20552
|
-
name: (env) => env.model.getters.shouldShowFormulas() ? "Hide formulas" : _t("Show formulas"),
|
|
20553
|
-
execute: (env) => env.model.dispatch("SET_FORMULA_VISIBILITY", { show: !env.model.getters.shouldShowFormulas() }),
|
|
20554
|
-
isReadonlyAllowed: true,
|
|
20555
|
-
icon: "o-spreadsheet-Icon.SHOW_HIDE_FORMULA",
|
|
20556
|
-
};
|
|
20557
|
-
const createRemoveFilter = {
|
|
20558
|
-
name: (env) => selectionContainsFilter(env) ? _t("Remove selected filters") : _t("Create filter"),
|
|
20559
|
-
isActive: (env) => selectionContainsFilter(env),
|
|
20560
|
-
isEnabled: (env) => !cannotCreateFilter(env),
|
|
20561
|
-
execute: (env) => createRemoveFilterAction(env),
|
|
20562
|
-
icon: "o-spreadsheet-Icon.FILTER_ICON_INACTIVE",
|
|
20563
|
-
};
|
|
20564
|
-
const groupColumns = {
|
|
20565
|
-
name: (env) => {
|
|
20566
|
-
const selection = env.model.getters.getSelectedZone();
|
|
20567
|
-
if (selection.left === selection.right) {
|
|
20568
|
-
return _t("Group column %s", numberToLetters(selection.left));
|
|
20569
|
-
}
|
|
20570
|
-
return _t("Group columns %s - %s", numberToLetters(selection.left), numberToLetters(selection.right));
|
|
20571
|
-
},
|
|
20572
|
-
execute: (env) => groupHeadersAction(env, "COL"),
|
|
20573
|
-
isVisible: (env) => {
|
|
20574
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20575
|
-
const selection = env.model.getters.getSelectedZone();
|
|
20576
|
-
const groups = env.model.getters.getHeaderGroupsInZone(sheetId, "COL", selection);
|
|
20577
|
-
return (IS_ONLY_ONE_RANGE(env) &&
|
|
20578
|
-
!groups.some((group) => group.start === selection.left && group.end === selection.right));
|
|
20579
|
-
},
|
|
20580
|
-
icon: "o-spreadsheet-Icon.GROUP_COLUMNS",
|
|
20581
|
-
};
|
|
20582
|
-
const groupRows = {
|
|
20583
|
-
name: (env) => {
|
|
20584
|
-
const selection = env.model.getters.getSelectedZone();
|
|
20585
|
-
if (selection.top === selection.bottom) {
|
|
20586
|
-
return _t("Group row %s", String(selection.top + 1));
|
|
20587
|
-
}
|
|
20588
|
-
return _t("Group rows %s - %s", String(selection.top + 1), String(selection.bottom + 1));
|
|
20589
|
-
},
|
|
20590
|
-
execute: (env) => groupHeadersAction(env, "ROW"),
|
|
20591
|
-
isVisible: (env) => {
|
|
20592
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20593
|
-
const selection = env.model.getters.getSelectedZone();
|
|
20594
|
-
const groups = env.model.getters.getHeaderGroupsInZone(sheetId, "ROW", selection);
|
|
20595
|
-
return (IS_ONLY_ONE_RANGE(env) &&
|
|
20596
|
-
!groups.some((group) => group.start === selection.top && group.end === selection.bottom));
|
|
20597
|
-
},
|
|
20598
|
-
icon: "o-spreadsheet-Icon.GROUP_ROWS",
|
|
20599
|
-
};
|
|
20600
|
-
const ungroupColumns = {
|
|
20601
|
-
name: (env) => {
|
|
20602
|
-
const selection = env.model.getters.getSelectedZone();
|
|
20603
|
-
if (selection.left === selection.right) {
|
|
20604
|
-
return _t("Ungroup column %s", numberToLetters(selection.left));
|
|
20605
|
-
}
|
|
20606
|
-
return _t("Ungroup columns %s - %s", numberToLetters(selection.left), numberToLetters(selection.right));
|
|
20607
|
-
},
|
|
20608
|
-
execute: (env) => ungroupHeaders(env, "COL"),
|
|
20609
|
-
icon: "o-spreadsheet-Icon.UNGROUP_COLUMNS",
|
|
20610
|
-
};
|
|
20611
|
-
const ungroupRows = {
|
|
20612
|
-
name: (env) => {
|
|
20613
|
-
const selection = env.model.getters.getSelectedZone();
|
|
20614
|
-
if (selection.top === selection.bottom) {
|
|
20615
|
-
return _t("Ungroup row %s", String(selection.top + 1));
|
|
20616
|
-
}
|
|
20617
|
-
return _t("Ungroup rows %s - %s", String(selection.top + 1), String(selection.bottom + 1));
|
|
20618
|
-
},
|
|
20619
|
-
execute: (env) => ungroupHeaders(env, "ROW"),
|
|
20620
|
-
icon: "o-spreadsheet-Icon.UNGROUP_ROWS",
|
|
20621
|
-
};
|
|
20622
|
-
function selectionContainsFilter(env) {
|
|
20623
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20624
|
-
const selectedZones = env.model.getters.getSelectedZones();
|
|
20625
|
-
return env.model.getters.doesZonesContainFilter(sheetId, selectedZones);
|
|
20626
|
-
}
|
|
20627
|
-
function cannotCreateFilter(env) {
|
|
20628
|
-
return !areZonesContinuous(...env.model.getters.getSelectedZones());
|
|
20629
|
-
}
|
|
20630
|
-
function createRemoveFilterAction(env) {
|
|
20631
|
-
if (selectionContainsFilter(env)) {
|
|
20632
|
-
env.model.dispatch("REMOVE_FILTER_TABLE", {
|
|
20633
|
-
sheetId: env.model.getters.getActiveSheetId(),
|
|
20634
|
-
target: env.model.getters.getSelectedZones(),
|
|
20635
|
-
});
|
|
20636
|
-
return;
|
|
20637
|
-
}
|
|
20638
|
-
if (cannotCreateFilter(env)) {
|
|
20639
|
-
return;
|
|
20640
|
-
}
|
|
20641
|
-
env.model.selection.selectTableAroundSelection();
|
|
20642
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20643
|
-
const selection = env.model.getters.getSelectedZones();
|
|
20644
|
-
interactiveAddFilter(env, sheetId, selection);
|
|
20645
|
-
}
|
|
20646
|
-
function groupHeadersAction(env, dim) {
|
|
20647
|
-
const selection = env.model.getters.getSelectedZone();
|
|
20648
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20649
|
-
env.model.dispatch("GROUP_HEADERS", {
|
|
20650
|
-
sheetId,
|
|
20651
|
-
dimension: dim,
|
|
20652
|
-
start: dim === "COL" ? selection.left : selection.top,
|
|
20653
|
-
end: dim === "COL" ? selection.right : selection.bottom,
|
|
20654
|
-
});
|
|
20655
|
-
}
|
|
20656
|
-
function ungroupHeaders(env, dim) {
|
|
20657
|
-
const selection = env.model.getters.getSelectedZone();
|
|
20658
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20659
|
-
env.model.dispatch("UNGROUP_HEADERS", {
|
|
20660
|
-
sheetId,
|
|
20661
|
-
dimension: dim,
|
|
20662
|
-
start: dim === "COL" ? selection.left : selection.top,
|
|
20663
|
-
end: dim === "COL" ? selection.right : selection.bottom,
|
|
20664
|
-
});
|
|
20665
|
-
}
|
|
20666
|
-
function canUngroupHeaders(env, dimension) {
|
|
20667
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20668
|
-
const selection = env.model.getters.getSelectedZones();
|
|
20669
|
-
return (selection.length === 1 &&
|
|
20670
|
-
env.model.getters.getHeaderGroupsInZone(sheetId, dimension, selection[0]).length > 0);
|
|
20671
|
-
}
|
|
20672
|
-
|
|
20673
|
-
var ACTION_VIEW = /*#__PURE__*/Object.freeze({
|
|
20674
|
-
__proto__: null,
|
|
20675
|
-
canUngroupHeaders: canUngroupHeaders,
|
|
20676
|
-
createRemoveFilter: createRemoveFilter,
|
|
20677
|
-
freezeCurrentCol: freezeCurrentCol,
|
|
20678
|
-
freezeCurrentRow: freezeCurrentRow,
|
|
20679
|
-
freezeFirstCol: freezeFirstCol,
|
|
20680
|
-
freezeFirstRow: freezeFirstRow,
|
|
20681
|
-
freezePane: freezePane,
|
|
20682
|
-
freezeSecondCol: freezeSecondCol,
|
|
20683
|
-
freezeSecondRow: freezeSecondRow,
|
|
20684
|
-
groupColumns: groupColumns,
|
|
20685
|
-
groupRows: groupRows,
|
|
20686
|
-
hideCols: hideCols,
|
|
20687
|
-
hideRows: hideRows,
|
|
20688
|
-
unFreezeCols: unFreezeCols,
|
|
20689
|
-
unFreezePane: unFreezePane,
|
|
20690
|
-
unFreezeRows: unFreezeRows,
|
|
20691
|
-
ungroupColumns: ungroupColumns,
|
|
20692
|
-
ungroupRows: ungroupRows,
|
|
20693
|
-
unhideAllCols: unhideAllCols,
|
|
20694
|
-
unhideAllRows: unhideAllRows,
|
|
20695
|
-
unhideCols: unhideCols,
|
|
20696
|
-
unhideRows: unhideRows,
|
|
20697
|
-
viewFormulas: viewFormulas,
|
|
20698
|
-
viewGridlines: viewGridlines
|
|
20699
|
-
});
|
|
20700
|
-
|
|
20701
20686
|
const colMenuRegistry = new MenuItemRegistry();
|
|
20702
20687
|
colMenuRegistry
|
|
20703
20688
|
.add("cut", {
|
|
@@ -21340,13 +21325,8 @@ topbarMenuRegistry
|
|
|
21340
21325
|
sequence: 30,
|
|
21341
21326
|
separator: true,
|
|
21342
21327
|
})
|
|
21343
|
-
.addChild("
|
|
21344
|
-
...
|
|
21345
|
-
sequence: 40,
|
|
21346
|
-
separator: true,
|
|
21347
|
-
})
|
|
21348
|
-
.addChild("remove_data_filter", ["data"], {
|
|
21349
|
-
...removeDataFilter,
|
|
21328
|
+
.addChild("add_remove_data_filter", ["data"], {
|
|
21329
|
+
...addRemoveDataFilter,
|
|
21350
21330
|
sequence: 40,
|
|
21351
21331
|
separator: true,
|
|
21352
21332
|
});
|
|
@@ -27849,6 +27829,10 @@ css /*SCSS*/ `
|
|
|
27849
27829
|
height: 0px;
|
|
27850
27830
|
}
|
|
27851
27831
|
}
|
|
27832
|
+
.o-figure-container {
|
|
27833
|
+
-webkit-user-select: none; // safari
|
|
27834
|
+
user-select: none;
|
|
27835
|
+
}
|
|
27852
27836
|
`;
|
|
27853
27837
|
/**
|
|
27854
27838
|
* Each figure ⭐ is positioned inside a container `div` placed and sized
|
|
@@ -48925,7 +48909,7 @@ class FilterEvaluationPlugin extends UIPlugin {
|
|
|
48925
48909
|
"isFilterActive",
|
|
48926
48910
|
];
|
|
48927
48911
|
filterValues = {};
|
|
48928
|
-
hiddenRows =
|
|
48912
|
+
hiddenRows = {};
|
|
48929
48913
|
isEvaluationDirty = false;
|
|
48930
48914
|
allowDispatch(cmd) {
|
|
48931
48915
|
switch (cmd.type) {
|
|
@@ -48968,11 +48952,11 @@ class FilterEvaluationPlugin extends UIPlugin {
|
|
|
48968
48952
|
case "UNFOLD_HEADER_GROUP":
|
|
48969
48953
|
case "FOLD_ALL_HEADER_GROUPS":
|
|
48970
48954
|
case "UNFOLD_ALL_HEADER_GROUPS":
|
|
48971
|
-
this.updateHiddenRows();
|
|
48955
|
+
this.updateHiddenRows(cmd.sheetId);
|
|
48972
48956
|
break;
|
|
48973
48957
|
case "UPDATE_FILTER":
|
|
48974
48958
|
this.updateFilter(cmd);
|
|
48975
|
-
this.updateHiddenRows();
|
|
48959
|
+
this.updateHiddenRows(cmd.sheetId);
|
|
48976
48960
|
break;
|
|
48977
48961
|
case "DUPLICATE_SHEET":
|
|
48978
48962
|
const filterValues = {};
|
|
@@ -48992,15 +48976,14 @@ class FilterEvaluationPlugin extends UIPlugin {
|
|
|
48992
48976
|
}
|
|
48993
48977
|
finalize() {
|
|
48994
48978
|
if (this.isEvaluationDirty) {
|
|
48995
|
-
this.
|
|
48979
|
+
for (const sheetId of this.getters.getSheetIds()) {
|
|
48980
|
+
this.updateHiddenRows(sheetId);
|
|
48981
|
+
}
|
|
48996
48982
|
this.isEvaluationDirty = false;
|
|
48997
48983
|
}
|
|
48998
48984
|
}
|
|
48999
48985
|
isRowFiltered(sheetId, row) {
|
|
49000
|
-
|
|
49001
|
-
return false;
|
|
49002
|
-
}
|
|
49003
|
-
return this.hiddenRows.has(row);
|
|
48986
|
+
return !!this.hiddenRows[sheetId]?.has(row);
|
|
49004
48987
|
}
|
|
49005
48988
|
getCellBorderWithFilterBorder(position) {
|
|
49006
48989
|
const { sheetId, col, row } = position;
|
|
@@ -49051,8 +49034,7 @@ class FilterEvaluationPlugin extends UIPlugin {
|
|
|
49051
49034
|
this.filterValues[sheetId] = {};
|
|
49052
49035
|
this.filterValues[sheetId][id] = hiddenValues;
|
|
49053
49036
|
}
|
|
49054
|
-
updateHiddenRows() {
|
|
49055
|
-
const sheetId = this.getters.getActiveSheetId();
|
|
49037
|
+
updateHiddenRows(sheetId) {
|
|
49056
49038
|
const filters = this.getters
|
|
49057
49039
|
.getFilters(sheetId)
|
|
49058
49040
|
.sort((filter1, filter2) => filter1.zoneWithHeaders.top - filter2.zoneWithHeaders.top);
|
|
@@ -49073,7 +49055,7 @@ class FilterEvaluationPlugin extends UIPlugin {
|
|
|
49073
49055
|
}
|
|
49074
49056
|
}
|
|
49075
49057
|
}
|
|
49076
|
-
this.hiddenRows = hiddenRows;
|
|
49058
|
+
this.hiddenRows[sheetId] = hiddenRows;
|
|
49077
49059
|
}
|
|
49078
49060
|
getCellValueAsString(sheetId, col, row) {
|
|
49079
49061
|
const value = this.getters.getEvaluatedCell({ sheetId, col, row }).formattedValue;
|
|
@@ -50214,13 +50196,14 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
50214
50196
|
}
|
|
50215
50197
|
}
|
|
50216
50198
|
handleEvent(event) {
|
|
50199
|
+
const sheetId = this.getters.getActiveSheetId();
|
|
50217
50200
|
if (event.options.scrollIntoView) {
|
|
50218
50201
|
let { col, row } = findCellInNewZone(event.previousAnchor.zone, event.anchor.zone);
|
|
50219
50202
|
if (event.mode === "updateAnchor") {
|
|
50220
50203
|
const oldZone = event.previousAnchor.zone;
|
|
50221
50204
|
const newZone = event.anchor.zone;
|
|
50222
50205
|
// altering a zone should not move the viewport in a dimension that wasn't changed
|
|
50223
|
-
const { top, bottom, left, right } = this.
|
|
50206
|
+
const { top, bottom, left, right } = this.getMainInternalViewport(sheetId);
|
|
50224
50207
|
if (oldZone.left === newZone.left && oldZone.right === newZone.right) {
|
|
50225
50208
|
col = left > col || col > right ? left : col;
|
|
50226
50209
|
}
|
|
@@ -50228,7 +50211,6 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
50228
50211
|
row = top > row || row > bottom ? top : row;
|
|
50229
50212
|
}
|
|
50230
50213
|
}
|
|
50231
|
-
const sheetId = this.getters.getActiveSheetId();
|
|
50232
50214
|
col = Math.min(col, this.getters.getNumberCols(sheetId) - 1);
|
|
50233
50215
|
row = Math.min(row, this.getters.getNumberRows(sheetId) - 1);
|
|
50234
50216
|
if (!this.sheetsWithDirtyViewports.has(sheetId)) {
|
|
@@ -50265,16 +50247,16 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
50265
50247
|
this.setSheetViewOffset(cmd.offsetX, cmd.offsetY);
|
|
50266
50248
|
break;
|
|
50267
50249
|
case "SHIFT_VIEWPORT_DOWN":
|
|
50268
|
-
const { top } = this.getActiveMainViewport();
|
|
50269
50250
|
const sheetId = this.getters.getActiveSheetId();
|
|
50270
|
-
const
|
|
50271
|
-
this.
|
|
50251
|
+
const { top, viewportHeight, offsetCorrectionY } = this.getMainInternalViewport(sheetId);
|
|
50252
|
+
const topRowDims = this.getters.getRowDimensions(sheetId, top);
|
|
50253
|
+
this.shiftVertically(topRowDims.start + viewportHeight - offsetCorrectionY);
|
|
50272
50254
|
break;
|
|
50273
50255
|
case "SHIFT_VIEWPORT_UP": {
|
|
50274
|
-
const { top } = this.getActiveMainViewport();
|
|
50275
50256
|
const sheetId = this.getters.getActiveSheetId();
|
|
50276
|
-
const
|
|
50277
|
-
this.
|
|
50257
|
+
const { top, viewportHeight, offsetCorrectionY } = this.getMainInternalViewport(sheetId);
|
|
50258
|
+
const topRowDims = this.getters.getRowDimensions(sheetId, top);
|
|
50259
|
+
this.shiftVertically(topRowDims.end - offsetCorrectionY - viewportHeight);
|
|
50278
50260
|
break;
|
|
50279
50261
|
}
|
|
50280
50262
|
case "REMOVE_FILTER_TABLE":
|
|
@@ -50667,17 +50649,6 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
50667
50649
|
const { maxOffsetX, maxOffsetY } = this.getMaximumSheetOffset();
|
|
50668
50650
|
Object.values(this.getSubViewports(sheetId)).forEach((viewport) => viewport.setViewportOffset(clip(offsetX, 0, maxOffsetX), clip(offsetY, 0, maxOffsetY)));
|
|
50669
50651
|
}
|
|
50670
|
-
/**
|
|
50671
|
-
* Clip the vertical offset within the allowed range.
|
|
50672
|
-
* Not above the sheet, nor below the sheet.
|
|
50673
|
-
*/
|
|
50674
|
-
clipOffsetY(offsetY) {
|
|
50675
|
-
const { height } = this.getMainViewportRect();
|
|
50676
|
-
const maxOffset = height - this.sheetViewHeight;
|
|
50677
|
-
offsetY = Math.min(offsetY, maxOffset);
|
|
50678
|
-
offsetY = Math.max(offsetY, 0);
|
|
50679
|
-
return offsetY;
|
|
50680
|
-
}
|
|
50681
50652
|
getViewportOffset(sheetId) {
|
|
50682
50653
|
return {
|
|
50683
50654
|
x: this.viewports[sheetId]?.bottomRight.offsetScrollbarX || 0,
|
|
@@ -50733,12 +50704,15 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
50733
50704
|
* viewport top.
|
|
50734
50705
|
*/
|
|
50735
50706
|
shiftVertically(offset) {
|
|
50736
|
-
const
|
|
50707
|
+
const sheetId = this.getters.getActiveSheetId();
|
|
50708
|
+
const { top } = this.getMainInternalViewport(sheetId);
|
|
50737
50709
|
const { scrollX } = this.getActiveSheetScrollInfo();
|
|
50738
50710
|
this.setSheetViewOffset(scrollX, offset);
|
|
50739
50711
|
const { anchor } = this.getters.getSelection();
|
|
50740
|
-
|
|
50741
|
-
|
|
50712
|
+
if (anchor.cell.row >= this.getters.getPaneDivisions(sheetId).ySplit) {
|
|
50713
|
+
const deltaRow = this.getMainInternalViewport(sheetId).top - top;
|
|
50714
|
+
this.selection.selectCell(anchor.cell.col, anchor.cell.row + deltaRow);
|
|
50715
|
+
}
|
|
50742
50716
|
}
|
|
50743
50717
|
getVisibleFigures() {
|
|
50744
50718
|
const sheetId = this.getters.getActiveSheetId();
|
|
@@ -51669,7 +51643,6 @@ css /* scss */ `
|
|
|
51669
51643
|
cursor: pointer;
|
|
51670
51644
|
}
|
|
51671
51645
|
`;
|
|
51672
|
-
let tKey = 1;
|
|
51673
51646
|
class SpreadsheetDashboard extends Component {
|
|
51674
51647
|
static template = "o-spreadsheet-SpreadsheetDashboard";
|
|
51675
51648
|
static components = {
|
|
@@ -51747,13 +51720,9 @@ class SpreadsheetDashboard extends Component {
|
|
|
51747
51720
|
coordinates: rect,
|
|
51748
51721
|
position: { col, row },
|
|
51749
51722
|
action,
|
|
51750
|
-
// we can't rely on position only because a row or a column could
|
|
51751
|
-
// be inserted at any time.
|
|
51752
|
-
tKey: `${tKey}-${col}-${row}`,
|
|
51753
51723
|
});
|
|
51754
51724
|
}
|
|
51755
51725
|
}
|
|
51756
|
-
tKey++;
|
|
51757
51726
|
return cells;
|
|
51758
51727
|
}
|
|
51759
51728
|
getClickableAction(position) {
|
|
@@ -57024,6 +56993,6 @@ const constants = {
|
|
|
57024
56993
|
export { AbstractChart, CommandResult, CorePlugin, DispatchResult, EvaluationError, Model, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, UIPlugin, __info__, addFunction, astToFormula, compile, compileTokens, components, constants, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, hooks, invalidateCFEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, tokenize };
|
|
57025
56994
|
|
|
57026
56995
|
|
|
57027
|
-
__info__.version = "17.0.
|
|
57028
|
-
__info__.date = "2024-04-
|
|
57029
|
-
__info__.hash = "
|
|
56996
|
+
__info__.version = "17.0.19";
|
|
56997
|
+
__info__.date = "2024-04-18T16:41:42.291Z";
|
|
56998
|
+
__info__.hash = "9f3317a";
|