@odoo/o-spreadsheet 17.1.11 → 17.1.12
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 +386 -402
- package/dist/o-spreadsheet.d.ts +6 -9
- package/dist/o-spreadsheet.esm.js +386 -402
- package/dist/o-spreadsheet.iife.js +386 -402
- package/dist/o-spreadsheet.iife.min.js +262 -258
- 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.1.
|
|
6
|
-
* @date 2024-04-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 17.1.12
|
|
6
|
+
* @date 2024-04-18T16:45:30.109Z
|
|
7
|
+
* @hash 3e90776
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function (exports, owl) {
|
|
@@ -2476,6 +2476,15 @@
|
|
|
2476
2476
|
}
|
|
2477
2477
|
return generateMatrix(matrix.length, matrix[0].length, (col, row) => fn(matrix[col][row]));
|
|
2478
2478
|
}
|
|
2479
|
+
function matrixForEach(matrix, fn) {
|
|
2480
|
+
const numberOfCols = matrix.length;
|
|
2481
|
+
const numberOfRows = matrix[0]?.length ?? 0;
|
|
2482
|
+
for (let col = 0; col < numberOfCols; col++) {
|
|
2483
|
+
for (let row = 0; row < numberOfRows; row++) {
|
|
2484
|
+
fn(matrix[col][row]);
|
|
2485
|
+
}
|
|
2486
|
+
}
|
|
2487
|
+
}
|
|
2479
2488
|
function transposeMatrix(matrix) {
|
|
2480
2489
|
if (!matrix.length) {
|
|
2481
2490
|
return [];
|
|
@@ -8179,6 +8188,7 @@
|
|
|
8179
8188
|
this.save();
|
|
8180
8189
|
}
|
|
8181
8190
|
ev.stopPropagation();
|
|
8191
|
+
ev.preventDefault();
|
|
8182
8192
|
break;
|
|
8183
8193
|
case "Escape":
|
|
8184
8194
|
this.cancel();
|
|
@@ -19761,7 +19771,7 @@
|
|
|
19761
19771
|
}
|
|
19762
19772
|
const descr = addMetaInfoFromArg(addDescr);
|
|
19763
19773
|
validateArguments(descr.args);
|
|
19764
|
-
this.mapping[name] = addErrorHandling(addResultHandling(addInputHandling(descr)), name);
|
|
19774
|
+
this.mapping[name] = addErrorHandling(addResultHandling(addInputHandling(descr), name), name);
|
|
19765
19775
|
super.add(name, descr);
|
|
19766
19776
|
return this;
|
|
19767
19777
|
}
|
|
@@ -19800,9 +19810,7 @@
|
|
|
19800
19810
|
// so we fallback to a generic error
|
|
19801
19811
|
if (hasStringValue(e) && isEvaluationError(e.value)) {
|
|
19802
19812
|
if (hasStringMessage(e)) {
|
|
19803
|
-
|
|
19804
|
-
e.message = e.message.replace("[[FUNCTION_NAME]]", functionName);
|
|
19805
|
-
}
|
|
19813
|
+
replaceFunctionNamePlaceholder(e, functionName);
|
|
19806
19814
|
}
|
|
19807
19815
|
return e;
|
|
19808
19816
|
}
|
|
@@ -19817,21 +19825,29 @@
|
|
|
19817
19825
|
return (obj?.message !== undefined &&
|
|
19818
19826
|
typeof obj.message === "string");
|
|
19819
19827
|
}
|
|
19820
|
-
function addResultHandling(compute) {
|
|
19821
|
-
return function (...args) {
|
|
19828
|
+
function addResultHandling(compute, functionName) {
|
|
19829
|
+
return function computeWithResultHandling(...args) {
|
|
19822
19830
|
const result = compute.apply(this, args);
|
|
19823
19831
|
if (!isMatrix(result)) {
|
|
19824
19832
|
if (typeof result === "object" && result !== null && "value" in result) {
|
|
19833
|
+
replaceFunctionNamePlaceholder(result, functionName);
|
|
19825
19834
|
return result;
|
|
19826
19835
|
}
|
|
19827
19836
|
return { value: result };
|
|
19828
19837
|
}
|
|
19829
19838
|
if (typeof result[0][0] === "object" && result[0][0] !== null && "value" in result[0][0]) {
|
|
19839
|
+
matrixForEach(result, (result) => replaceFunctionNamePlaceholder(result, functionName));
|
|
19830
19840
|
return result;
|
|
19831
19841
|
}
|
|
19832
19842
|
return matrixMap(result, (row) => ({ value: row }));
|
|
19833
19843
|
};
|
|
19834
19844
|
}
|
|
19845
|
+
function replaceFunctionNamePlaceholder(fPayload, functionName) {
|
|
19846
|
+
// for performance reasons: change in place and only if needed
|
|
19847
|
+
if (fPayload.message?.includes("[[FUNCTION_NAME]]")) {
|
|
19848
|
+
fPayload.message = fPayload.message.replace("[[FUNCTION_NAME]]", functionName);
|
|
19849
|
+
}
|
|
19850
|
+
}
|
|
19835
19851
|
const functionRegistry = new FunctionRegistry();
|
|
19836
19852
|
for (let category of categories) {
|
|
19837
19853
|
const fns = category.functions;
|
|
@@ -20203,6 +20219,332 @@
|
|
|
20203
20219
|
}
|
|
20204
20220
|
}
|
|
20205
20221
|
|
|
20222
|
+
function interactiveFreezeColumnsRows(env, dimension, base) {
|
|
20223
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
20224
|
+
const cmd = dimension === "COL" ? "FREEZE_COLUMNS" : "FREEZE_ROWS";
|
|
20225
|
+
const result = env.model.dispatch(cmd, { sheetId, quantity: base });
|
|
20226
|
+
if (result.isCancelledBecause("MergeOverlap" /* CommandResult.MergeOverlap */)) {
|
|
20227
|
+
env.raiseError(MergeErrorMessage);
|
|
20228
|
+
}
|
|
20229
|
+
}
|
|
20230
|
+
|
|
20231
|
+
const hideCols = {
|
|
20232
|
+
name: HIDE_COLUMNS_NAME,
|
|
20233
|
+
execute: (env) => {
|
|
20234
|
+
const columns = env.model.getters.getElementsFromSelection("COL");
|
|
20235
|
+
env.model.dispatch("HIDE_COLUMNS_ROWS", {
|
|
20236
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
20237
|
+
dimension: "COL",
|
|
20238
|
+
elements: columns,
|
|
20239
|
+
});
|
|
20240
|
+
},
|
|
20241
|
+
isVisible: NOT_ALL_VISIBLE_COLS_SELECTED,
|
|
20242
|
+
icon: "o-spreadsheet-Icon.HIDE_COL",
|
|
20243
|
+
};
|
|
20244
|
+
const unhideCols = {
|
|
20245
|
+
name: _t("Unhide columns"),
|
|
20246
|
+
execute: (env) => {
|
|
20247
|
+
const columns = env.model.getters.getElementsFromSelection("COL");
|
|
20248
|
+
env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
20249
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
20250
|
+
dimension: "COL",
|
|
20251
|
+
elements: columns,
|
|
20252
|
+
});
|
|
20253
|
+
},
|
|
20254
|
+
isVisible: (env) => {
|
|
20255
|
+
const hiddenCols = env.model.getters
|
|
20256
|
+
.getHiddenColsGroups(env.model.getters.getActiveSheetId())
|
|
20257
|
+
.flat();
|
|
20258
|
+
const currentCols = env.model.getters.getElementsFromSelection("COL");
|
|
20259
|
+
return currentCols.some((col) => hiddenCols.includes(col));
|
|
20260
|
+
},
|
|
20261
|
+
};
|
|
20262
|
+
const unhideAllCols = {
|
|
20263
|
+
name: _t("Unhide all columns"),
|
|
20264
|
+
execute: (env) => {
|
|
20265
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
20266
|
+
env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
20267
|
+
sheetId,
|
|
20268
|
+
dimension: "COL",
|
|
20269
|
+
elements: Array.from(Array(env.model.getters.getNumberCols(sheetId)).keys()),
|
|
20270
|
+
});
|
|
20271
|
+
},
|
|
20272
|
+
isVisible: (env) => env.model.getters.getHiddenColsGroups(env.model.getters.getActiveSheetId()).length > 0,
|
|
20273
|
+
};
|
|
20274
|
+
const hideRows = {
|
|
20275
|
+
name: HIDE_ROWS_NAME,
|
|
20276
|
+
execute: (env) => {
|
|
20277
|
+
const rows = env.model.getters.getElementsFromSelection("ROW");
|
|
20278
|
+
env.model.dispatch("HIDE_COLUMNS_ROWS", {
|
|
20279
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
20280
|
+
dimension: "ROW",
|
|
20281
|
+
elements: rows,
|
|
20282
|
+
});
|
|
20283
|
+
},
|
|
20284
|
+
isVisible: NOT_ALL_VISIBLE_ROWS_SELECTED,
|
|
20285
|
+
icon: "o-spreadsheet-Icon.HIDE_ROW",
|
|
20286
|
+
};
|
|
20287
|
+
const unhideRows = {
|
|
20288
|
+
name: _t("Unhide rows"),
|
|
20289
|
+
execute: (env) => {
|
|
20290
|
+
const columns = env.model.getters.getElementsFromSelection("ROW");
|
|
20291
|
+
env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
20292
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
20293
|
+
dimension: "ROW",
|
|
20294
|
+
elements: columns,
|
|
20295
|
+
});
|
|
20296
|
+
},
|
|
20297
|
+
isVisible: (env) => {
|
|
20298
|
+
const hiddenRows = env.model.getters
|
|
20299
|
+
.getHiddenRowsGroups(env.model.getters.getActiveSheetId())
|
|
20300
|
+
.flat();
|
|
20301
|
+
const currentRows = env.model.getters.getElementsFromSelection("ROW");
|
|
20302
|
+
return currentRows.some((col) => hiddenRows.includes(col));
|
|
20303
|
+
},
|
|
20304
|
+
};
|
|
20305
|
+
const unhideAllRows = {
|
|
20306
|
+
name: _t("Unhide all rows"),
|
|
20307
|
+
execute: (env) => {
|
|
20308
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
20309
|
+
env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
20310
|
+
sheetId,
|
|
20311
|
+
dimension: "ROW",
|
|
20312
|
+
elements: Array.from(Array(env.model.getters.getNumberRows(sheetId)).keys()),
|
|
20313
|
+
});
|
|
20314
|
+
},
|
|
20315
|
+
isVisible: (env) => env.model.getters.getHiddenRowsGroups(env.model.getters.getActiveSheetId()).length > 0,
|
|
20316
|
+
};
|
|
20317
|
+
const unFreezePane = {
|
|
20318
|
+
name: _t("Unfreeze"),
|
|
20319
|
+
isVisible: (env) => {
|
|
20320
|
+
const { xSplit, ySplit } = env.model.getters.getPaneDivisions(env.model.getters.getActiveSheetId());
|
|
20321
|
+
return xSplit + ySplit > 0;
|
|
20322
|
+
},
|
|
20323
|
+
execute: (env) => env.model.dispatch("UNFREEZE_COLUMNS_ROWS", {
|
|
20324
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
20325
|
+
}),
|
|
20326
|
+
icon: "o-spreadsheet-Icon.UNFREEZE",
|
|
20327
|
+
};
|
|
20328
|
+
const freezePane = {
|
|
20329
|
+
name: _t("Freeze"),
|
|
20330
|
+
icon: "o-spreadsheet-Icon.FREEZE",
|
|
20331
|
+
};
|
|
20332
|
+
const unFreezeRows = {
|
|
20333
|
+
name: _t("No rows"),
|
|
20334
|
+
execute: (env) => env.model.dispatch("UNFREEZE_ROWS", {
|
|
20335
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
20336
|
+
}),
|
|
20337
|
+
isReadonlyAllowed: true,
|
|
20338
|
+
isVisible: (env) => !!env.model.getters.getPaneDivisions(env.model.getters.getActiveSheetId()).ySplit,
|
|
20339
|
+
};
|
|
20340
|
+
const freezeFirstRow = {
|
|
20341
|
+
name: _t("1 row"),
|
|
20342
|
+
execute: (env) => interactiveFreezeColumnsRows(env, "ROW", 1),
|
|
20343
|
+
isReadonlyAllowed: true,
|
|
20344
|
+
};
|
|
20345
|
+
const freezeSecondRow = {
|
|
20346
|
+
name: _t("2 rows"),
|
|
20347
|
+
execute: (env) => interactiveFreezeColumnsRows(env, "ROW", 2),
|
|
20348
|
+
isReadonlyAllowed: true,
|
|
20349
|
+
};
|
|
20350
|
+
const freezeCurrentRow = {
|
|
20351
|
+
name: _t("Up to current row"),
|
|
20352
|
+
execute: (env) => {
|
|
20353
|
+
const { bottom } = env.model.getters.getSelectedZone();
|
|
20354
|
+
interactiveFreezeColumnsRows(env, "ROW", bottom + 1);
|
|
20355
|
+
},
|
|
20356
|
+
isReadonlyAllowed: true,
|
|
20357
|
+
};
|
|
20358
|
+
const unFreezeCols = {
|
|
20359
|
+
name: _t("No columns"),
|
|
20360
|
+
execute: (env) => env.model.dispatch("UNFREEZE_COLUMNS", {
|
|
20361
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
20362
|
+
}),
|
|
20363
|
+
isReadonlyAllowed: true,
|
|
20364
|
+
isVisible: (env) => !!env.model.getters.getPaneDivisions(env.model.getters.getActiveSheetId()).xSplit,
|
|
20365
|
+
};
|
|
20366
|
+
const freezeFirstCol = {
|
|
20367
|
+
name: _t("1 column"),
|
|
20368
|
+
execute: (env) => interactiveFreezeColumnsRows(env, "COL", 1),
|
|
20369
|
+
isReadonlyAllowed: true,
|
|
20370
|
+
};
|
|
20371
|
+
const freezeSecondCol = {
|
|
20372
|
+
name: _t("2 columns"),
|
|
20373
|
+
execute: (env) => interactiveFreezeColumnsRows(env, "COL", 2),
|
|
20374
|
+
isReadonlyAllowed: true,
|
|
20375
|
+
};
|
|
20376
|
+
const freezeCurrentCol = {
|
|
20377
|
+
name: _t("Up to current column"),
|
|
20378
|
+
execute: (env) => {
|
|
20379
|
+
const { right } = env.model.getters.getSelectedZone();
|
|
20380
|
+
interactiveFreezeColumnsRows(env, "COL", right + 1);
|
|
20381
|
+
},
|
|
20382
|
+
isReadonlyAllowed: true,
|
|
20383
|
+
};
|
|
20384
|
+
const viewGridlines = {
|
|
20385
|
+
name: (env) => env.model.getters.getGridLinesVisibility(env.model.getters.getActiveSheetId())
|
|
20386
|
+
? _t("Hide gridlines")
|
|
20387
|
+
: _t("Show gridlines"),
|
|
20388
|
+
execute: (env) => {
|
|
20389
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
20390
|
+
env.model.dispatch("SET_GRID_LINES_VISIBILITY", {
|
|
20391
|
+
sheetId,
|
|
20392
|
+
areGridLinesVisible: !env.model.getters.getGridLinesVisibility(sheetId),
|
|
20393
|
+
});
|
|
20394
|
+
},
|
|
20395
|
+
icon: "o-spreadsheet-Icon.SHOW_HIDE_GRID",
|
|
20396
|
+
};
|
|
20397
|
+
const viewFormulas = {
|
|
20398
|
+
name: (env) => env.model.getters.shouldShowFormulas() ? "Hide formulas" : _t("Show formulas"),
|
|
20399
|
+
execute: (env) => env.model.dispatch("SET_FORMULA_VISIBILITY", { show: !env.model.getters.shouldShowFormulas() }),
|
|
20400
|
+
isReadonlyAllowed: true,
|
|
20401
|
+
icon: "o-spreadsheet-Icon.SHOW_HIDE_FORMULA",
|
|
20402
|
+
};
|
|
20403
|
+
const createRemoveFilter = {
|
|
20404
|
+
name: (env) => selectionContainsFilter(env) ? _t("Remove selected filters") : _t("Create filter"),
|
|
20405
|
+
isActive: (env) => selectionContainsFilter(env),
|
|
20406
|
+
isEnabled: (env) => !cannotCreateFilter(env),
|
|
20407
|
+
execute: (env) => createRemoveFilterAction(env),
|
|
20408
|
+
icon: "o-spreadsheet-Icon.FILTER_ICON_INACTIVE",
|
|
20409
|
+
};
|
|
20410
|
+
const groupColumns = {
|
|
20411
|
+
name: (env) => {
|
|
20412
|
+
const selection = env.model.getters.getSelectedZone();
|
|
20413
|
+
if (selection.left === selection.right) {
|
|
20414
|
+
return _t("Group column %s", numberToLetters(selection.left));
|
|
20415
|
+
}
|
|
20416
|
+
return _t("Group columns %s - %s", numberToLetters(selection.left), numberToLetters(selection.right));
|
|
20417
|
+
},
|
|
20418
|
+
execute: (env) => groupHeadersAction(env, "COL"),
|
|
20419
|
+
isVisible: (env) => {
|
|
20420
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
20421
|
+
const selection = env.model.getters.getSelectedZone();
|
|
20422
|
+
const groups = env.model.getters.getHeaderGroupsInZone(sheetId, "COL", selection);
|
|
20423
|
+
return (IS_ONLY_ONE_RANGE(env) &&
|
|
20424
|
+
!groups.some((group) => group.start === selection.left && group.end === selection.right));
|
|
20425
|
+
},
|
|
20426
|
+
icon: "o-spreadsheet-Icon.GROUP_COLUMNS",
|
|
20427
|
+
};
|
|
20428
|
+
const groupRows = {
|
|
20429
|
+
name: (env) => {
|
|
20430
|
+
const selection = env.model.getters.getSelectedZone();
|
|
20431
|
+
if (selection.top === selection.bottom) {
|
|
20432
|
+
return _t("Group row %s", String(selection.top + 1));
|
|
20433
|
+
}
|
|
20434
|
+
return _t("Group rows %s - %s", String(selection.top + 1), String(selection.bottom + 1));
|
|
20435
|
+
},
|
|
20436
|
+
execute: (env) => groupHeadersAction(env, "ROW"),
|
|
20437
|
+
isVisible: (env) => {
|
|
20438
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
20439
|
+
const selection = env.model.getters.getSelectedZone();
|
|
20440
|
+
const groups = env.model.getters.getHeaderGroupsInZone(sheetId, "ROW", selection);
|
|
20441
|
+
return (IS_ONLY_ONE_RANGE(env) &&
|
|
20442
|
+
!groups.some((group) => group.start === selection.top && group.end === selection.bottom));
|
|
20443
|
+
},
|
|
20444
|
+
icon: "o-spreadsheet-Icon.GROUP_ROWS",
|
|
20445
|
+
};
|
|
20446
|
+
const ungroupColumns = {
|
|
20447
|
+
name: (env) => {
|
|
20448
|
+
const selection = env.model.getters.getSelectedZone();
|
|
20449
|
+
if (selection.left === selection.right) {
|
|
20450
|
+
return _t("Ungroup column %s", numberToLetters(selection.left));
|
|
20451
|
+
}
|
|
20452
|
+
return _t("Ungroup columns %s - %s", numberToLetters(selection.left), numberToLetters(selection.right));
|
|
20453
|
+
},
|
|
20454
|
+
execute: (env) => ungroupHeaders(env, "COL"),
|
|
20455
|
+
icon: "o-spreadsheet-Icon.UNGROUP_COLUMNS",
|
|
20456
|
+
};
|
|
20457
|
+
const ungroupRows = {
|
|
20458
|
+
name: (env) => {
|
|
20459
|
+
const selection = env.model.getters.getSelectedZone();
|
|
20460
|
+
if (selection.top === selection.bottom) {
|
|
20461
|
+
return _t("Ungroup row %s", String(selection.top + 1));
|
|
20462
|
+
}
|
|
20463
|
+
return _t("Ungroup rows %s - %s", String(selection.top + 1), String(selection.bottom + 1));
|
|
20464
|
+
},
|
|
20465
|
+
execute: (env) => ungroupHeaders(env, "ROW"),
|
|
20466
|
+
icon: "o-spreadsheet-Icon.UNGROUP_ROWS",
|
|
20467
|
+
};
|
|
20468
|
+
function selectionContainsFilter(env) {
|
|
20469
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
20470
|
+
const selectedZones = env.model.getters.getSelectedZones();
|
|
20471
|
+
return env.model.getters.doesZonesContainFilter(sheetId, selectedZones);
|
|
20472
|
+
}
|
|
20473
|
+
function cannotCreateFilter(env) {
|
|
20474
|
+
return !areZonesContinuous(...env.model.getters.getSelectedZones());
|
|
20475
|
+
}
|
|
20476
|
+
function createRemoveFilterAction(env) {
|
|
20477
|
+
if (selectionContainsFilter(env)) {
|
|
20478
|
+
env.model.dispatch("REMOVE_FILTER_TABLE", {
|
|
20479
|
+
sheetId: env.model.getters.getActiveSheetId(),
|
|
20480
|
+
target: env.model.getters.getSelectedZones(),
|
|
20481
|
+
});
|
|
20482
|
+
return;
|
|
20483
|
+
}
|
|
20484
|
+
if (cannotCreateFilter(env)) {
|
|
20485
|
+
return;
|
|
20486
|
+
}
|
|
20487
|
+
env.model.selection.selectTableAroundSelection();
|
|
20488
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
20489
|
+
const selection = env.model.getters.getSelectedZones();
|
|
20490
|
+
interactiveAddFilter(env, sheetId, selection);
|
|
20491
|
+
}
|
|
20492
|
+
function groupHeadersAction(env, dim) {
|
|
20493
|
+
const selection = env.model.getters.getSelectedZone();
|
|
20494
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
20495
|
+
env.model.dispatch("GROUP_HEADERS", {
|
|
20496
|
+
sheetId,
|
|
20497
|
+
dimension: dim,
|
|
20498
|
+
start: dim === "COL" ? selection.left : selection.top,
|
|
20499
|
+
end: dim === "COL" ? selection.right : selection.bottom,
|
|
20500
|
+
});
|
|
20501
|
+
}
|
|
20502
|
+
function ungroupHeaders(env, dim) {
|
|
20503
|
+
const selection = env.model.getters.getSelectedZone();
|
|
20504
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
20505
|
+
env.model.dispatch("UNGROUP_HEADERS", {
|
|
20506
|
+
sheetId,
|
|
20507
|
+
dimension: dim,
|
|
20508
|
+
start: dim === "COL" ? selection.left : selection.top,
|
|
20509
|
+
end: dim === "COL" ? selection.right : selection.bottom,
|
|
20510
|
+
});
|
|
20511
|
+
}
|
|
20512
|
+
function canUngroupHeaders(env, dimension) {
|
|
20513
|
+
const sheetId = env.model.getters.getActiveSheetId();
|
|
20514
|
+
const selection = env.model.getters.getSelectedZones();
|
|
20515
|
+
return (selection.length === 1 &&
|
|
20516
|
+
env.model.getters.getHeaderGroupsInZone(sheetId, dimension, selection[0]).length > 0);
|
|
20517
|
+
}
|
|
20518
|
+
|
|
20519
|
+
var ACTION_VIEW = /*#__PURE__*/Object.freeze({
|
|
20520
|
+
__proto__: null,
|
|
20521
|
+
canUngroupHeaders: canUngroupHeaders,
|
|
20522
|
+
createRemoveFilter: createRemoveFilter,
|
|
20523
|
+
createRemoveFilterAction: createRemoveFilterAction,
|
|
20524
|
+
freezeCurrentCol: freezeCurrentCol,
|
|
20525
|
+
freezeCurrentRow: freezeCurrentRow,
|
|
20526
|
+
freezeFirstCol: freezeFirstCol,
|
|
20527
|
+
freezeFirstRow: freezeFirstRow,
|
|
20528
|
+
freezePane: freezePane,
|
|
20529
|
+
freezeSecondCol: freezeSecondCol,
|
|
20530
|
+
freezeSecondRow: freezeSecondRow,
|
|
20531
|
+
groupColumns: groupColumns,
|
|
20532
|
+
groupRows: groupRows,
|
|
20533
|
+
hideCols: hideCols,
|
|
20534
|
+
hideRows: hideRows,
|
|
20535
|
+
unFreezeCols: unFreezeCols,
|
|
20536
|
+
unFreezePane: unFreezePane,
|
|
20537
|
+
unFreezeRows: unFreezeRows,
|
|
20538
|
+
ungroupColumns: ungroupColumns,
|
|
20539
|
+
ungroupRows: ungroupRows,
|
|
20540
|
+
unhideAllCols: unhideAllCols,
|
|
20541
|
+
unhideAllRows: unhideAllRows,
|
|
20542
|
+
unhideCols: unhideCols,
|
|
20543
|
+
unhideRows: unhideRows,
|
|
20544
|
+
viewFormulas: viewFormulas,
|
|
20545
|
+
viewGridlines: viewGridlines
|
|
20546
|
+
});
|
|
20547
|
+
|
|
20206
20548
|
const sortRange = {
|
|
20207
20549
|
name: _t("Sort range"),
|
|
20208
20550
|
isVisible: IS_ONLY_ONE_RANGE,
|
|
@@ -20245,32 +20587,15 @@
|
|
|
20245
20587
|
},
|
|
20246
20588
|
icon: "o-spreadsheet-Icon.SORT_DESCENDING",
|
|
20247
20589
|
};
|
|
20248
|
-
const
|
|
20249
|
-
name: _t("Create filter"),
|
|
20250
|
-
execute: (env) =>
|
|
20251
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20252
|
-
const selection = env.model.getters.getSelection().zones;
|
|
20253
|
-
interactiveAddFilter(env, sheetId, selection);
|
|
20254
|
-
},
|
|
20255
|
-
isVisible: (env) => !SELECTION_CONTAINS_FILTER(env),
|
|
20590
|
+
const addRemoveDataFilter = {
|
|
20591
|
+
name: (env) => SELECTION_CONTAINS_FILTER(env) ? _t("Remove filter") : _t("Create filter"),
|
|
20592
|
+
execute: (env) => createRemoveFilterAction(env),
|
|
20256
20593
|
isEnabled: (env) => {
|
|
20257
20594
|
const selectedZones = env.model.getters.getSelectedZones();
|
|
20258
20595
|
return areZonesContinuous(...selectedZones);
|
|
20259
20596
|
},
|
|
20260
20597
|
icon: "o-spreadsheet-Icon.MENU_FILTER_ICON",
|
|
20261
20598
|
};
|
|
20262
|
-
const removeDataFilter = {
|
|
20263
|
-
name: _t("Remove filter"),
|
|
20264
|
-
execute: (env) => {
|
|
20265
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20266
|
-
env.model.dispatch("REMOVE_FILTER_TABLE", {
|
|
20267
|
-
sheetId,
|
|
20268
|
-
target: env.model.getters.getSelectedZones(),
|
|
20269
|
-
});
|
|
20270
|
-
},
|
|
20271
|
-
isVisible: SELECTION_CONTAINS_FILTER,
|
|
20272
|
-
icon: "o-spreadsheet-Icon.MENU_FILTER_ICON",
|
|
20273
|
-
};
|
|
20274
20599
|
const splitToColumns = {
|
|
20275
20600
|
name: _t("Split text to columns"),
|
|
20276
20601
|
sequence: 1,
|
|
@@ -20682,331 +21007,6 @@
|
|
|
20682
21007
|
textColor: textColor
|
|
20683
21008
|
});
|
|
20684
21009
|
|
|
20685
|
-
function interactiveFreezeColumnsRows(env, dimension, base) {
|
|
20686
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20687
|
-
const cmd = dimension === "COL" ? "FREEZE_COLUMNS" : "FREEZE_ROWS";
|
|
20688
|
-
const result = env.model.dispatch(cmd, { sheetId, quantity: base });
|
|
20689
|
-
if (result.isCancelledBecause("MergeOverlap" /* CommandResult.MergeOverlap */)) {
|
|
20690
|
-
env.raiseError(MergeErrorMessage);
|
|
20691
|
-
}
|
|
20692
|
-
}
|
|
20693
|
-
|
|
20694
|
-
const hideCols = {
|
|
20695
|
-
name: HIDE_COLUMNS_NAME,
|
|
20696
|
-
execute: (env) => {
|
|
20697
|
-
const columns = env.model.getters.getElementsFromSelection("COL");
|
|
20698
|
-
env.model.dispatch("HIDE_COLUMNS_ROWS", {
|
|
20699
|
-
sheetId: env.model.getters.getActiveSheetId(),
|
|
20700
|
-
dimension: "COL",
|
|
20701
|
-
elements: columns,
|
|
20702
|
-
});
|
|
20703
|
-
},
|
|
20704
|
-
isVisible: NOT_ALL_VISIBLE_COLS_SELECTED,
|
|
20705
|
-
icon: "o-spreadsheet-Icon.HIDE_COL",
|
|
20706
|
-
};
|
|
20707
|
-
const unhideCols = {
|
|
20708
|
-
name: _t("Unhide columns"),
|
|
20709
|
-
execute: (env) => {
|
|
20710
|
-
const columns = env.model.getters.getElementsFromSelection("COL");
|
|
20711
|
-
env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
20712
|
-
sheetId: env.model.getters.getActiveSheetId(),
|
|
20713
|
-
dimension: "COL",
|
|
20714
|
-
elements: columns,
|
|
20715
|
-
});
|
|
20716
|
-
},
|
|
20717
|
-
isVisible: (env) => {
|
|
20718
|
-
const hiddenCols = env.model.getters
|
|
20719
|
-
.getHiddenColsGroups(env.model.getters.getActiveSheetId())
|
|
20720
|
-
.flat();
|
|
20721
|
-
const currentCols = env.model.getters.getElementsFromSelection("COL");
|
|
20722
|
-
return currentCols.some((col) => hiddenCols.includes(col));
|
|
20723
|
-
},
|
|
20724
|
-
};
|
|
20725
|
-
const unhideAllCols = {
|
|
20726
|
-
name: _t("Unhide all columns"),
|
|
20727
|
-
execute: (env) => {
|
|
20728
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20729
|
-
env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
20730
|
-
sheetId,
|
|
20731
|
-
dimension: "COL",
|
|
20732
|
-
elements: Array.from(Array(env.model.getters.getNumberCols(sheetId)).keys()),
|
|
20733
|
-
});
|
|
20734
|
-
},
|
|
20735
|
-
isVisible: (env) => env.model.getters.getHiddenColsGroups(env.model.getters.getActiveSheetId()).length > 0,
|
|
20736
|
-
};
|
|
20737
|
-
const hideRows = {
|
|
20738
|
-
name: HIDE_ROWS_NAME,
|
|
20739
|
-
execute: (env) => {
|
|
20740
|
-
const rows = env.model.getters.getElementsFromSelection("ROW");
|
|
20741
|
-
env.model.dispatch("HIDE_COLUMNS_ROWS", {
|
|
20742
|
-
sheetId: env.model.getters.getActiveSheetId(),
|
|
20743
|
-
dimension: "ROW",
|
|
20744
|
-
elements: rows,
|
|
20745
|
-
});
|
|
20746
|
-
},
|
|
20747
|
-
isVisible: NOT_ALL_VISIBLE_ROWS_SELECTED,
|
|
20748
|
-
icon: "o-spreadsheet-Icon.HIDE_ROW",
|
|
20749
|
-
};
|
|
20750
|
-
const unhideRows = {
|
|
20751
|
-
name: _t("Unhide rows"),
|
|
20752
|
-
execute: (env) => {
|
|
20753
|
-
const columns = env.model.getters.getElementsFromSelection("ROW");
|
|
20754
|
-
env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
20755
|
-
sheetId: env.model.getters.getActiveSheetId(),
|
|
20756
|
-
dimension: "ROW",
|
|
20757
|
-
elements: columns,
|
|
20758
|
-
});
|
|
20759
|
-
},
|
|
20760
|
-
isVisible: (env) => {
|
|
20761
|
-
const hiddenRows = env.model.getters
|
|
20762
|
-
.getHiddenRowsGroups(env.model.getters.getActiveSheetId())
|
|
20763
|
-
.flat();
|
|
20764
|
-
const currentRows = env.model.getters.getElementsFromSelection("ROW");
|
|
20765
|
-
return currentRows.some((col) => hiddenRows.includes(col));
|
|
20766
|
-
},
|
|
20767
|
-
};
|
|
20768
|
-
const unhideAllRows = {
|
|
20769
|
-
name: _t("Unhide all rows"),
|
|
20770
|
-
execute: (env) => {
|
|
20771
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20772
|
-
env.model.dispatch("UNHIDE_COLUMNS_ROWS", {
|
|
20773
|
-
sheetId,
|
|
20774
|
-
dimension: "ROW",
|
|
20775
|
-
elements: Array.from(Array(env.model.getters.getNumberRows(sheetId)).keys()),
|
|
20776
|
-
});
|
|
20777
|
-
},
|
|
20778
|
-
isVisible: (env) => env.model.getters.getHiddenRowsGroups(env.model.getters.getActiveSheetId()).length > 0,
|
|
20779
|
-
};
|
|
20780
|
-
const unFreezePane = {
|
|
20781
|
-
name: _t("Unfreeze"),
|
|
20782
|
-
isVisible: (env) => {
|
|
20783
|
-
const { xSplit, ySplit } = env.model.getters.getPaneDivisions(env.model.getters.getActiveSheetId());
|
|
20784
|
-
return xSplit + ySplit > 0;
|
|
20785
|
-
},
|
|
20786
|
-
execute: (env) => env.model.dispatch("UNFREEZE_COLUMNS_ROWS", {
|
|
20787
|
-
sheetId: env.model.getters.getActiveSheetId(),
|
|
20788
|
-
}),
|
|
20789
|
-
icon: "o-spreadsheet-Icon.UNFREEZE",
|
|
20790
|
-
};
|
|
20791
|
-
const freezePane = {
|
|
20792
|
-
name: _t("Freeze"),
|
|
20793
|
-
icon: "o-spreadsheet-Icon.FREEZE",
|
|
20794
|
-
};
|
|
20795
|
-
const unFreezeRows = {
|
|
20796
|
-
name: _t("No rows"),
|
|
20797
|
-
execute: (env) => env.model.dispatch("UNFREEZE_ROWS", {
|
|
20798
|
-
sheetId: env.model.getters.getActiveSheetId(),
|
|
20799
|
-
}),
|
|
20800
|
-
isReadonlyAllowed: true,
|
|
20801
|
-
isVisible: (env) => !!env.model.getters.getPaneDivisions(env.model.getters.getActiveSheetId()).ySplit,
|
|
20802
|
-
};
|
|
20803
|
-
const freezeFirstRow = {
|
|
20804
|
-
name: _t("1 row"),
|
|
20805
|
-
execute: (env) => interactiveFreezeColumnsRows(env, "ROW", 1),
|
|
20806
|
-
isReadonlyAllowed: true,
|
|
20807
|
-
};
|
|
20808
|
-
const freezeSecondRow = {
|
|
20809
|
-
name: _t("2 rows"),
|
|
20810
|
-
execute: (env) => interactiveFreezeColumnsRows(env, "ROW", 2),
|
|
20811
|
-
isReadonlyAllowed: true,
|
|
20812
|
-
};
|
|
20813
|
-
const freezeCurrentRow = {
|
|
20814
|
-
name: _t("Up to current row"),
|
|
20815
|
-
execute: (env) => {
|
|
20816
|
-
const { bottom } = env.model.getters.getSelectedZone();
|
|
20817
|
-
interactiveFreezeColumnsRows(env, "ROW", bottom + 1);
|
|
20818
|
-
},
|
|
20819
|
-
isReadonlyAllowed: true,
|
|
20820
|
-
};
|
|
20821
|
-
const unFreezeCols = {
|
|
20822
|
-
name: _t("No columns"),
|
|
20823
|
-
execute: (env) => env.model.dispatch("UNFREEZE_COLUMNS", {
|
|
20824
|
-
sheetId: env.model.getters.getActiveSheetId(),
|
|
20825
|
-
}),
|
|
20826
|
-
isReadonlyAllowed: true,
|
|
20827
|
-
isVisible: (env) => !!env.model.getters.getPaneDivisions(env.model.getters.getActiveSheetId()).xSplit,
|
|
20828
|
-
};
|
|
20829
|
-
const freezeFirstCol = {
|
|
20830
|
-
name: _t("1 column"),
|
|
20831
|
-
execute: (env) => interactiveFreezeColumnsRows(env, "COL", 1),
|
|
20832
|
-
isReadonlyAllowed: true,
|
|
20833
|
-
};
|
|
20834
|
-
const freezeSecondCol = {
|
|
20835
|
-
name: _t("2 columns"),
|
|
20836
|
-
execute: (env) => interactiveFreezeColumnsRows(env, "COL", 2),
|
|
20837
|
-
isReadonlyAllowed: true,
|
|
20838
|
-
};
|
|
20839
|
-
const freezeCurrentCol = {
|
|
20840
|
-
name: _t("Up to current column"),
|
|
20841
|
-
execute: (env) => {
|
|
20842
|
-
const { right } = env.model.getters.getSelectedZone();
|
|
20843
|
-
interactiveFreezeColumnsRows(env, "COL", right + 1);
|
|
20844
|
-
},
|
|
20845
|
-
isReadonlyAllowed: true,
|
|
20846
|
-
};
|
|
20847
|
-
const viewGridlines = {
|
|
20848
|
-
name: (env) => env.model.getters.getGridLinesVisibility(env.model.getters.getActiveSheetId())
|
|
20849
|
-
? _t("Hide gridlines")
|
|
20850
|
-
: _t("Show gridlines"),
|
|
20851
|
-
execute: (env) => {
|
|
20852
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20853
|
-
env.model.dispatch("SET_GRID_LINES_VISIBILITY", {
|
|
20854
|
-
sheetId,
|
|
20855
|
-
areGridLinesVisible: !env.model.getters.getGridLinesVisibility(sheetId),
|
|
20856
|
-
});
|
|
20857
|
-
},
|
|
20858
|
-
icon: "o-spreadsheet-Icon.SHOW_HIDE_GRID",
|
|
20859
|
-
};
|
|
20860
|
-
const viewFormulas = {
|
|
20861
|
-
name: (env) => env.model.getters.shouldShowFormulas() ? "Hide formulas" : _t("Show formulas"),
|
|
20862
|
-
execute: (env) => env.model.dispatch("SET_FORMULA_VISIBILITY", { show: !env.model.getters.shouldShowFormulas() }),
|
|
20863
|
-
isReadonlyAllowed: true,
|
|
20864
|
-
icon: "o-spreadsheet-Icon.SHOW_HIDE_FORMULA",
|
|
20865
|
-
};
|
|
20866
|
-
const createRemoveFilter = {
|
|
20867
|
-
name: (env) => selectionContainsFilter(env) ? _t("Remove selected filters") : _t("Create filter"),
|
|
20868
|
-
isActive: (env) => selectionContainsFilter(env),
|
|
20869
|
-
isEnabled: (env) => !cannotCreateFilter(env),
|
|
20870
|
-
execute: (env) => createRemoveFilterAction(env),
|
|
20871
|
-
icon: "o-spreadsheet-Icon.FILTER_ICON_INACTIVE",
|
|
20872
|
-
};
|
|
20873
|
-
const groupColumns = {
|
|
20874
|
-
name: (env) => {
|
|
20875
|
-
const selection = env.model.getters.getSelectedZone();
|
|
20876
|
-
if (selection.left === selection.right) {
|
|
20877
|
-
return _t("Group column %s", numberToLetters(selection.left));
|
|
20878
|
-
}
|
|
20879
|
-
return _t("Group columns %s - %s", numberToLetters(selection.left), numberToLetters(selection.right));
|
|
20880
|
-
},
|
|
20881
|
-
execute: (env) => groupHeadersAction(env, "COL"),
|
|
20882
|
-
isVisible: (env) => {
|
|
20883
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20884
|
-
const selection = env.model.getters.getSelectedZone();
|
|
20885
|
-
const groups = env.model.getters.getHeaderGroupsInZone(sheetId, "COL", selection);
|
|
20886
|
-
return (IS_ONLY_ONE_RANGE(env) &&
|
|
20887
|
-
!groups.some((group) => group.start === selection.left && group.end === selection.right));
|
|
20888
|
-
},
|
|
20889
|
-
icon: "o-spreadsheet-Icon.GROUP_COLUMNS",
|
|
20890
|
-
};
|
|
20891
|
-
const groupRows = {
|
|
20892
|
-
name: (env) => {
|
|
20893
|
-
const selection = env.model.getters.getSelectedZone();
|
|
20894
|
-
if (selection.top === selection.bottom) {
|
|
20895
|
-
return _t("Group row %s", String(selection.top + 1));
|
|
20896
|
-
}
|
|
20897
|
-
return _t("Group rows %s - %s", String(selection.top + 1), String(selection.bottom + 1));
|
|
20898
|
-
},
|
|
20899
|
-
execute: (env) => groupHeadersAction(env, "ROW"),
|
|
20900
|
-
isVisible: (env) => {
|
|
20901
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20902
|
-
const selection = env.model.getters.getSelectedZone();
|
|
20903
|
-
const groups = env.model.getters.getHeaderGroupsInZone(sheetId, "ROW", selection);
|
|
20904
|
-
return (IS_ONLY_ONE_RANGE(env) &&
|
|
20905
|
-
!groups.some((group) => group.start === selection.top && group.end === selection.bottom));
|
|
20906
|
-
},
|
|
20907
|
-
icon: "o-spreadsheet-Icon.GROUP_ROWS",
|
|
20908
|
-
};
|
|
20909
|
-
const ungroupColumns = {
|
|
20910
|
-
name: (env) => {
|
|
20911
|
-
const selection = env.model.getters.getSelectedZone();
|
|
20912
|
-
if (selection.left === selection.right) {
|
|
20913
|
-
return _t("Ungroup column %s", numberToLetters(selection.left));
|
|
20914
|
-
}
|
|
20915
|
-
return _t("Ungroup columns %s - %s", numberToLetters(selection.left), numberToLetters(selection.right));
|
|
20916
|
-
},
|
|
20917
|
-
execute: (env) => ungroupHeaders(env, "COL"),
|
|
20918
|
-
icon: "o-spreadsheet-Icon.UNGROUP_COLUMNS",
|
|
20919
|
-
};
|
|
20920
|
-
const ungroupRows = {
|
|
20921
|
-
name: (env) => {
|
|
20922
|
-
const selection = env.model.getters.getSelectedZone();
|
|
20923
|
-
if (selection.top === selection.bottom) {
|
|
20924
|
-
return _t("Ungroup row %s", String(selection.top + 1));
|
|
20925
|
-
}
|
|
20926
|
-
return _t("Ungroup rows %s - %s", String(selection.top + 1), String(selection.bottom + 1));
|
|
20927
|
-
},
|
|
20928
|
-
execute: (env) => ungroupHeaders(env, "ROW"),
|
|
20929
|
-
icon: "o-spreadsheet-Icon.UNGROUP_ROWS",
|
|
20930
|
-
};
|
|
20931
|
-
function selectionContainsFilter(env) {
|
|
20932
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20933
|
-
const selectedZones = env.model.getters.getSelectedZones();
|
|
20934
|
-
return env.model.getters.doesZonesContainFilter(sheetId, selectedZones);
|
|
20935
|
-
}
|
|
20936
|
-
function cannotCreateFilter(env) {
|
|
20937
|
-
return !areZonesContinuous(...env.model.getters.getSelectedZones());
|
|
20938
|
-
}
|
|
20939
|
-
function createRemoveFilterAction(env) {
|
|
20940
|
-
if (selectionContainsFilter(env)) {
|
|
20941
|
-
env.model.dispatch("REMOVE_FILTER_TABLE", {
|
|
20942
|
-
sheetId: env.model.getters.getActiveSheetId(),
|
|
20943
|
-
target: env.model.getters.getSelectedZones(),
|
|
20944
|
-
});
|
|
20945
|
-
return;
|
|
20946
|
-
}
|
|
20947
|
-
if (cannotCreateFilter(env)) {
|
|
20948
|
-
return;
|
|
20949
|
-
}
|
|
20950
|
-
env.model.selection.selectTableAroundSelection();
|
|
20951
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20952
|
-
const selection = env.model.getters.getSelectedZones();
|
|
20953
|
-
interactiveAddFilter(env, sheetId, selection);
|
|
20954
|
-
}
|
|
20955
|
-
function groupHeadersAction(env, dim) {
|
|
20956
|
-
const selection = env.model.getters.getSelectedZone();
|
|
20957
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20958
|
-
env.model.dispatch("GROUP_HEADERS", {
|
|
20959
|
-
sheetId,
|
|
20960
|
-
dimension: dim,
|
|
20961
|
-
start: dim === "COL" ? selection.left : selection.top,
|
|
20962
|
-
end: dim === "COL" ? selection.right : selection.bottom,
|
|
20963
|
-
});
|
|
20964
|
-
}
|
|
20965
|
-
function ungroupHeaders(env, dim) {
|
|
20966
|
-
const selection = env.model.getters.getSelectedZone();
|
|
20967
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20968
|
-
env.model.dispatch("UNGROUP_HEADERS", {
|
|
20969
|
-
sheetId,
|
|
20970
|
-
dimension: dim,
|
|
20971
|
-
start: dim === "COL" ? selection.left : selection.top,
|
|
20972
|
-
end: dim === "COL" ? selection.right : selection.bottom,
|
|
20973
|
-
});
|
|
20974
|
-
}
|
|
20975
|
-
function canUngroupHeaders(env, dimension) {
|
|
20976
|
-
const sheetId = env.model.getters.getActiveSheetId();
|
|
20977
|
-
const selection = env.model.getters.getSelectedZones();
|
|
20978
|
-
return (selection.length === 1 &&
|
|
20979
|
-
env.model.getters.getHeaderGroupsInZone(sheetId, dimension, selection[0]).length > 0);
|
|
20980
|
-
}
|
|
20981
|
-
|
|
20982
|
-
var ACTION_VIEW = /*#__PURE__*/Object.freeze({
|
|
20983
|
-
__proto__: null,
|
|
20984
|
-
canUngroupHeaders: canUngroupHeaders,
|
|
20985
|
-
createRemoveFilter: createRemoveFilter,
|
|
20986
|
-
freezeCurrentCol: freezeCurrentCol,
|
|
20987
|
-
freezeCurrentRow: freezeCurrentRow,
|
|
20988
|
-
freezeFirstCol: freezeFirstCol,
|
|
20989
|
-
freezeFirstRow: freezeFirstRow,
|
|
20990
|
-
freezePane: freezePane,
|
|
20991
|
-
freezeSecondCol: freezeSecondCol,
|
|
20992
|
-
freezeSecondRow: freezeSecondRow,
|
|
20993
|
-
groupColumns: groupColumns,
|
|
20994
|
-
groupRows: groupRows,
|
|
20995
|
-
hideCols: hideCols,
|
|
20996
|
-
hideRows: hideRows,
|
|
20997
|
-
unFreezeCols: unFreezeCols,
|
|
20998
|
-
unFreezePane: unFreezePane,
|
|
20999
|
-
unFreezeRows: unFreezeRows,
|
|
21000
|
-
ungroupColumns: ungroupColumns,
|
|
21001
|
-
ungroupRows: ungroupRows,
|
|
21002
|
-
unhideAllCols: unhideAllCols,
|
|
21003
|
-
unhideAllRows: unhideAllRows,
|
|
21004
|
-
unhideCols: unhideCols,
|
|
21005
|
-
unhideRows: unhideRows,
|
|
21006
|
-
viewFormulas: viewFormulas,
|
|
21007
|
-
viewGridlines: viewGridlines
|
|
21008
|
-
});
|
|
21009
|
-
|
|
21010
21010
|
const colMenuRegistry = new MenuItemRegistry();
|
|
21011
21011
|
colMenuRegistry
|
|
21012
21012
|
.add("cut", {
|
|
@@ -21653,13 +21653,8 @@
|
|
|
21653
21653
|
sequence: 30,
|
|
21654
21654
|
separator: true,
|
|
21655
21655
|
})
|
|
21656
|
-
.addChild("
|
|
21657
|
-
...
|
|
21658
|
-
sequence: 40,
|
|
21659
|
-
separator: true,
|
|
21660
|
-
})
|
|
21661
|
-
.addChild("remove_data_filter", ["data"], {
|
|
21662
|
-
...removeDataFilter,
|
|
21656
|
+
.addChild("add_remove_data_filter", ["data"], {
|
|
21657
|
+
...addRemoveDataFilter,
|
|
21663
21658
|
sequence: 40,
|
|
21664
21659
|
separator: true,
|
|
21665
21660
|
});
|
|
@@ -28344,6 +28339,10 @@
|
|
|
28344
28339
|
height: 0px;
|
|
28345
28340
|
}
|
|
28346
28341
|
}
|
|
28342
|
+
.o-figure-container {
|
|
28343
|
+
-webkit-user-select: none; // safari
|
|
28344
|
+
user-select: none;
|
|
28345
|
+
}
|
|
28347
28346
|
`;
|
|
28348
28347
|
/**
|
|
28349
28348
|
* Each figure ⭐ is positioned inside a container `div` placed and sized
|
|
@@ -49306,7 +49305,7 @@
|
|
|
49306
49305
|
"isFilterActive",
|
|
49307
49306
|
];
|
|
49308
49307
|
filterValues = {};
|
|
49309
|
-
hiddenRows =
|
|
49308
|
+
hiddenRows = {};
|
|
49310
49309
|
isEvaluationDirty = false;
|
|
49311
49310
|
allowDispatch(cmd) {
|
|
49312
49311
|
switch (cmd.type) {
|
|
@@ -49349,11 +49348,11 @@
|
|
|
49349
49348
|
case "UNFOLD_HEADER_GROUP":
|
|
49350
49349
|
case "FOLD_ALL_HEADER_GROUPS":
|
|
49351
49350
|
case "UNFOLD_ALL_HEADER_GROUPS":
|
|
49352
|
-
this.updateHiddenRows();
|
|
49351
|
+
this.updateHiddenRows(cmd.sheetId);
|
|
49353
49352
|
break;
|
|
49354
49353
|
case "UPDATE_FILTER":
|
|
49355
49354
|
this.updateFilter(cmd);
|
|
49356
|
-
this.updateHiddenRows();
|
|
49355
|
+
this.updateHiddenRows(cmd.sheetId);
|
|
49357
49356
|
break;
|
|
49358
49357
|
case "DUPLICATE_SHEET":
|
|
49359
49358
|
const filterValues = {};
|
|
@@ -49373,15 +49372,14 @@
|
|
|
49373
49372
|
}
|
|
49374
49373
|
finalize() {
|
|
49375
49374
|
if (this.isEvaluationDirty) {
|
|
49376
|
-
this.
|
|
49375
|
+
for (const sheetId of this.getters.getSheetIds()) {
|
|
49376
|
+
this.updateHiddenRows(sheetId);
|
|
49377
|
+
}
|
|
49377
49378
|
this.isEvaluationDirty = false;
|
|
49378
49379
|
}
|
|
49379
49380
|
}
|
|
49380
49381
|
isRowFiltered(sheetId, row) {
|
|
49381
|
-
|
|
49382
|
-
return false;
|
|
49383
|
-
}
|
|
49384
|
-
return this.hiddenRows.has(row);
|
|
49382
|
+
return !!this.hiddenRows[sheetId]?.has(row);
|
|
49385
49383
|
}
|
|
49386
49384
|
getCellBorderWithFilterBorder(position) {
|
|
49387
49385
|
const { sheetId, col, row } = position;
|
|
@@ -49432,8 +49430,7 @@
|
|
|
49432
49430
|
this.filterValues[sheetId] = {};
|
|
49433
49431
|
this.filterValues[sheetId][id] = hiddenValues;
|
|
49434
49432
|
}
|
|
49435
|
-
updateHiddenRows() {
|
|
49436
|
-
const sheetId = this.getters.getActiveSheetId();
|
|
49433
|
+
updateHiddenRows(sheetId) {
|
|
49437
49434
|
const filters = this.getters
|
|
49438
49435
|
.getFilters(sheetId)
|
|
49439
49436
|
.sort((filter1, filter2) => filter1.zoneWithHeaders.top - filter2.zoneWithHeaders.top);
|
|
@@ -49454,7 +49451,7 @@
|
|
|
49454
49451
|
}
|
|
49455
49452
|
}
|
|
49456
49453
|
}
|
|
49457
|
-
this.hiddenRows = hiddenRows;
|
|
49454
|
+
this.hiddenRows[sheetId] = hiddenRows;
|
|
49458
49455
|
}
|
|
49459
49456
|
getCellValueAsString(sheetId, col, row) {
|
|
49460
49457
|
const value = this.getters.getEvaluatedCell({ sheetId, col, row }).formattedValue;
|
|
@@ -50564,13 +50561,14 @@
|
|
|
50564
50561
|
}
|
|
50565
50562
|
}
|
|
50566
50563
|
handleEvent(event) {
|
|
50564
|
+
const sheetId = this.getters.getActiveSheetId();
|
|
50567
50565
|
if (event.options.scrollIntoView) {
|
|
50568
50566
|
let { col, row } = findCellInNewZone(event.previousAnchor.zone, event.anchor.zone);
|
|
50569
50567
|
if (event.mode === "updateAnchor") {
|
|
50570
50568
|
const oldZone = event.previousAnchor.zone;
|
|
50571
50569
|
const newZone = event.anchor.zone;
|
|
50572
50570
|
// altering a zone should not move the viewport in a dimension that wasn't changed
|
|
50573
|
-
const { top, bottom, left, right } = this.
|
|
50571
|
+
const { top, bottom, left, right } = this.getMainInternalViewport(sheetId);
|
|
50574
50572
|
if (oldZone.left === newZone.left && oldZone.right === newZone.right) {
|
|
50575
50573
|
col = left > col || col > right ? left : col;
|
|
50576
50574
|
}
|
|
@@ -50578,7 +50576,6 @@
|
|
|
50578
50576
|
row = top > row || row > bottom ? top : row;
|
|
50579
50577
|
}
|
|
50580
50578
|
}
|
|
50581
|
-
const sheetId = this.getters.getActiveSheetId();
|
|
50582
50579
|
col = Math.min(col, this.getters.getNumberCols(sheetId) - 1);
|
|
50583
50580
|
row = Math.min(row, this.getters.getNumberRows(sheetId) - 1);
|
|
50584
50581
|
if (!this.sheetsWithDirtyViewports.has(sheetId)) {
|
|
@@ -50615,16 +50612,16 @@
|
|
|
50615
50612
|
this.setSheetViewOffset(cmd.offsetX, cmd.offsetY);
|
|
50616
50613
|
break;
|
|
50617
50614
|
case "SHIFT_VIEWPORT_DOWN":
|
|
50618
|
-
const { top } = this.getActiveMainViewport();
|
|
50619
50615
|
const sheetId = this.getters.getActiveSheetId();
|
|
50620
|
-
const
|
|
50621
|
-
this.
|
|
50616
|
+
const { top, viewportHeight, offsetCorrectionY } = this.getMainInternalViewport(sheetId);
|
|
50617
|
+
const topRowDims = this.getters.getRowDimensions(sheetId, top);
|
|
50618
|
+
this.shiftVertically(topRowDims.start + viewportHeight - offsetCorrectionY);
|
|
50622
50619
|
break;
|
|
50623
50620
|
case "SHIFT_VIEWPORT_UP": {
|
|
50624
|
-
const { top } = this.getActiveMainViewport();
|
|
50625
50621
|
const sheetId = this.getters.getActiveSheetId();
|
|
50626
|
-
const
|
|
50627
|
-
this.
|
|
50622
|
+
const { top, viewportHeight, offsetCorrectionY } = this.getMainInternalViewport(sheetId);
|
|
50623
|
+
const topRowDims = this.getters.getRowDimensions(sheetId, top);
|
|
50624
|
+
this.shiftVertically(topRowDims.end - offsetCorrectionY - viewportHeight);
|
|
50628
50625
|
break;
|
|
50629
50626
|
}
|
|
50630
50627
|
case "REMOVE_FILTER_TABLE":
|
|
@@ -51017,17 +51014,6 @@
|
|
|
51017
51014
|
const { maxOffsetX, maxOffsetY } = this.getMaximumSheetOffset();
|
|
51018
51015
|
Object.values(this.getSubViewports(sheetId)).forEach((viewport) => viewport.setViewportOffset(clip(offsetX, 0, maxOffsetX), clip(offsetY, 0, maxOffsetY)));
|
|
51019
51016
|
}
|
|
51020
|
-
/**
|
|
51021
|
-
* Clip the vertical offset within the allowed range.
|
|
51022
|
-
* Not above the sheet, nor below the sheet.
|
|
51023
|
-
*/
|
|
51024
|
-
clipOffsetY(offsetY) {
|
|
51025
|
-
const { height } = this.getMainViewportRect();
|
|
51026
|
-
const maxOffset = height - this.sheetViewHeight;
|
|
51027
|
-
offsetY = Math.min(offsetY, maxOffset);
|
|
51028
|
-
offsetY = Math.max(offsetY, 0);
|
|
51029
|
-
return offsetY;
|
|
51030
|
-
}
|
|
51031
51017
|
getViewportOffset(sheetId) {
|
|
51032
51018
|
return {
|
|
51033
51019
|
x: this.viewports[sheetId]?.bottomRight.offsetScrollbarX || 0,
|
|
@@ -51083,12 +51069,15 @@
|
|
|
51083
51069
|
* viewport top.
|
|
51084
51070
|
*/
|
|
51085
51071
|
shiftVertically(offset) {
|
|
51086
|
-
const
|
|
51072
|
+
const sheetId = this.getters.getActiveSheetId();
|
|
51073
|
+
const { top } = this.getMainInternalViewport(sheetId);
|
|
51087
51074
|
const { scrollX } = this.getActiveSheetScrollInfo();
|
|
51088
51075
|
this.setSheetViewOffset(scrollX, offset);
|
|
51089
51076
|
const { anchor } = this.getters.getSelection();
|
|
51090
|
-
|
|
51091
|
-
|
|
51077
|
+
if (anchor.cell.row >= this.getters.getPaneDivisions(sheetId).ySplit) {
|
|
51078
|
+
const deltaRow = this.getMainInternalViewport(sheetId).top - top;
|
|
51079
|
+
this.selection.selectCell(anchor.cell.col, anchor.cell.row + deltaRow);
|
|
51080
|
+
}
|
|
51092
51081
|
}
|
|
51093
51082
|
getVisibleFigures() {
|
|
51094
51083
|
const sheetId = this.getters.getActiveSheetId();
|
|
@@ -52019,7 +52008,6 @@
|
|
|
52019
52008
|
cursor: pointer;
|
|
52020
52009
|
}
|
|
52021
52010
|
`;
|
|
52022
|
-
let tKey = 1;
|
|
52023
52011
|
class SpreadsheetDashboard extends owl.Component {
|
|
52024
52012
|
static template = "o-spreadsheet-SpreadsheetDashboard";
|
|
52025
52013
|
static props = {};
|
|
@@ -52098,13 +52086,9 @@
|
|
|
52098
52086
|
coordinates: rect,
|
|
52099
52087
|
position: { col, row },
|
|
52100
52088
|
action,
|
|
52101
|
-
// we can't rely on position only because a row or a column could
|
|
52102
|
-
// be inserted at any time.
|
|
52103
|
-
tKey: `${tKey}-${col}-${row}`,
|
|
52104
52089
|
});
|
|
52105
52090
|
}
|
|
52106
52091
|
}
|
|
52107
|
-
tKey++;
|
|
52108
52092
|
return cells;
|
|
52109
52093
|
}
|
|
52110
52094
|
getClickableAction(position) {
|
|
@@ -57371,9 +57355,9 @@
|
|
|
57371
57355
|
exports.tokenize = tokenize;
|
|
57372
57356
|
|
|
57373
57357
|
|
|
57374
|
-
__info__.version = "17.1.
|
|
57375
|
-
__info__.date = "2024-04-
|
|
57376
|
-
__info__.hash = "
|
|
57358
|
+
__info__.version = "17.1.12";
|
|
57359
|
+
__info__.date = "2024-04-18T16:45:30.109Z";
|
|
57360
|
+
__info__.hash = "3e90776";
|
|
57377
57361
|
|
|
57378
57362
|
|
|
57379
57363
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|