@odoo/o-spreadsheet 16.0.60 → 16.0.62
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 +366 -267
- package/dist/o-spreadsheet.d.ts +80 -69
- package/dist/o-spreadsheet.esm.js +366 -267
- package/dist/o-spreadsheet.iife.js +366 -267
- package/dist/o-spreadsheet.iife.min.js +237 -237
- package/dist/o_spreadsheet.xml +3 -3
- package/package.json +2 -1
|
@@ -1102,9 +1102,16 @@ function deepEquals(o1, o2) {
|
|
|
1102
1102
|
}
|
|
1103
1103
|
return true;
|
|
1104
1104
|
}
|
|
1105
|
-
/**
|
|
1105
|
+
/**
|
|
1106
|
+
* Check if the given array contains all the values of the other array.
|
|
1107
|
+
* It makes the assumption that both array do not contain duplicates.
|
|
1108
|
+
*/
|
|
1106
1109
|
function includesAll(arr, values) {
|
|
1107
|
-
|
|
1110
|
+
if (arr.length < values.length) {
|
|
1111
|
+
return false;
|
|
1112
|
+
}
|
|
1113
|
+
const set = new Set(arr);
|
|
1114
|
+
return values.every((value) => set.has(value));
|
|
1108
1115
|
}
|
|
1109
1116
|
/**
|
|
1110
1117
|
* Return an object with all the keys in the object that have a falsy value removed.
|
|
@@ -2379,6 +2386,37 @@ class UuidGenerator {
|
|
|
2379
2386
|
setIsFastStrategy(isFast) {
|
|
2380
2387
|
this.isFastIdStrategy = isFast;
|
|
2381
2388
|
}
|
|
2389
|
+
/**
|
|
2390
|
+
* Generates a custom UUID using a simple 26^8 method (8-character alphanumeric string with lowercase letters)
|
|
2391
|
+
* This has a higher chance of collision than a UUIDv4, but not only faster to generate than an UUIDV4,
|
|
2392
|
+
* it also has a smaller size, which is preferable to alleviate the overall data size.
|
|
2393
|
+
*
|
|
2394
|
+
* This method is preferable when generating uuids for the core data (sheetId, figureId, etc)
|
|
2395
|
+
* as they will appear several times in the revisions and local history.
|
|
2396
|
+
*
|
|
2397
|
+
*/
|
|
2398
|
+
smallUuid() {
|
|
2399
|
+
if (this.isFastIdStrategy) {
|
|
2400
|
+
this.fastIdStart++;
|
|
2401
|
+
return String(this.fastIdStart);
|
|
2402
|
+
//@ts-ignore
|
|
2403
|
+
}
|
|
2404
|
+
else if (window.crypto && window.crypto.getRandomValues) {
|
|
2405
|
+
//@ts-ignore
|
|
2406
|
+
return ([1e7] + -1e3).replace(/[018]/g, (c) => (c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16));
|
|
2407
|
+
}
|
|
2408
|
+
else {
|
|
2409
|
+
// mainly for jest and other browsers that do not have the crypto functionality
|
|
2410
|
+
return "xxxxxxxx-xxxx".replace(/[xy]/g, function (c) {
|
|
2411
|
+
var r = (Math.random() * 16) | 0, v = c == "x" ? r : (r & 0x3) | 0x8;
|
|
2412
|
+
return v.toString(16);
|
|
2413
|
+
});
|
|
2414
|
+
}
|
|
2415
|
+
}
|
|
2416
|
+
/**
|
|
2417
|
+
* Generates an UUIDV4, has astronomically low chance of collision, but is larger in size than the smallUuid.
|
|
2418
|
+
* This method should be used when you need to avoid collisions at all costs, like the id of a revision.
|
|
2419
|
+
*/
|
|
2382
2420
|
uuidv4() {
|
|
2383
2421
|
if (this.isFastIdStrategy) {
|
|
2384
2422
|
this.fastIdStart++;
|
|
@@ -2492,17 +2530,20 @@ function toZoneWithoutBoundaryChanges(xc) {
|
|
|
2492
2530
|
*/
|
|
2493
2531
|
function toUnboundedZone(xc) {
|
|
2494
2532
|
const zone = toZoneWithoutBoundaryChanges(xc);
|
|
2533
|
+
reorderZone(zone);
|
|
2534
|
+
return zone;
|
|
2535
|
+
}
|
|
2536
|
+
function reorderZone(zone) {
|
|
2495
2537
|
if (zone.right !== undefined && zone.right < zone.left) {
|
|
2496
|
-
const
|
|
2538
|
+
const right = zone.left;
|
|
2497
2539
|
zone.left = zone.right;
|
|
2498
|
-
zone.right =
|
|
2540
|
+
zone.right = right;
|
|
2499
2541
|
}
|
|
2500
2542
|
if (zone.bottom !== undefined && zone.bottom < zone.top) {
|
|
2501
|
-
const
|
|
2543
|
+
const bottom = zone.top;
|
|
2502
2544
|
zone.top = zone.bottom;
|
|
2503
|
-
zone.bottom =
|
|
2545
|
+
zone.bottom = bottom;
|
|
2504
2546
|
}
|
|
2505
|
-
return zone;
|
|
2506
2547
|
}
|
|
2507
2548
|
/**
|
|
2508
2549
|
* Convert from a cartesian reference to a Zone.
|
|
@@ -3390,67 +3431,68 @@ exports.CommandResult = void 0;
|
|
|
3390
3431
|
CommandResult[CommandResult["InvalidRange"] = 25] = "InvalidRange";
|
|
3391
3432
|
CommandResult[CommandResult["InvalidZones"] = 26] = "InvalidZones";
|
|
3392
3433
|
CommandResult[CommandResult["InvalidSheetId"] = 27] = "InvalidSheetId";
|
|
3393
|
-
CommandResult[CommandResult["
|
|
3394
|
-
CommandResult[CommandResult["
|
|
3395
|
-
CommandResult[CommandResult["
|
|
3396
|
-
CommandResult[CommandResult["
|
|
3397
|
-
CommandResult[CommandResult["
|
|
3398
|
-
CommandResult[CommandResult["
|
|
3399
|
-
CommandResult[CommandResult["
|
|
3400
|
-
CommandResult[CommandResult["
|
|
3401
|
-
CommandResult[CommandResult["
|
|
3402
|
-
CommandResult[CommandResult["
|
|
3403
|
-
CommandResult[CommandResult["
|
|
3404
|
-
CommandResult[CommandResult["
|
|
3405
|
-
CommandResult[CommandResult["
|
|
3406
|
-
CommandResult[CommandResult["
|
|
3407
|
-
CommandResult[CommandResult["
|
|
3408
|
-
CommandResult[CommandResult["
|
|
3409
|
-
CommandResult[CommandResult["
|
|
3410
|
-
CommandResult[CommandResult["
|
|
3411
|
-
CommandResult[CommandResult["
|
|
3412
|
-
CommandResult[CommandResult["
|
|
3413
|
-
CommandResult[CommandResult["
|
|
3414
|
-
CommandResult[CommandResult["
|
|
3415
|
-
CommandResult[CommandResult["
|
|
3416
|
-
CommandResult[CommandResult["
|
|
3417
|
-
CommandResult[CommandResult["
|
|
3418
|
-
CommandResult[CommandResult["
|
|
3419
|
-
CommandResult[CommandResult["
|
|
3420
|
-
CommandResult[CommandResult["
|
|
3421
|
-
CommandResult[CommandResult["
|
|
3422
|
-
CommandResult[CommandResult["
|
|
3423
|
-
CommandResult[CommandResult["
|
|
3424
|
-
CommandResult[CommandResult["
|
|
3425
|
-
CommandResult[CommandResult["
|
|
3426
|
-
CommandResult[CommandResult["
|
|
3427
|
-
CommandResult[CommandResult["
|
|
3428
|
-
CommandResult[CommandResult["
|
|
3429
|
-
CommandResult[CommandResult["
|
|
3430
|
-
CommandResult[CommandResult["
|
|
3431
|
-
CommandResult[CommandResult["
|
|
3432
|
-
CommandResult[CommandResult["
|
|
3433
|
-
CommandResult[CommandResult["
|
|
3434
|
-
CommandResult[CommandResult["
|
|
3435
|
-
CommandResult[CommandResult["
|
|
3436
|
-
CommandResult[CommandResult["
|
|
3437
|
-
CommandResult[CommandResult["
|
|
3438
|
-
CommandResult[CommandResult["
|
|
3439
|
-
CommandResult[CommandResult["
|
|
3440
|
-
CommandResult[CommandResult["
|
|
3441
|
-
CommandResult[CommandResult["
|
|
3442
|
-
CommandResult[CommandResult["
|
|
3443
|
-
CommandResult[CommandResult["
|
|
3444
|
-
CommandResult[CommandResult["
|
|
3445
|
-
CommandResult[CommandResult["
|
|
3446
|
-
CommandResult[CommandResult["
|
|
3447
|
-
CommandResult[CommandResult["
|
|
3448
|
-
CommandResult[CommandResult["
|
|
3449
|
-
CommandResult[CommandResult["
|
|
3450
|
-
CommandResult[CommandResult["
|
|
3451
|
-
CommandResult[CommandResult["
|
|
3452
|
-
CommandResult[CommandResult["
|
|
3453
|
-
CommandResult[CommandResult["
|
|
3434
|
+
CommandResult[CommandResult["InvalidCellId"] = 28] = "InvalidCellId";
|
|
3435
|
+
CommandResult[CommandResult["InputAlreadyFocused"] = 29] = "InputAlreadyFocused";
|
|
3436
|
+
CommandResult[CommandResult["MaximumRangesReached"] = 30] = "MaximumRangesReached";
|
|
3437
|
+
CommandResult[CommandResult["InvalidInputId"] = 31] = "InvalidInputId";
|
|
3438
|
+
CommandResult[CommandResult["InvalidChartDefinition"] = 32] = "InvalidChartDefinition";
|
|
3439
|
+
CommandResult[CommandResult["InvalidDataSet"] = 33] = "InvalidDataSet";
|
|
3440
|
+
CommandResult[CommandResult["InvalidLabelRange"] = 34] = "InvalidLabelRange";
|
|
3441
|
+
CommandResult[CommandResult["InvalidScorecardKeyValue"] = 35] = "InvalidScorecardKeyValue";
|
|
3442
|
+
CommandResult[CommandResult["InvalidScorecardBaseline"] = 36] = "InvalidScorecardBaseline";
|
|
3443
|
+
CommandResult[CommandResult["InvalidGaugeDataRange"] = 37] = "InvalidGaugeDataRange";
|
|
3444
|
+
CommandResult[CommandResult["EmptyGaugeRangeMin"] = 38] = "EmptyGaugeRangeMin";
|
|
3445
|
+
CommandResult[CommandResult["GaugeRangeMinNaN"] = 39] = "GaugeRangeMinNaN";
|
|
3446
|
+
CommandResult[CommandResult["EmptyGaugeRangeMax"] = 40] = "EmptyGaugeRangeMax";
|
|
3447
|
+
CommandResult[CommandResult["GaugeRangeMaxNaN"] = 41] = "GaugeRangeMaxNaN";
|
|
3448
|
+
CommandResult[CommandResult["GaugeRangeMinBiggerThanRangeMax"] = 42] = "GaugeRangeMinBiggerThanRangeMax";
|
|
3449
|
+
CommandResult[CommandResult["GaugeLowerInflectionPointNaN"] = 43] = "GaugeLowerInflectionPointNaN";
|
|
3450
|
+
CommandResult[CommandResult["GaugeUpperInflectionPointNaN"] = 44] = "GaugeUpperInflectionPointNaN";
|
|
3451
|
+
CommandResult[CommandResult["GaugeLowerBiggerThanUpper"] = 45] = "GaugeLowerBiggerThanUpper";
|
|
3452
|
+
CommandResult[CommandResult["InvalidAutofillSelection"] = 46] = "InvalidAutofillSelection";
|
|
3453
|
+
CommandResult[CommandResult["WrongComposerSelection"] = 47] = "WrongComposerSelection";
|
|
3454
|
+
CommandResult[CommandResult["MinBiggerThanMax"] = 48] = "MinBiggerThanMax";
|
|
3455
|
+
CommandResult[CommandResult["LowerBiggerThanUpper"] = 49] = "LowerBiggerThanUpper";
|
|
3456
|
+
CommandResult[CommandResult["MidBiggerThanMax"] = 50] = "MidBiggerThanMax";
|
|
3457
|
+
CommandResult[CommandResult["MinBiggerThanMid"] = 51] = "MinBiggerThanMid";
|
|
3458
|
+
CommandResult[CommandResult["FirstArgMissing"] = 52] = "FirstArgMissing";
|
|
3459
|
+
CommandResult[CommandResult["SecondArgMissing"] = 53] = "SecondArgMissing";
|
|
3460
|
+
CommandResult[CommandResult["MinNaN"] = 54] = "MinNaN";
|
|
3461
|
+
CommandResult[CommandResult["MidNaN"] = 55] = "MidNaN";
|
|
3462
|
+
CommandResult[CommandResult["MaxNaN"] = 56] = "MaxNaN";
|
|
3463
|
+
CommandResult[CommandResult["ValueUpperInflectionNaN"] = 57] = "ValueUpperInflectionNaN";
|
|
3464
|
+
CommandResult[CommandResult["ValueLowerInflectionNaN"] = 58] = "ValueLowerInflectionNaN";
|
|
3465
|
+
CommandResult[CommandResult["MinInvalidFormula"] = 59] = "MinInvalidFormula";
|
|
3466
|
+
CommandResult[CommandResult["MidInvalidFormula"] = 60] = "MidInvalidFormula";
|
|
3467
|
+
CommandResult[CommandResult["MaxInvalidFormula"] = 61] = "MaxInvalidFormula";
|
|
3468
|
+
CommandResult[CommandResult["ValueUpperInvalidFormula"] = 62] = "ValueUpperInvalidFormula";
|
|
3469
|
+
CommandResult[CommandResult["ValueLowerInvalidFormula"] = 63] = "ValueLowerInvalidFormula";
|
|
3470
|
+
CommandResult[CommandResult["InvalidSortZone"] = 64] = "InvalidSortZone";
|
|
3471
|
+
CommandResult[CommandResult["WaitingSessionConfirmation"] = 65] = "WaitingSessionConfirmation";
|
|
3472
|
+
CommandResult[CommandResult["MergeOverlap"] = 66] = "MergeOverlap";
|
|
3473
|
+
CommandResult[CommandResult["TooManyHiddenElements"] = 67] = "TooManyHiddenElements";
|
|
3474
|
+
CommandResult[CommandResult["Readonly"] = 68] = "Readonly";
|
|
3475
|
+
CommandResult[CommandResult["InvalidViewportSize"] = 69] = "InvalidViewportSize";
|
|
3476
|
+
CommandResult[CommandResult["InvalidScrollingDirection"] = 70] = "InvalidScrollingDirection";
|
|
3477
|
+
CommandResult[CommandResult["FigureDoesNotExist"] = 71] = "FigureDoesNotExist";
|
|
3478
|
+
CommandResult[CommandResult["InvalidConditionalFormatId"] = 72] = "InvalidConditionalFormatId";
|
|
3479
|
+
CommandResult[CommandResult["InvalidCellPopover"] = 73] = "InvalidCellPopover";
|
|
3480
|
+
CommandResult[CommandResult["EmptyTarget"] = 74] = "EmptyTarget";
|
|
3481
|
+
CommandResult[CommandResult["InvalidFreezeQuantity"] = 75] = "InvalidFreezeQuantity";
|
|
3482
|
+
CommandResult[CommandResult["FrozenPaneOverlap"] = 76] = "FrozenPaneOverlap";
|
|
3483
|
+
CommandResult[CommandResult["ValuesNotChanged"] = 77] = "ValuesNotChanged";
|
|
3484
|
+
CommandResult[CommandResult["InvalidFilterZone"] = 78] = "InvalidFilterZone";
|
|
3485
|
+
CommandResult[CommandResult["FilterOverlap"] = 79] = "FilterOverlap";
|
|
3486
|
+
CommandResult[CommandResult["FilterNotFound"] = 80] = "FilterNotFound";
|
|
3487
|
+
CommandResult[CommandResult["MergeInFilter"] = 81] = "MergeInFilter";
|
|
3488
|
+
CommandResult[CommandResult["NonContinuousTargets"] = 82] = "NonContinuousTargets";
|
|
3489
|
+
CommandResult[CommandResult["DuplicatedFigureId"] = 83] = "DuplicatedFigureId";
|
|
3490
|
+
CommandResult[CommandResult["InvalidSelectionStep"] = 84] = "InvalidSelectionStep";
|
|
3491
|
+
CommandResult[CommandResult["DuplicatedChartId"] = 85] = "DuplicatedChartId";
|
|
3492
|
+
CommandResult[CommandResult["ChartDoesNotExist"] = 86] = "ChartDoesNotExist";
|
|
3493
|
+
CommandResult[CommandResult["InvalidHeaderIndex"] = 87] = "InvalidHeaderIndex";
|
|
3494
|
+
CommandResult[CommandResult["InvalidQuantity"] = 88] = "InvalidQuantity";
|
|
3495
|
+
CommandResult[CommandResult["NoChanges"] = 89] = "NoChanges";
|
|
3454
3496
|
})(exports.CommandResult || (exports.CommandResult = {}));
|
|
3455
3497
|
|
|
3456
3498
|
function isMatrix(x) {
|
|
@@ -4980,7 +5022,7 @@ function interactiveSortSelection(env, sheetId, anchor, zone, sortDirection) {
|
|
|
4980
5022
|
});
|
|
4981
5023
|
}
|
|
4982
5024
|
}
|
|
4983
|
-
if (result.isCancelledBecause(
|
|
5025
|
+
if (result.isCancelledBecause(64 /* CommandResult.InvalidSortZone */)) {
|
|
4984
5026
|
const { col, row } = anchor;
|
|
4985
5027
|
env.model.selection.selectZone({ cell: { col, row }, zone });
|
|
4986
5028
|
env.raiseError(_lt("Cannot sort. To sort, select only cells or only merges that have the same size."));
|
|
@@ -5003,13 +5045,13 @@ const AddFilterInteractiveContent = {
|
|
|
5003
5045
|
};
|
|
5004
5046
|
function interactiveAddFilter(env, sheetId, target) {
|
|
5005
5047
|
const result = env.model.dispatch("CREATE_FILTER_TABLE", { target, sheetId });
|
|
5006
|
-
if (result.isCancelledBecause(
|
|
5048
|
+
if (result.isCancelledBecause(79 /* CommandResult.FilterOverlap */)) {
|
|
5007
5049
|
env.raiseError(AddFilterInteractiveContent.filterOverlap);
|
|
5008
5050
|
}
|
|
5009
|
-
else if (result.isCancelledBecause(
|
|
5051
|
+
else if (result.isCancelledBecause(81 /* CommandResult.MergeInFilter */)) {
|
|
5010
5052
|
env.raiseError(AddFilterInteractiveContent.mergeInFilter);
|
|
5011
5053
|
}
|
|
5012
|
-
else if (result.isCancelledBecause(
|
|
5054
|
+
else if (result.isCancelledBecause(82 /* CommandResult.NonContinuousTargets */)) {
|
|
5013
5055
|
env.raiseError(AddFilterInteractiveContent.nonContinuousTargets);
|
|
5014
5056
|
}
|
|
5015
5057
|
}
|
|
@@ -5031,7 +5073,7 @@ function handlePasteResult(env, result) {
|
|
|
5031
5073
|
else if (result.reasons.includes(22 /* CommandResult.WrongFigurePasteOption */)) {
|
|
5032
5074
|
env.raiseError(PasteInteractiveContent.wrongFigurePasteOption);
|
|
5033
5075
|
}
|
|
5034
|
-
else if (result.reasons.includes(
|
|
5076
|
+
else if (result.reasons.includes(76 /* CommandResult.FrozenPaneOverlap */)) {
|
|
5035
5077
|
env.raiseError(PasteInteractiveContent.frozenPaneOverlap);
|
|
5036
5078
|
}
|
|
5037
5079
|
}
|
|
@@ -5536,7 +5578,7 @@ const UNHIDE_ROWS_ACTION = (env) => {
|
|
|
5536
5578
|
const CREATE_SHEET_ACTION = (env) => {
|
|
5537
5579
|
const activeSheetId = env.model.getters.getActiveSheetId();
|
|
5538
5580
|
const position = env.model.getters.getSheetIds().indexOf(activeSheetId) + 1;
|
|
5539
|
-
const sheetId = env.model.uuidGenerator.
|
|
5581
|
+
const sheetId = env.model.uuidGenerator.smallUuid();
|
|
5540
5582
|
env.model.dispatch("CREATE_SHEET", { sheetId, position });
|
|
5541
5583
|
env.model.dispatch("ACTIVATE_SHEET", { sheetIdFrom: activeSheetId, sheetIdTo: sheetId });
|
|
5542
5584
|
};
|
|
@@ -5547,7 +5589,7 @@ const CREATE_CHART = (env) => {
|
|
|
5547
5589
|
const getters = env.model.getters;
|
|
5548
5590
|
const zone = getters.getSelectedZone();
|
|
5549
5591
|
let dataSetZone = zone;
|
|
5550
|
-
const id = env.model.uuidGenerator.
|
|
5592
|
+
const id = env.model.uuidGenerator.smallUuid();
|
|
5551
5593
|
let labelRange;
|
|
5552
5594
|
if (zone.left !== zone.right) {
|
|
5553
5595
|
dataSetZone = { ...zone, left: zone.left + 1 };
|
|
@@ -6023,7 +6065,7 @@ sheetMenuRegistry
|
|
|
6023
6065
|
name: _lt("Delete"),
|
|
6024
6066
|
sequence: 10,
|
|
6025
6067
|
isVisible: (env) => {
|
|
6026
|
-
return env.model.getters.
|
|
6068
|
+
return env.model.getters.getVisibleSheetIds().length > 1;
|
|
6027
6069
|
},
|
|
6028
6070
|
action: (env) => env.askConfirmation(_lt("Are you sure you want to delete this sheet ?"), () => {
|
|
6029
6071
|
env.model.dispatch("DELETE_SHEET", { sheetId: env.model.getters.getActiveSheetId() });
|
|
@@ -6034,7 +6076,7 @@ sheetMenuRegistry
|
|
|
6034
6076
|
sequence: 20,
|
|
6035
6077
|
action: (env) => {
|
|
6036
6078
|
const sheetIdFrom = env.model.getters.getActiveSheetId();
|
|
6037
|
-
const sheetIdTo = env.model.uuidGenerator.
|
|
6079
|
+
const sheetIdTo = env.model.uuidGenerator.smallUuid();
|
|
6038
6080
|
env.model.dispatch("DUPLICATE_SHEET", {
|
|
6039
6081
|
sheetId: sheetIdFrom,
|
|
6040
6082
|
sheetIdTo,
|
|
@@ -6082,22 +6124,22 @@ sheetMenuRegistry
|
|
|
6082
6124
|
const CfTerms = {
|
|
6083
6125
|
Errors: {
|
|
6084
6126
|
[25 /* CommandResult.InvalidRange */]: _lt("The range is invalid"),
|
|
6085
|
-
[
|
|
6086
|
-
[
|
|
6087
|
-
[
|
|
6088
|
-
[
|
|
6089
|
-
[
|
|
6090
|
-
[
|
|
6091
|
-
[
|
|
6092
|
-
[
|
|
6093
|
-
[
|
|
6094
|
-
[
|
|
6095
|
-
[
|
|
6096
|
-
[
|
|
6097
|
-
[
|
|
6098
|
-
[
|
|
6099
|
-
[
|
|
6100
|
-
[
|
|
6127
|
+
[52 /* CommandResult.FirstArgMissing */]: _lt("The argument is missing. Please provide a value"),
|
|
6128
|
+
[53 /* CommandResult.SecondArgMissing */]: _lt("The second argument is missing. Please provide a value"),
|
|
6129
|
+
[54 /* CommandResult.MinNaN */]: _lt("The minpoint must be a number"),
|
|
6130
|
+
[55 /* CommandResult.MidNaN */]: _lt("The midpoint must be a number"),
|
|
6131
|
+
[56 /* CommandResult.MaxNaN */]: _lt("The maxpoint must be a number"),
|
|
6132
|
+
[57 /* CommandResult.ValueUpperInflectionNaN */]: _lt("The first value must be a number"),
|
|
6133
|
+
[58 /* CommandResult.ValueLowerInflectionNaN */]: _lt("The second value must be a number"),
|
|
6134
|
+
[48 /* CommandResult.MinBiggerThanMax */]: _lt("Minimum must be smaller then Maximum"),
|
|
6135
|
+
[51 /* CommandResult.MinBiggerThanMid */]: _lt("Minimum must be smaller then Midpoint"),
|
|
6136
|
+
[50 /* CommandResult.MidBiggerThanMax */]: _lt("Midpoint must be smaller then Maximum"),
|
|
6137
|
+
[49 /* CommandResult.LowerBiggerThanUpper */]: _lt("Lower inflection point must be smaller than upper inflection point"),
|
|
6138
|
+
[59 /* CommandResult.MinInvalidFormula */]: _lt("Invalid Minpoint formula"),
|
|
6139
|
+
[61 /* CommandResult.MaxInvalidFormula */]: _lt("Invalid Maxpoint formula"),
|
|
6140
|
+
[60 /* CommandResult.MidInvalidFormula */]: _lt("Invalid Midpoint formula"),
|
|
6141
|
+
[62 /* CommandResult.ValueUpperInvalidFormula */]: _lt("Invalid upper inflection point formula"),
|
|
6142
|
+
[63 /* CommandResult.ValueLowerInvalidFormula */]: _lt("Invalid lower inflection point formula"),
|
|
6101
6143
|
[24 /* CommandResult.EmptyRange */]: _lt("A range needs to be defined"),
|
|
6102
6144
|
Unexpected: _lt("The rule is invalid for an unknown reason"),
|
|
6103
6145
|
},
|
|
@@ -6125,20 +6167,20 @@ const ChartTerms = {
|
|
|
6125
6167
|
Errors: {
|
|
6126
6168
|
Unexpected: _lt("The chart definition is invalid for an unknown reason"),
|
|
6127
6169
|
// BASIC CHART ERRORS (LINE | BAR | PIE)
|
|
6128
|
-
[
|
|
6129
|
-
[
|
|
6170
|
+
[33 /* CommandResult.InvalidDataSet */]: _lt("The dataset is invalid"),
|
|
6171
|
+
[34 /* CommandResult.InvalidLabelRange */]: _lt("Labels are invalid"),
|
|
6130
6172
|
// SCORECARD CHART ERRORS
|
|
6131
|
-
[
|
|
6132
|
-
[
|
|
6173
|
+
[35 /* CommandResult.InvalidScorecardKeyValue */]: _lt("The key value is invalid"),
|
|
6174
|
+
[36 /* CommandResult.InvalidScorecardBaseline */]: _lt("The baseline value is invalid"),
|
|
6133
6175
|
// GAUGE CHART ERRORS
|
|
6134
|
-
[
|
|
6135
|
-
[
|
|
6136
|
-
[
|
|
6137
|
-
[
|
|
6138
|
-
[
|
|
6139
|
-
[
|
|
6140
|
-
[
|
|
6141
|
-
[
|
|
6176
|
+
[37 /* CommandResult.InvalidGaugeDataRange */]: _lt("The data range is invalid"),
|
|
6177
|
+
[38 /* CommandResult.EmptyGaugeRangeMin */]: _lt("A minimum range limit value is needed"),
|
|
6178
|
+
[39 /* CommandResult.GaugeRangeMinNaN */]: _lt("The minimum range limit value must be a number"),
|
|
6179
|
+
[40 /* CommandResult.EmptyGaugeRangeMax */]: _lt("A maximum range limit value is needed"),
|
|
6180
|
+
[41 /* CommandResult.GaugeRangeMaxNaN */]: _lt("The maximum range limit value must be a number"),
|
|
6181
|
+
[42 /* CommandResult.GaugeRangeMinBiggerThanRangeMax */]: _lt("Minimum range limit must be smaller than maximum range limit"),
|
|
6182
|
+
[43 /* CommandResult.GaugeLowerInflectionPointNaN */]: _lt("The lower inflection point value must be a number"),
|
|
6183
|
+
[44 /* CommandResult.GaugeUpperInflectionPointNaN */]: _lt("The upper inflection point value must be a number"),
|
|
6142
6184
|
},
|
|
6143
6185
|
};
|
|
6144
6186
|
const NumberFormatTerms = {
|
|
@@ -6162,7 +6204,7 @@ function interactiveFreezeColumnsRows(env, dimension, base) {
|
|
|
6162
6204
|
const sheetId = env.model.getters.getActiveSheetId();
|
|
6163
6205
|
const cmd = dimension === "COL" ? "FREEZE_COLUMNS" : "FREEZE_ROWS";
|
|
6164
6206
|
const result = env.model.dispatch(cmd, { sheetId, quantity: base });
|
|
6165
|
-
if (result.isCancelledBecause(
|
|
6207
|
+
if (result.isCancelledBecause(66 /* CommandResult.MergeOverlap */)) {
|
|
6166
6208
|
env.raiseError(MergeErrorMessage);
|
|
6167
6209
|
}
|
|
6168
6210
|
}
|
|
@@ -6673,7 +6715,7 @@ css /* scss */ `
|
|
|
6673
6715
|
class SelectionInput extends owl.Component {
|
|
6674
6716
|
constructor() {
|
|
6675
6717
|
super(...arguments);
|
|
6676
|
-
this.id = uuidGenerator$1.
|
|
6718
|
+
this.id = uuidGenerator$1.smallUuid();
|
|
6677
6719
|
this.previousRanges = this.props.ranges || [];
|
|
6678
6720
|
this.originSheet = this.env.model.getters.getActiveSheetId();
|
|
6679
6721
|
this.state = owl.useState({
|
|
@@ -6808,11 +6850,11 @@ class LineBarPieConfigPanel extends owl.Component {
|
|
|
6808
6850
|
}
|
|
6809
6851
|
get isDatasetInvalid() {
|
|
6810
6852
|
var _a;
|
|
6811
|
-
return !!((_a = this.state.datasetDispatchResult) === null || _a === void 0 ? void 0 : _a.isCancelledBecause(
|
|
6853
|
+
return !!((_a = this.state.datasetDispatchResult) === null || _a === void 0 ? void 0 : _a.isCancelledBecause(33 /* CommandResult.InvalidDataSet */));
|
|
6812
6854
|
}
|
|
6813
6855
|
get isLabelInvalid() {
|
|
6814
6856
|
var _a;
|
|
6815
|
-
return !!((_a = this.state.labelsDispatchResult) === null || _a === void 0 ? void 0 : _a.isCancelledBecause(
|
|
6857
|
+
return !!((_a = this.state.labelsDispatchResult) === null || _a === void 0 ? void 0 : _a.isCancelledBecause(34 /* CommandResult.InvalidLabelRange */));
|
|
6816
6858
|
}
|
|
6817
6859
|
onUpdateDataSetsHaveTitle(ev) {
|
|
6818
6860
|
this.props.updateChart(this.props.figureId, {
|
|
@@ -7156,11 +7198,11 @@ function checkDataset(definition) {
|
|
|
7156
7198
|
if (definition.dataSets) {
|
|
7157
7199
|
const invalidRanges = definition.dataSets.find((range) => !rangeReference.test(range)) !== undefined;
|
|
7158
7200
|
if (invalidRanges) {
|
|
7159
|
-
return
|
|
7201
|
+
return 33 /* CommandResult.InvalidDataSet */;
|
|
7160
7202
|
}
|
|
7161
7203
|
const zones = definition.dataSets.map(toUnboundedZone);
|
|
7162
7204
|
if (zones.some((zone) => zone.top !== zone.bottom && isFullRow(zone))) {
|
|
7163
|
-
return
|
|
7205
|
+
return 33 /* CommandResult.InvalidDataSet */;
|
|
7164
7206
|
}
|
|
7165
7207
|
}
|
|
7166
7208
|
return 0 /* CommandResult.Success */;
|
|
@@ -7169,7 +7211,7 @@ function checkLabelRange(definition) {
|
|
|
7169
7211
|
if (definition.labelRange) {
|
|
7170
7212
|
const invalidLabels = !rangeReference.test(definition.labelRange || "");
|
|
7171
7213
|
if (invalidLabels) {
|
|
7172
|
-
return
|
|
7214
|
+
return 34 /* CommandResult.InvalidLabelRange */;
|
|
7173
7215
|
}
|
|
7174
7216
|
}
|
|
7175
7217
|
return 0 /* CommandResult.Success */;
|
|
@@ -7630,7 +7672,7 @@ chartRegistry.add("gauge", {
|
|
|
7630
7672
|
});
|
|
7631
7673
|
function isDataRangeValid(definition) {
|
|
7632
7674
|
return definition.dataRange && !rangeReference.test(definition.dataRange)
|
|
7633
|
-
?
|
|
7675
|
+
? 37 /* CommandResult.InvalidGaugeDataRange */
|
|
7634
7676
|
: 0 /* CommandResult.Success */;
|
|
7635
7677
|
}
|
|
7636
7678
|
function checkRangeLimits(check, batchValidations) {
|
|
@@ -7662,7 +7704,7 @@ function checkInflectionPointsValue(check, batchValidations) {
|
|
|
7662
7704
|
function checkRangeMinBiggerThanRangeMax(definition) {
|
|
7663
7705
|
if (definition.sectionRule) {
|
|
7664
7706
|
if (Number(definition.sectionRule.rangeMin) >= Number(definition.sectionRule.rangeMax)) {
|
|
7665
|
-
return
|
|
7707
|
+
return 42 /* CommandResult.GaugeRangeMinBiggerThanRangeMax */;
|
|
7666
7708
|
}
|
|
7667
7709
|
}
|
|
7668
7710
|
return 0 /* CommandResult.Success */;
|
|
@@ -7671,9 +7713,9 @@ function checkEmpty(value, valueName) {
|
|
|
7671
7713
|
if (value === "") {
|
|
7672
7714
|
switch (valueName) {
|
|
7673
7715
|
case "rangeMin":
|
|
7674
|
-
return
|
|
7716
|
+
return 38 /* CommandResult.EmptyGaugeRangeMin */;
|
|
7675
7717
|
case "rangeMax":
|
|
7676
|
-
return
|
|
7718
|
+
return 40 /* CommandResult.EmptyGaugeRangeMax */;
|
|
7677
7719
|
}
|
|
7678
7720
|
}
|
|
7679
7721
|
return 0 /* CommandResult.Success */;
|
|
@@ -7682,13 +7724,13 @@ function checkNaN(value, valueName) {
|
|
|
7682
7724
|
if (isNaN(value)) {
|
|
7683
7725
|
switch (valueName) {
|
|
7684
7726
|
case "rangeMin":
|
|
7685
|
-
return
|
|
7727
|
+
return 39 /* CommandResult.GaugeRangeMinNaN */;
|
|
7686
7728
|
case "rangeMax":
|
|
7687
|
-
return
|
|
7729
|
+
return 41 /* CommandResult.GaugeRangeMaxNaN */;
|
|
7688
7730
|
case "lowerInflectionPointValue":
|
|
7689
|
-
return
|
|
7731
|
+
return 43 /* CommandResult.GaugeLowerInflectionPointNaN */;
|
|
7690
7732
|
case "upperInflectionPointValue":
|
|
7691
|
-
return
|
|
7733
|
+
return 44 /* CommandResult.GaugeUpperInflectionPointNaN */;
|
|
7692
7734
|
}
|
|
7693
7735
|
}
|
|
7694
7736
|
return 0 /* CommandResult.Success */;
|
|
@@ -8429,7 +8471,7 @@ function createPieChartRuntime(chart, getters) {
|
|
|
8429
8471
|
const dataset = {
|
|
8430
8472
|
label,
|
|
8431
8473
|
data,
|
|
8432
|
-
borderColor: "#FFFFFF",
|
|
8474
|
+
borderColor: chart.background || "#FFFFFF",
|
|
8433
8475
|
backgroundColor,
|
|
8434
8476
|
};
|
|
8435
8477
|
config.data.datasets.push(dataset);
|
|
@@ -8448,12 +8490,12 @@ chartRegistry.add("scorecard", {
|
|
|
8448
8490
|
});
|
|
8449
8491
|
function checkKeyValue(definition) {
|
|
8450
8492
|
return definition.keyValue && !rangeReference.test(definition.keyValue)
|
|
8451
|
-
?
|
|
8493
|
+
? 35 /* CommandResult.InvalidScorecardKeyValue */
|
|
8452
8494
|
: 0 /* CommandResult.Success */;
|
|
8453
8495
|
}
|
|
8454
8496
|
function checkBaseline(definition) {
|
|
8455
8497
|
return definition.baseline && !rangeReference.test(definition.baseline)
|
|
8456
|
-
?
|
|
8498
|
+
? 36 /* CommandResult.InvalidScorecardBaseline */
|
|
8457
8499
|
: 0 /* CommandResult.Success */;
|
|
8458
8500
|
}
|
|
8459
8501
|
class ScorecardChart$1 extends AbstractChart {
|
|
@@ -8882,7 +8924,7 @@ class GaugeChartConfigPanel extends owl.Component {
|
|
|
8882
8924
|
}
|
|
8883
8925
|
get isDataRangeInvalid() {
|
|
8884
8926
|
var _a;
|
|
8885
|
-
return !!((_a = this.state.dataRangeDispatchResult) === null || _a === void 0 ? void 0 : _a.isCancelledBecause(
|
|
8927
|
+
return !!((_a = this.state.dataRangeDispatchResult) === null || _a === void 0 ? void 0 : _a.isCancelledBecause(37 /* CommandResult.InvalidGaugeDataRange */));
|
|
8886
8928
|
}
|
|
8887
8929
|
onDataRangeChanged(ranges) {
|
|
8888
8930
|
this.dataRange = ranges[0];
|
|
@@ -8969,28 +9011,28 @@ class GaugeChartDesignPanel extends owl.Component {
|
|
|
8969
9011
|
}
|
|
8970
9012
|
isRangeMinInvalid() {
|
|
8971
9013
|
var _a, _b, _c;
|
|
8972
|
-
return !!(((_a = this.state.sectionRuleDispatchResult) === null || _a === void 0 ? void 0 : _a.isCancelledBecause(
|
|
8973
|
-
((_b = this.state.sectionRuleDispatchResult) === null || _b === void 0 ? void 0 : _b.isCancelledBecause(
|
|
8974
|
-
((_c = this.state.sectionRuleDispatchResult) === null || _c === void 0 ? void 0 : _c.isCancelledBecause(
|
|
9014
|
+
return !!(((_a = this.state.sectionRuleDispatchResult) === null || _a === void 0 ? void 0 : _a.isCancelledBecause(38 /* CommandResult.EmptyGaugeRangeMin */)) ||
|
|
9015
|
+
((_b = this.state.sectionRuleDispatchResult) === null || _b === void 0 ? void 0 : _b.isCancelledBecause(39 /* CommandResult.GaugeRangeMinNaN */)) ||
|
|
9016
|
+
((_c = this.state.sectionRuleDispatchResult) === null || _c === void 0 ? void 0 : _c.isCancelledBecause(42 /* CommandResult.GaugeRangeMinBiggerThanRangeMax */)));
|
|
8975
9017
|
}
|
|
8976
9018
|
isRangeMaxInvalid() {
|
|
8977
9019
|
var _a, _b, _c;
|
|
8978
|
-
return !!(((_a = this.state.sectionRuleDispatchResult) === null || _a === void 0 ? void 0 : _a.isCancelledBecause(
|
|
8979
|
-
((_b = this.state.sectionRuleDispatchResult) === null || _b === void 0 ? void 0 : _b.isCancelledBecause(
|
|
8980
|
-
((_c = this.state.sectionRuleDispatchResult) === null || _c === void 0 ? void 0 : _c.isCancelledBecause(
|
|
9020
|
+
return !!(((_a = this.state.sectionRuleDispatchResult) === null || _a === void 0 ? void 0 : _a.isCancelledBecause(40 /* CommandResult.EmptyGaugeRangeMax */)) ||
|
|
9021
|
+
((_b = this.state.sectionRuleDispatchResult) === null || _b === void 0 ? void 0 : _b.isCancelledBecause(41 /* CommandResult.GaugeRangeMaxNaN */)) ||
|
|
9022
|
+
((_c = this.state.sectionRuleDispatchResult) === null || _c === void 0 ? void 0 : _c.isCancelledBecause(42 /* CommandResult.GaugeRangeMinBiggerThanRangeMax */)));
|
|
8981
9023
|
}
|
|
8982
9024
|
// ---------------------------------------------------------------------------
|
|
8983
9025
|
// COLOR_SECTION_TEMPLATE
|
|
8984
9026
|
// ---------------------------------------------------------------------------
|
|
8985
9027
|
get isLowerInflectionPointInvalid() {
|
|
8986
9028
|
var _a, _b;
|
|
8987
|
-
return !!(((_a = this.state.sectionRuleDispatchResult) === null || _a === void 0 ? void 0 : _a.isCancelledBecause(
|
|
8988
|
-
((_b = this.state.sectionRuleDispatchResult) === null || _b === void 0 ? void 0 : _b.isCancelledBecause(
|
|
9029
|
+
return !!(((_a = this.state.sectionRuleDispatchResult) === null || _a === void 0 ? void 0 : _a.isCancelledBecause(43 /* CommandResult.GaugeLowerInflectionPointNaN */)) ||
|
|
9030
|
+
((_b = this.state.sectionRuleDispatchResult) === null || _b === void 0 ? void 0 : _b.isCancelledBecause(45 /* CommandResult.GaugeLowerBiggerThanUpper */)));
|
|
8989
9031
|
}
|
|
8990
9032
|
get isUpperInflectionPointInvalid() {
|
|
8991
9033
|
var _a, _b;
|
|
8992
|
-
return !!(((_a = this.state.sectionRuleDispatchResult) === null || _a === void 0 ? void 0 : _a.isCancelledBecause(
|
|
8993
|
-
((_b = this.state.sectionRuleDispatchResult) === null || _b === void 0 ? void 0 : _b.isCancelledBecause(
|
|
9034
|
+
return !!(((_a = this.state.sectionRuleDispatchResult) === null || _a === void 0 ? void 0 : _a.isCancelledBecause(44 /* CommandResult.GaugeUpperInflectionPointNaN */)) ||
|
|
9035
|
+
((_b = this.state.sectionRuleDispatchResult) === null || _b === void 0 ? void 0 : _b.isCancelledBecause(45 /* CommandResult.GaugeLowerBiggerThanUpper */)));
|
|
8994
9036
|
}
|
|
8995
9037
|
updateInflectionPointValue(attr, ev) {
|
|
8996
9038
|
const sectionRule = deepCopy(this.props.definition.sectionRule);
|
|
@@ -9093,11 +9135,11 @@ class ScorecardChartConfigPanel extends owl.Component {
|
|
|
9093
9135
|
}
|
|
9094
9136
|
get isKeyValueInvalid() {
|
|
9095
9137
|
var _a;
|
|
9096
|
-
return !!((_a = this.state.keyValueDispatchResult) === null || _a === void 0 ? void 0 : _a.isCancelledBecause(
|
|
9138
|
+
return !!((_a = this.state.keyValueDispatchResult) === null || _a === void 0 ? void 0 : _a.isCancelledBecause(35 /* CommandResult.InvalidScorecardKeyValue */));
|
|
9097
9139
|
}
|
|
9098
9140
|
get isBaselineInvalid() {
|
|
9099
9141
|
var _a;
|
|
9100
|
-
return !!((_a = this.state.keyValueDispatchResult) === null || _a === void 0 ? void 0 : _a.isCancelledBecause(
|
|
9142
|
+
return !!((_a = this.state.keyValueDispatchResult) === null || _a === void 0 ? void 0 : _a.isCancelledBecause(36 /* CommandResult.InvalidScorecardBaseline */));
|
|
9101
9143
|
}
|
|
9102
9144
|
onKeyValueRangeChanged(ranges) {
|
|
9103
9145
|
this.keyValue = ranges[0];
|
|
@@ -9790,7 +9832,7 @@ class ConditionalFormattingPanel extends owl.Component {
|
|
|
9790
9832
|
rule: this.getEditorRule(),
|
|
9791
9833
|
id: this.state.mode === "edit"
|
|
9792
9834
|
? this.state.currentCF.id
|
|
9793
|
-
: this.env.model.uuidGenerator.
|
|
9835
|
+
: this.env.model.uuidGenerator.smallUuid(),
|
|
9794
9836
|
},
|
|
9795
9837
|
ranges: this.state.currentCF.ranges.map((xc) => this.env.model.getters.getRangeDataFromXc(sheetId, xc)),
|
|
9796
9838
|
sheetId,
|
|
@@ -9858,7 +9900,7 @@ class ConditionalFormattingPanel extends owl.Component {
|
|
|
9858
9900
|
this.state.mode = "add";
|
|
9859
9901
|
this.state.currentCFType = "CellIsRule";
|
|
9860
9902
|
this.state.currentCF = {
|
|
9861
|
-
id: this.env.model.uuidGenerator.
|
|
9903
|
+
id: this.env.model.uuidGenerator.smallUuid(),
|
|
9862
9904
|
ranges: this.env.model.getters
|
|
9863
9905
|
.getSelectedZones()
|
|
9864
9906
|
.map((zone) => this.env.model.getters.zoneToXC(this.env.model.getters.getActiveSheetId(), zone)),
|
|
@@ -9937,11 +9979,11 @@ class ConditionalFormattingPanel extends owl.Component {
|
|
|
9937
9979
|
****************************************************************************/
|
|
9938
9980
|
get isValue1Invalid() {
|
|
9939
9981
|
var _a;
|
|
9940
|
-
return !!((_a = this.state.errors) === null || _a === void 0 ? void 0 : _a.includes(
|
|
9982
|
+
return !!((_a = this.state.errors) === null || _a === void 0 ? void 0 : _a.includes(52 /* CommandResult.FirstArgMissing */));
|
|
9941
9983
|
}
|
|
9942
9984
|
get isValue2Invalid() {
|
|
9943
9985
|
var _a;
|
|
9944
|
-
return !!((_a = this.state.errors) === null || _a === void 0 ? void 0 : _a.includes(
|
|
9986
|
+
return !!((_a = this.state.errors) === null || _a === void 0 ? void 0 : _a.includes(53 /* CommandResult.SecondArgMissing */));
|
|
9945
9987
|
}
|
|
9946
9988
|
toggleStyle(tool) {
|
|
9947
9989
|
const style = this.state.rules.cellIs.style;
|
|
@@ -9958,17 +10000,17 @@ class ConditionalFormattingPanel extends owl.Component {
|
|
|
9958
10000
|
isValueInvalid(threshold) {
|
|
9959
10001
|
switch (threshold) {
|
|
9960
10002
|
case "minimum":
|
|
9961
|
-
return (this.state.errors.includes(
|
|
9962
|
-
this.state.errors.includes(
|
|
9963
|
-
this.state.errors.includes(
|
|
9964
|
-
this.state.errors.includes(
|
|
10003
|
+
return (this.state.errors.includes(59 /* CommandResult.MinInvalidFormula */) ||
|
|
10004
|
+
this.state.errors.includes(51 /* CommandResult.MinBiggerThanMid */) ||
|
|
10005
|
+
this.state.errors.includes(48 /* CommandResult.MinBiggerThanMax */) ||
|
|
10006
|
+
this.state.errors.includes(54 /* CommandResult.MinNaN */));
|
|
9965
10007
|
case "midpoint":
|
|
9966
|
-
return (this.state.errors.includes(
|
|
9967
|
-
this.state.errors.includes(
|
|
9968
|
-
this.state.errors.includes(
|
|
10008
|
+
return (this.state.errors.includes(60 /* CommandResult.MidInvalidFormula */) ||
|
|
10009
|
+
this.state.errors.includes(55 /* CommandResult.MidNaN */) ||
|
|
10010
|
+
this.state.errors.includes(50 /* CommandResult.MidBiggerThanMax */));
|
|
9969
10011
|
case "maximum":
|
|
9970
|
-
return (this.state.errors.includes(
|
|
9971
|
-
this.state.errors.includes(
|
|
10012
|
+
return (this.state.errors.includes(61 /* CommandResult.MaxInvalidFormula */) ||
|
|
10013
|
+
this.state.errors.includes(56 /* CommandResult.MaxNaN */));
|
|
9972
10014
|
default:
|
|
9973
10015
|
return false;
|
|
9974
10016
|
}
|
|
@@ -10020,13 +10062,13 @@ class ConditionalFormattingPanel extends owl.Component {
|
|
|
10020
10062
|
isInflectionPointInvalid(inflectionPoint) {
|
|
10021
10063
|
switch (inflectionPoint) {
|
|
10022
10064
|
case "lowerInflectionPoint":
|
|
10023
|
-
return (this.state.errors.includes(
|
|
10024
|
-
this.state.errors.includes(
|
|
10025
|
-
this.state.errors.includes(
|
|
10065
|
+
return (this.state.errors.includes(58 /* CommandResult.ValueLowerInflectionNaN */) ||
|
|
10066
|
+
this.state.errors.includes(63 /* CommandResult.ValueLowerInvalidFormula */) ||
|
|
10067
|
+
this.state.errors.includes(49 /* CommandResult.LowerBiggerThanUpper */));
|
|
10026
10068
|
case "upperInflectionPoint":
|
|
10027
|
-
return (this.state.errors.includes(
|
|
10028
|
-
this.state.errors.includes(
|
|
10029
|
-
this.state.errors.includes(
|
|
10069
|
+
return (this.state.errors.includes(57 /* CommandResult.ValueUpperInflectionNaN */) ||
|
|
10070
|
+
this.state.errors.includes(62 /* CommandResult.ValueUpperInvalidFormula */) ||
|
|
10071
|
+
this.state.errors.includes(49 /* CommandResult.LowerBiggerThanUpper */));
|
|
10030
10072
|
default:
|
|
10031
10073
|
return true;
|
|
10032
10074
|
}
|
|
@@ -10346,7 +10388,7 @@ class TopBarComponentRegistry extends Registry {
|
|
|
10346
10388
|
this.uuidGenerator = new UuidGenerator();
|
|
10347
10389
|
}
|
|
10348
10390
|
add(name, value) {
|
|
10349
|
-
const component = { ...value, id: this.uuidGenerator.
|
|
10391
|
+
const component = { ...value, id: this.uuidGenerator.smallUuid() };
|
|
10350
10392
|
return super.add(name, component);
|
|
10351
10393
|
}
|
|
10352
10394
|
}
|
|
@@ -12344,6 +12386,26 @@ const LN = {
|
|
|
12344
12386
|
isExported: true,
|
|
12345
12387
|
};
|
|
12346
12388
|
// -----------------------------------------------------------------------------
|
|
12389
|
+
// LOG
|
|
12390
|
+
// -----------------------------------------------------------------------------
|
|
12391
|
+
const LOG = {
|
|
12392
|
+
description: _lt("The logarithm of a number, for a given base."),
|
|
12393
|
+
args: args(`
|
|
12394
|
+
value (number) ${_lt("The value for which to calculate the logarithm, base e.")}
|
|
12395
|
+
base (number, default=10) ${_lt("The base of the logarithm.")}
|
|
12396
|
+
`),
|
|
12397
|
+
returns: ["NUMBER"],
|
|
12398
|
+
compute: function (value, base = 10) {
|
|
12399
|
+
const _value = toNumber(value);
|
|
12400
|
+
const _base = toNumber(base);
|
|
12401
|
+
assert(() => _value > 0, _lt("The value (%s) must be strictly positive.", _value.toString()));
|
|
12402
|
+
assert(() => _base > 0, _lt("The base (%s) must be strictly positive.", _base.toString()));
|
|
12403
|
+
assert(() => _base !== 1, _lt("The base must be different from 1."));
|
|
12404
|
+
return Math.log10(_value) / Math.log10(_base);
|
|
12405
|
+
},
|
|
12406
|
+
isExported: true,
|
|
12407
|
+
};
|
|
12408
|
+
// -----------------------------------------------------------------------------
|
|
12347
12409
|
// MOD
|
|
12348
12410
|
// -----------------------------------------------------------------------------
|
|
12349
12411
|
const MOD = {
|
|
@@ -12812,6 +12874,7 @@ var math = /*#__PURE__*/Object.freeze({
|
|
|
12812
12874
|
ISO_CEILING: ISO_CEILING,
|
|
12813
12875
|
ISODD: ISODD,
|
|
12814
12876
|
LN: LN,
|
|
12877
|
+
LOG: LOG,
|
|
12815
12878
|
MOD: MOD,
|
|
12816
12879
|
ODD: ODD,
|
|
12817
12880
|
PI: PI,
|
|
@@ -19688,7 +19751,7 @@ class EditionPlugin extends UIPlugin {
|
|
|
19688
19751
|
validateSelection(length, start, end) {
|
|
19689
19752
|
return start >= 0 && start <= length && end >= 0 && end <= length
|
|
19690
19753
|
? 0 /* CommandResult.Success */
|
|
19691
|
-
:
|
|
19754
|
+
: 47 /* CommandResult.WrongComposerSelection */;
|
|
19692
19755
|
}
|
|
19693
19756
|
onColumnsRemoved(cmd) {
|
|
19694
19757
|
if (cmd.elements.includes(this.col) && this.mode !== "inactive") {
|
|
@@ -27248,7 +27311,7 @@ function forceUnicityOfFigure(data) {
|
|
|
27248
27311
|
for (const sheet of data.sheets || []) {
|
|
27249
27312
|
for (const figure of sheet.figures || []) {
|
|
27250
27313
|
if (figureIds.has(figure.id)) {
|
|
27251
|
-
figure.id += uuidGenerator.
|
|
27314
|
+
figure.id += uuidGenerator.smallUuid();
|
|
27252
27315
|
}
|
|
27253
27316
|
figureIds.add(figure.id);
|
|
27254
27317
|
}
|
|
@@ -27933,7 +27996,7 @@ class BordersPlugin extends CorePlugin {
|
|
|
27933
27996
|
const currentBorder = this.getCellBorder(cmd.sheetId, cmd.col, cmd.row);
|
|
27934
27997
|
const areAllNewBordersUndefined = !((_a = cmd.border) === null || _a === void 0 ? void 0 : _a.bottom) && !((_b = cmd.border) === null || _b === void 0 ? void 0 : _b.left) && !((_c = cmd.border) === null || _c === void 0 ? void 0 : _c.right) && !((_d = cmd.border) === null || _d === void 0 ? void 0 : _d.top);
|
|
27935
27998
|
if ((!currentBorder && areAllNewBordersUndefined) || deepEquals(currentBorder, cmd.border)) {
|
|
27936
|
-
return
|
|
27999
|
+
return 89 /* CommandResult.NoChanges */;
|
|
27937
28000
|
}
|
|
27938
28001
|
return 0 /* CommandResult.Success */;
|
|
27939
28002
|
}
|
|
@@ -28039,11 +28102,16 @@ class CellPlugin extends CorePlugin {
|
|
|
28039
28102
|
// Command Handling
|
|
28040
28103
|
// ---------------------------------------------------------------------------
|
|
28041
28104
|
allowDispatch(cmd) {
|
|
28105
|
+
var _a;
|
|
28042
28106
|
switch (cmd.type) {
|
|
28043
28107
|
case "UPDATE_CELL":
|
|
28044
28108
|
return this.checkValidations(cmd, this.checkCellOutOfSheet, this.checkUselessUpdateCell);
|
|
28045
28109
|
case "CLEAR_CELL":
|
|
28046
28110
|
return this.checkValidations(cmd, this.checkCellOutOfSheet, this.checkUselessClearCell);
|
|
28111
|
+
case "UPDATE_CELL_POSITION":
|
|
28112
|
+
return !cmd.cellId || ((_a = this.cells[cmd.sheetId]) === null || _a === void 0 ? void 0 : _a[cmd.cellId])
|
|
28113
|
+
? 0 /* CommandResult.Success */
|
|
28114
|
+
: 28 /* CommandResult.InvalidCellId */;
|
|
28047
28115
|
default:
|
|
28048
28116
|
return 0 /* CommandResult.Success */;
|
|
28049
28117
|
}
|
|
@@ -28082,6 +28150,9 @@ class CellPlugin extends CorePlugin {
|
|
|
28082
28150
|
format: "",
|
|
28083
28151
|
});
|
|
28084
28152
|
break;
|
|
28153
|
+
case "DELETE_SHEET": {
|
|
28154
|
+
this.history.update("cells", cmd.sheetId, undefined);
|
|
28155
|
+
}
|
|
28085
28156
|
}
|
|
28086
28157
|
}
|
|
28087
28158
|
/**
|
|
@@ -28397,9 +28468,9 @@ class CellPlugin extends CorePlugin {
|
|
|
28397
28468
|
checkUselessClearCell(cmd) {
|
|
28398
28469
|
const cell = this.getters.getCell(cmd.sheetId, cmd.col, cmd.row);
|
|
28399
28470
|
if (!cell)
|
|
28400
|
-
return
|
|
28471
|
+
return 89 /* CommandResult.NoChanges */;
|
|
28401
28472
|
if (!cell.content && !cell.style && !cell.format) {
|
|
28402
|
-
return
|
|
28473
|
+
return 89 /* CommandResult.NoChanges */;
|
|
28403
28474
|
}
|
|
28404
28475
|
return 0 /* CommandResult.Success */;
|
|
28405
28476
|
}
|
|
@@ -28411,7 +28482,7 @@ class CellPlugin extends CorePlugin {
|
|
|
28411
28482
|
if ((!hasContent || (cell === null || cell === void 0 ? void 0 : cell.content) === cmd.content) &&
|
|
28412
28483
|
(!hasStyle || deepEquals(cell === null || cell === void 0 ? void 0 : cell.style, cmd.style)) &&
|
|
28413
28484
|
(!hasFormat || (cell === null || cell === void 0 ? void 0 : cell.format) === cmd.format)) {
|
|
28414
|
-
return
|
|
28485
|
+
return 89 /* CommandResult.NoChanges */;
|
|
28415
28486
|
}
|
|
28416
28487
|
return 0 /* CommandResult.Success */;
|
|
28417
28488
|
}
|
|
@@ -28620,13 +28691,13 @@ class ChartPlugin extends CorePlugin {
|
|
|
28620
28691
|
}
|
|
28621
28692
|
checkChartDuplicate(cmd) {
|
|
28622
28693
|
return this.getters.getFigureSheetId(cmd.id)
|
|
28623
|
-
?
|
|
28694
|
+
? 85 /* CommandResult.DuplicatedChartId */
|
|
28624
28695
|
: 0 /* CommandResult.Success */;
|
|
28625
28696
|
}
|
|
28626
28697
|
checkChartExists(cmd) {
|
|
28627
28698
|
return this.getters.getFigureSheetId(cmd.id)
|
|
28628
28699
|
? 0 /* CommandResult.Success */
|
|
28629
|
-
:
|
|
28700
|
+
: 86 /* CommandResult.ChartDoesNotExist */;
|
|
28630
28701
|
}
|
|
28631
28702
|
}
|
|
28632
28703
|
ChartPlugin.getters = [
|
|
@@ -28834,10 +28905,10 @@ class ConditionalFormatPlugin extends CorePlugin {
|
|
|
28834
28905
|
return 27 /* CommandResult.InvalidSheetId */;
|
|
28835
28906
|
const ruleIndex = this.cfRules[sheetId].findIndex((cf) => cf.id === cfId);
|
|
28836
28907
|
if (ruleIndex === -1)
|
|
28837
|
-
return
|
|
28908
|
+
return 72 /* CommandResult.InvalidConditionalFormatId */;
|
|
28838
28909
|
const cfIndex2 = direction === "up" ? ruleIndex - 1 : ruleIndex + 1;
|
|
28839
28910
|
if (cfIndex2 < 0 || cfIndex2 >= this.cfRules[sheetId].length) {
|
|
28840
|
-
return
|
|
28911
|
+
return 72 /* CommandResult.InvalidConditionalFormatId */;
|
|
28841
28912
|
}
|
|
28842
28913
|
return 0 /* CommandResult.Success */;
|
|
28843
28914
|
}
|
|
@@ -28878,10 +28949,10 @@ class ConditionalFormatPlugin extends CorePlugin {
|
|
|
28878
28949
|
const errors = [];
|
|
28879
28950
|
const isEmpty = (value) => value === undefined || value === "";
|
|
28880
28951
|
if (expectedNumber >= 1 && isEmpty(rule.values[0])) {
|
|
28881
|
-
errors.push(
|
|
28952
|
+
errors.push(52 /* CommandResult.FirstArgMissing */);
|
|
28882
28953
|
}
|
|
28883
28954
|
if (expectedNumber >= 2 && isEmpty(rule.values[1])) {
|
|
28884
|
-
errors.push(
|
|
28955
|
+
errors.push(53 /* CommandResult.SecondArgMissing */);
|
|
28885
28956
|
}
|
|
28886
28957
|
return errors.length ? errors : 0 /* CommandResult.Success */;
|
|
28887
28958
|
}
|
|
@@ -28893,15 +28964,15 @@ class ConditionalFormatPlugin extends CorePlugin {
|
|
|
28893
28964
|
(threshold.value === "" || isNaN(threshold.value))) {
|
|
28894
28965
|
switch (thresholdName) {
|
|
28895
28966
|
case "min":
|
|
28896
|
-
return
|
|
28967
|
+
return 54 /* CommandResult.MinNaN */;
|
|
28897
28968
|
case "max":
|
|
28898
|
-
return
|
|
28969
|
+
return 56 /* CommandResult.MaxNaN */;
|
|
28899
28970
|
case "mid":
|
|
28900
|
-
return
|
|
28971
|
+
return 55 /* CommandResult.MidNaN */;
|
|
28901
28972
|
case "upperInflectionPoint":
|
|
28902
|
-
return
|
|
28973
|
+
return 57 /* CommandResult.ValueUpperInflectionNaN */;
|
|
28903
28974
|
case "lowerInflectionPoint":
|
|
28904
|
-
return
|
|
28975
|
+
return 58 /* CommandResult.ValueLowerInflectionNaN */;
|
|
28905
28976
|
}
|
|
28906
28977
|
}
|
|
28907
28978
|
return 0 /* CommandResult.Success */;
|
|
@@ -28915,15 +28986,15 @@ class ConditionalFormatPlugin extends CorePlugin {
|
|
|
28915
28986
|
catch (error) {
|
|
28916
28987
|
switch (thresholdName) {
|
|
28917
28988
|
case "min":
|
|
28918
|
-
return
|
|
28989
|
+
return 59 /* CommandResult.MinInvalidFormula */;
|
|
28919
28990
|
case "max":
|
|
28920
|
-
return
|
|
28991
|
+
return 61 /* CommandResult.MaxInvalidFormula */;
|
|
28921
28992
|
case "mid":
|
|
28922
|
-
return
|
|
28993
|
+
return 60 /* CommandResult.MidInvalidFormula */;
|
|
28923
28994
|
case "upperInflectionPoint":
|
|
28924
|
-
return
|
|
28995
|
+
return 62 /* CommandResult.ValueUpperInvalidFormula */;
|
|
28925
28996
|
case "lowerInflectionPoint":
|
|
28926
|
-
return
|
|
28997
|
+
return 63 /* CommandResult.ValueLowerInvalidFormula */;
|
|
28927
28998
|
}
|
|
28928
28999
|
}
|
|
28929
29000
|
return 0 /* CommandResult.Success */;
|
|
@@ -28940,7 +29011,7 @@ class ConditionalFormatPlugin extends CorePlugin {
|
|
|
28940
29011
|
if (["number", "percentage", "percentile"].includes(rule.lowerInflectionPoint.type) &&
|
|
28941
29012
|
rule.lowerInflectionPoint.type === rule.upperInflectionPoint.type &&
|
|
28942
29013
|
Number(minValue) > Number(maxValue)) {
|
|
28943
|
-
return
|
|
29014
|
+
return 49 /* CommandResult.LowerBiggerThanUpper */;
|
|
28944
29015
|
}
|
|
28945
29016
|
return 0 /* CommandResult.Success */;
|
|
28946
29017
|
}
|
|
@@ -28950,7 +29021,7 @@ class ConditionalFormatPlugin extends CorePlugin {
|
|
|
28950
29021
|
if (["number", "percentage", "percentile"].includes(rule.minimum.type) &&
|
|
28951
29022
|
rule.minimum.type === rule.maximum.type &&
|
|
28952
29023
|
stringToNumber(minValue) >= stringToNumber(maxValue)) {
|
|
28953
|
-
return
|
|
29024
|
+
return 48 /* CommandResult.MinBiggerThanMax */;
|
|
28954
29025
|
}
|
|
28955
29026
|
return 0 /* CommandResult.Success */;
|
|
28956
29027
|
}
|
|
@@ -28962,7 +29033,7 @@ class ConditionalFormatPlugin extends CorePlugin {
|
|
|
28962
29033
|
["number", "percentage", "percentile"].includes(rule.midpoint.type) &&
|
|
28963
29034
|
rule.midpoint.type === rule.maximum.type &&
|
|
28964
29035
|
stringToNumber(midValue) >= stringToNumber(maxValue)) {
|
|
28965
|
-
return
|
|
29036
|
+
return 50 /* CommandResult.MidBiggerThanMax */;
|
|
28966
29037
|
}
|
|
28967
29038
|
return 0 /* CommandResult.Success */;
|
|
28968
29039
|
}
|
|
@@ -28974,7 +29045,7 @@ class ConditionalFormatPlugin extends CorePlugin {
|
|
|
28974
29045
|
["number", "percentage", "percentile"].includes(rule.midpoint.type) &&
|
|
28975
29046
|
rule.minimum.type === rule.midpoint.type &&
|
|
28976
29047
|
stringToNumber(minValue) >= stringToNumber(midValue)) {
|
|
28977
|
-
return
|
|
29048
|
+
return 51 /* CommandResult.MinBiggerThanMid */;
|
|
28978
29049
|
}
|
|
28979
29050
|
return 0 /* CommandResult.Success */;
|
|
28980
29051
|
}
|
|
@@ -29084,13 +29155,13 @@ class FigurePlugin extends CorePlugin {
|
|
|
29084
29155
|
checkFigureExists(sheetId, figureId) {
|
|
29085
29156
|
var _a;
|
|
29086
29157
|
if (((_a = this.figures[sheetId]) === null || _a === void 0 ? void 0 : _a[figureId]) === undefined) {
|
|
29087
|
-
return
|
|
29158
|
+
return 71 /* CommandResult.FigureDoesNotExist */;
|
|
29088
29159
|
}
|
|
29089
29160
|
return 0 /* CommandResult.Success */;
|
|
29090
29161
|
}
|
|
29091
29162
|
checkFigureDuplicate(figureId) {
|
|
29092
29163
|
if (Object.values(this.figures).find((sheet) => sheet === null || sheet === void 0 ? void 0 : sheet[figureId])) {
|
|
29093
|
-
return
|
|
29164
|
+
return 83 /* CommandResult.DuplicatedFigureId */;
|
|
29094
29165
|
}
|
|
29095
29166
|
return 0 /* CommandResult.Success */;
|
|
29096
29167
|
}
|
|
@@ -29138,10 +29209,10 @@ class FilterTable {
|
|
|
29138
29209
|
this.filters = [];
|
|
29139
29210
|
this.zone = zone;
|
|
29140
29211
|
const uuid = new UuidGenerator();
|
|
29141
|
-
this.id = uuid.
|
|
29212
|
+
this.id = uuid.smallUuid();
|
|
29142
29213
|
for (const i of range(zone.left, zone.right + 1)) {
|
|
29143
29214
|
const filterZone = { ...this.zone, left: i, right: i };
|
|
29144
|
-
this.filters.push(new Filter(uuid.
|
|
29215
|
+
this.filters.push(new Filter(uuid.smallUuid(), filterZone));
|
|
29145
29216
|
}
|
|
29146
29217
|
}
|
|
29147
29218
|
/** Get zone of the table without the headers */
|
|
@@ -29192,12 +29263,12 @@ class FiltersPlugin extends CorePlugin {
|
|
|
29192
29263
|
switch (cmd.type) {
|
|
29193
29264
|
case "CREATE_FILTER_TABLE":
|
|
29194
29265
|
if (!areZonesContinuous(...cmd.target)) {
|
|
29195
|
-
return
|
|
29266
|
+
return 82 /* CommandResult.NonContinuousTargets */;
|
|
29196
29267
|
}
|
|
29197
29268
|
const zone = union(...cmd.target);
|
|
29198
29269
|
const checkFilterOverlap = () => {
|
|
29199
29270
|
if (this.getFilterTables(cmd.sheetId).some((filter) => overlap(filter.zone, zone))) {
|
|
29200
|
-
return
|
|
29271
|
+
return 79 /* CommandResult.FilterOverlap */;
|
|
29201
29272
|
}
|
|
29202
29273
|
return 0 /* CommandResult.Success */;
|
|
29203
29274
|
};
|
|
@@ -29205,7 +29276,7 @@ class FiltersPlugin extends CorePlugin {
|
|
|
29205
29276
|
const mergesInTarget = this.getters.getMergesInZone(cmd.sheetId, zone);
|
|
29206
29277
|
for (let merge of mergesInTarget) {
|
|
29207
29278
|
if (overlap(zone, merge)) {
|
|
29208
|
-
return
|
|
29279
|
+
return 81 /* CommandResult.MergeInFilter */;
|
|
29209
29280
|
}
|
|
29210
29281
|
}
|
|
29211
29282
|
return 0 /* CommandResult.Success */;
|
|
@@ -29215,7 +29286,7 @@ class FiltersPlugin extends CorePlugin {
|
|
|
29215
29286
|
for (let merge of cmd.target) {
|
|
29216
29287
|
for (let filterTable of this.getFilterTables(cmd.sheetId)) {
|
|
29217
29288
|
if (overlap(filterTable.zone, merge)) {
|
|
29218
|
-
return
|
|
29289
|
+
return 81 /* CommandResult.MergeInFilter */;
|
|
29219
29290
|
}
|
|
29220
29291
|
}
|
|
29221
29292
|
}
|
|
@@ -29321,7 +29392,7 @@ class FiltersPlugin extends CorePlugin {
|
|
|
29321
29392
|
if (filters.length < zoneToDimension(zone).width) {
|
|
29322
29393
|
for (let col = zone.left; col <= zone.right; col++) {
|
|
29323
29394
|
if (!filters.find((filter) => filter.col === col)) {
|
|
29324
|
-
filters.push(new Filter(this.uuidGenerator.
|
|
29395
|
+
filters.push(new Filter(this.uuidGenerator.smallUuid(), { ...zone, left: col, right: col }));
|
|
29325
29396
|
}
|
|
29326
29397
|
}
|
|
29327
29398
|
filters.sort((f1, f2) => f1.col - f2.col);
|
|
@@ -29725,10 +29796,10 @@ class HeaderVisibilityPlugin extends CorePlugin {
|
|
|
29725
29796
|
: this.getters.getNumberRows(cmd.sheetId);
|
|
29726
29797
|
const hiddenElements = new Set((hiddenGroup || []).flat().concat(cmd.elements));
|
|
29727
29798
|
if (hiddenElements.size >= elements) {
|
|
29728
|
-
return
|
|
29799
|
+
return 67 /* CommandResult.TooManyHiddenElements */;
|
|
29729
29800
|
}
|
|
29730
29801
|
else if (largeMin(cmd.elements) < 0 || largeMax(cmd.elements) > elements) {
|
|
29731
|
-
return
|
|
29802
|
+
return 87 /* CommandResult.InvalidHeaderIndex */;
|
|
29732
29803
|
}
|
|
29733
29804
|
else {
|
|
29734
29805
|
return 0 /* CommandResult.Success */;
|
|
@@ -30131,7 +30202,7 @@ class MergePlugin extends CorePlugin {
|
|
|
30131
30202
|
for (const zone of target) {
|
|
30132
30203
|
for (const zone2 of target) {
|
|
30133
30204
|
if (zone !== zone2 && overlap(zone, zone2)) {
|
|
30134
|
-
return
|
|
30205
|
+
return 66 /* CommandResult.MergeOverlap */;
|
|
30135
30206
|
}
|
|
30136
30207
|
}
|
|
30137
30208
|
}
|
|
@@ -30145,7 +30216,7 @@ class MergePlugin extends CorePlugin {
|
|
|
30145
30216
|
for (const zone of target) {
|
|
30146
30217
|
if ((zone.left < xSplit && zone.right >= xSplit) ||
|
|
30147
30218
|
(zone.top < ySplit && zone.bottom >= ySplit)) {
|
|
30148
|
-
return
|
|
30219
|
+
return 76 /* CommandResult.FrozenPaneOverlap */;
|
|
30149
30220
|
}
|
|
30150
30221
|
}
|
|
30151
30222
|
return 0 /* CommandResult.Success */;
|
|
@@ -30363,6 +30434,9 @@ class SheetPlugin extends CorePlugin {
|
|
|
30363
30434
|
case "CREATE_SHEET": {
|
|
30364
30435
|
return this.checkValidations(cmd, this.checkSheetName, this.checkSheetPosition);
|
|
30365
30436
|
}
|
|
30437
|
+
case "DUPLICATE_SHEET": {
|
|
30438
|
+
return this.sheets[cmd.sheetIdTo] ? 12 /* CommandResult.DuplicatedSheetId */ : 0 /* CommandResult.Success */;
|
|
30439
|
+
}
|
|
30366
30440
|
case "MOVE_SHEET":
|
|
30367
30441
|
const currentIndex = this.orderedSheetIds.indexOf(cmd.sheetId);
|
|
30368
30442
|
if (cmd.direction === "left") {
|
|
@@ -30384,7 +30458,7 @@ class SheetPlugin extends CorePlugin {
|
|
|
30384
30458
|
case "RENAME_SHEET":
|
|
30385
30459
|
return this.isRenameAllowed(cmd);
|
|
30386
30460
|
case "DELETE_SHEET":
|
|
30387
|
-
return this.
|
|
30461
|
+
return this.getVisibleSheetIds().length > 1
|
|
30388
30462
|
? 0 /* CommandResult.Success */
|
|
30389
30463
|
: 9 /* CommandResult.NotEnoughSheets */;
|
|
30390
30464
|
case "ADD_COLUMNS_ROWS":
|
|
@@ -30392,10 +30466,10 @@ class SheetPlugin extends CorePlugin {
|
|
|
30392
30466
|
? this.getNumberCols(cmd.sheetId)
|
|
30393
30467
|
: this.getNumberRows(cmd.sheetId);
|
|
30394
30468
|
if (cmd.base < 0 || cmd.base >= elements) {
|
|
30395
|
-
return
|
|
30469
|
+
return 87 /* CommandResult.InvalidHeaderIndex */;
|
|
30396
30470
|
}
|
|
30397
30471
|
else if (cmd.quantity <= 0) {
|
|
30398
|
-
return
|
|
30472
|
+
return 88 /* CommandResult.InvalidQuantity */;
|
|
30399
30473
|
}
|
|
30400
30474
|
return 0 /* CommandResult.Success */;
|
|
30401
30475
|
case "REMOVE_COLUMNS_ROWS": {
|
|
@@ -30403,7 +30477,7 @@ class SheetPlugin extends CorePlugin {
|
|
|
30403
30477
|
? this.getNumberCols(cmd.sheetId)
|
|
30404
30478
|
: this.getNumberRows(cmd.sheetId);
|
|
30405
30479
|
if (largeMin(cmd.elements) < 0 || largeMax(cmd.elements) > elements) {
|
|
30406
|
-
return
|
|
30480
|
+
return 87 /* CommandResult.InvalidHeaderIndex */;
|
|
30407
30481
|
}
|
|
30408
30482
|
else if (this.checkElementsIncludeAllNonFrozenHeaders(cmd.sheetId, cmd.dimension, cmd.elements)) {
|
|
30409
30483
|
return 8 /* CommandResult.NotEnoughElements */;
|
|
@@ -30860,18 +30934,18 @@ class SheetPlugin extends CorePlugin {
|
|
|
30860
30934
|
checkRowFreezeQuantity(cmd) {
|
|
30861
30935
|
return cmd.quantity >= 1 && cmd.quantity < this.getNumberRows(cmd.sheetId)
|
|
30862
30936
|
? 0 /* CommandResult.Success */
|
|
30863
|
-
:
|
|
30937
|
+
: 75 /* CommandResult.InvalidFreezeQuantity */;
|
|
30864
30938
|
}
|
|
30865
30939
|
checkColFreezeQuantity(cmd) {
|
|
30866
30940
|
return cmd.quantity >= 1 && cmd.quantity < this.getNumberCols(cmd.sheetId)
|
|
30867
30941
|
? 0 /* CommandResult.Success */
|
|
30868
|
-
:
|
|
30942
|
+
: 75 /* CommandResult.InvalidFreezeQuantity */;
|
|
30869
30943
|
}
|
|
30870
30944
|
checkRowFreezeOverlapMerge(cmd) {
|
|
30871
30945
|
const merges = this.getters.getMerges(cmd.sheetId);
|
|
30872
30946
|
for (let merge of merges) {
|
|
30873
30947
|
if (merge.top < cmd.quantity && cmd.quantity <= merge.bottom) {
|
|
30874
|
-
return
|
|
30948
|
+
return 66 /* CommandResult.MergeOverlap */;
|
|
30875
30949
|
}
|
|
30876
30950
|
}
|
|
30877
30951
|
return 0 /* CommandResult.Success */;
|
|
@@ -30880,7 +30954,7 @@ class SheetPlugin extends CorePlugin {
|
|
|
30880
30954
|
const merges = this.getters.getMerges(cmd.sheetId);
|
|
30881
30955
|
for (let merge of merges) {
|
|
30882
30956
|
if (merge.left < cmd.quantity && cmd.quantity <= merge.right) {
|
|
30883
|
-
return
|
|
30957
|
+
return 66 /* CommandResult.MergeOverlap */;
|
|
30884
30958
|
}
|
|
30885
30959
|
}
|
|
30886
30960
|
return 0 /* CommandResult.Success */;
|
|
@@ -31190,6 +31264,9 @@ class SheetPlugin extends CorePlugin {
|
|
|
31190
31264
|
zones.push(...cmd.target);
|
|
31191
31265
|
}
|
|
31192
31266
|
if ("ranges" in cmd && Array.isArray(cmd.ranges)) {
|
|
31267
|
+
if (cmd.ranges.some((rangeData) => !this.getters.tryGetSheet(rangeData._sheetId))) {
|
|
31268
|
+
return 27 /* CommandResult.InvalidSheetId */;
|
|
31269
|
+
}
|
|
31193
31270
|
zones.push(...cmd.ranges.map((rangeData) => this.getters.getRangeFromRangeData(rangeData).zone));
|
|
31194
31271
|
}
|
|
31195
31272
|
if (!zones.every(isZoneValid)) {
|
|
@@ -31311,7 +31388,7 @@ class AutofillPlugin extends UIPlugin {
|
|
|
31311
31388
|
if (this.lastCellSelected.col !== undefined && this.lastCellSelected.row !== undefined) {
|
|
31312
31389
|
return 0 /* CommandResult.Success */;
|
|
31313
31390
|
}
|
|
31314
|
-
return
|
|
31391
|
+
return 46 /* CommandResult.InvalidAutofillSelection */;
|
|
31315
31392
|
case "AUTOFILL_AUTO":
|
|
31316
31393
|
const zone = this.getters.getSelectedZone();
|
|
31317
31394
|
return zone.top === zone.bottom
|
|
@@ -31911,7 +31988,7 @@ class CellPopoverPlugin extends UIPlugin {
|
|
|
31911
31988
|
cellPopoverRegistry.get(cmd.popoverType);
|
|
31912
31989
|
}
|
|
31913
31990
|
catch (error) {
|
|
31914
|
-
return
|
|
31991
|
+
return 73 /* CommandResult.InvalidCellPopover */;
|
|
31915
31992
|
}
|
|
31916
31993
|
return 0 /* CommandResult.Success */;
|
|
31917
31994
|
default:
|
|
@@ -32135,7 +32212,7 @@ class ClipboardCellsState extends ClipboardCellsAbstractState {
|
|
|
32135
32212
|
for (const zone of this.getPasteZones(target)) {
|
|
32136
32213
|
if ((zone.left < xSplit && zone.right >= xSplit) ||
|
|
32137
32214
|
(zone.top < ySplit && zone.bottom >= ySplit)) {
|
|
32138
|
-
return
|
|
32215
|
+
return 76 /* CommandResult.FrozenPaneOverlap */;
|
|
32139
32216
|
}
|
|
32140
32217
|
}
|
|
32141
32218
|
return 0 /* CommandResult.Success */;
|
|
@@ -32495,7 +32572,7 @@ class ClipboardFigureState {
|
|
|
32495
32572
|
}
|
|
32496
32573
|
isPasteAllowed(target, option) {
|
|
32497
32574
|
if (target.length === 0) {
|
|
32498
|
-
return
|
|
32575
|
+
return 74 /* CommandResult.EmptyTarget */;
|
|
32499
32576
|
}
|
|
32500
32577
|
if ((option === null || option === void 0 ? void 0 : option.pasteOption) !== undefined) {
|
|
32501
32578
|
return 22 /* CommandResult.WrongFigurePasteOption */;
|
|
@@ -32512,7 +32589,7 @@ class ClipboardFigureState {
|
|
|
32512
32589
|
y: this.getters.getRowDimensions(sheetId, target[0].top).start,
|
|
32513
32590
|
};
|
|
32514
32591
|
const newChart = this.copiedChart.copyInSheetId(sheetId);
|
|
32515
|
-
const newId = new UuidGenerator().
|
|
32592
|
+
const newId = new UuidGenerator().smallUuid();
|
|
32516
32593
|
this.dispatch("CREATE_CHART", {
|
|
32517
32594
|
id: newId,
|
|
32518
32595
|
sheetId,
|
|
@@ -33642,7 +33719,9 @@ class EvaluationConditionalFormatPlugin extends UIPlugin {
|
|
|
33642
33719
|
const cfInTarget = this.getters
|
|
33643
33720
|
.getConditionalFormats(targetSheetId)
|
|
33644
33721
|
.find((cf) => cf.stopIfTrue === originCF.stopIfTrue && deepEquals(cf.rule, originCF.rule));
|
|
33645
|
-
return cfInTarget
|
|
33722
|
+
return cfInTarget
|
|
33723
|
+
? cfInTarget
|
|
33724
|
+
: { ...originCF, id: this.uuidGenerator.smallUuid(), ranges: [] };
|
|
33646
33725
|
}
|
|
33647
33726
|
}
|
|
33648
33727
|
EvaluationConditionalFormatPlugin.getters = ["getConditionalIcon", "getCellComputedStyle"];
|
|
@@ -33658,7 +33737,7 @@ class FilterEvaluationPlugin extends UIPlugin {
|
|
|
33658
33737
|
switch (cmd.type) {
|
|
33659
33738
|
case "UPDATE_FILTER":
|
|
33660
33739
|
if (!this.getters.getFilterId(cmd.sheetId, cmd.col, cmd.row)) {
|
|
33661
|
-
return
|
|
33740
|
+
return 80 /* CommandResult.FilterNotFound */;
|
|
33662
33741
|
}
|
|
33663
33742
|
break;
|
|
33664
33743
|
}
|
|
@@ -35164,23 +35243,7 @@ class GridSelectionPlugin extends UIPlugin {
|
|
|
35164
35243
|
gridSelection: deepCopy(gridSelection),
|
|
35165
35244
|
};
|
|
35166
35245
|
}
|
|
35167
|
-
|
|
35168
|
-
const currentSheetIds = this.getters.getVisibleSheetIds();
|
|
35169
|
-
this.activeSheet = this.getters.getSheet(currentSheetIds[0]);
|
|
35170
|
-
if (this.activeSheet.id in this.sheetsData) {
|
|
35171
|
-
const { anchor } = this.clipSelection(this.activeSheet.id, this.sheetsData[this.activeSheet.id].gridSelection);
|
|
35172
|
-
this.selectCell(anchor.cell.col, anchor.cell.row);
|
|
35173
|
-
}
|
|
35174
|
-
else {
|
|
35175
|
-
this.selectCell(0, 0);
|
|
35176
|
-
}
|
|
35177
|
-
const { col, row } = this.gridSelection.anchor.cell;
|
|
35178
|
-
this.moveClient({
|
|
35179
|
-
sheetId: this.getters.getActiveSheetId(),
|
|
35180
|
-
col,
|
|
35181
|
-
row,
|
|
35182
|
-
});
|
|
35183
|
-
}
|
|
35246
|
+
this.fallbackToVisibleSheet();
|
|
35184
35247
|
const sheetId = this.getters.getActiveSheetId();
|
|
35185
35248
|
this.gridSelection.zones = this.gridSelection.zones.map((z) => this.getters.expandZone(sheetId, z));
|
|
35186
35249
|
this.gridSelection.anchor.zone = this.getters.expandZone(sheetId, this.gridSelection.anchor.zone);
|
|
@@ -35190,6 +35253,7 @@ class GridSelectionPlugin extends UIPlugin {
|
|
|
35190
35253
|
}
|
|
35191
35254
|
}
|
|
35192
35255
|
finalize() {
|
|
35256
|
+
this.fallbackToVisibleSheet();
|
|
35193
35257
|
/** Any change to the selection has to be reflected in the selection processor. */
|
|
35194
35258
|
this.selection.resetDefaultAnchor(this, deepCopy(this.gridSelection.anchor));
|
|
35195
35259
|
}
|
|
@@ -35488,10 +35552,29 @@ class GridSelectionPlugin extends UIPlugin {
|
|
|
35488
35552
|
const headers = [cmd.base, ...cmd.elements];
|
|
35489
35553
|
const maxHeaderValue = isCol ? this.getters.getNumberCols(id) : this.getters.getNumberRows(id);
|
|
35490
35554
|
if (headers.some((h) => h < 0 || h >= maxHeaderValue)) {
|
|
35491
|
-
return
|
|
35555
|
+
return 87 /* CommandResult.InvalidHeaderIndex */;
|
|
35492
35556
|
}
|
|
35493
35557
|
return 0 /* CommandResult.Success */;
|
|
35494
35558
|
}
|
|
35559
|
+
fallbackToVisibleSheet() {
|
|
35560
|
+
if (!this.getters.tryGetSheet(this.getters.getActiveSheetId())) {
|
|
35561
|
+
const currentSheetIds = this.getters.getVisibleSheetIds();
|
|
35562
|
+
this.activeSheet = this.getters.getSheet(currentSheetIds[0]);
|
|
35563
|
+
if (this.activeSheet.id in this.sheetsData) {
|
|
35564
|
+
const { anchor } = this.clipSelection(this.activeSheet.id, this.sheetsData[this.activeSheet.id].gridSelection);
|
|
35565
|
+
this.selectCell(anchor.cell.col, anchor.cell.row);
|
|
35566
|
+
}
|
|
35567
|
+
else {
|
|
35568
|
+
this.selectCell(0, 0);
|
|
35569
|
+
}
|
|
35570
|
+
const { col, row } = this.gridSelection.anchor.cell;
|
|
35571
|
+
this.moveClient({
|
|
35572
|
+
sheetId: this.getters.getActiveSheetId(),
|
|
35573
|
+
col,
|
|
35574
|
+
row,
|
|
35575
|
+
});
|
|
35576
|
+
}
|
|
35577
|
+
}
|
|
35495
35578
|
//-------------------------------------------
|
|
35496
35579
|
// Helpers for extensions
|
|
35497
35580
|
// ------------------------------------------
|
|
@@ -35716,7 +35799,7 @@ class SelectionInputPlugin extends UIPlugin {
|
|
|
35716
35799
|
setContent(index, xc) {
|
|
35717
35800
|
this.ranges[index] = {
|
|
35718
35801
|
...this.ranges[index],
|
|
35719
|
-
id: uuidGenerator.
|
|
35802
|
+
id: uuidGenerator.smallUuid(),
|
|
35720
35803
|
xc,
|
|
35721
35804
|
};
|
|
35722
35805
|
}
|
|
@@ -35831,26 +35914,26 @@ class SelectionInputsManagerPlugin extends UIPlugin {
|
|
|
35831
35914
|
case "ADD_EMPTY_RANGE":
|
|
35832
35915
|
case "REMOVE_RANGE":
|
|
35833
35916
|
if (!this.inputs[cmd.id]) {
|
|
35834
|
-
return
|
|
35917
|
+
return 31 /* CommandResult.InvalidInputId */;
|
|
35835
35918
|
}
|
|
35836
35919
|
}
|
|
35837
35920
|
switch (cmd.type) {
|
|
35838
35921
|
case "FOCUS_RANGE":
|
|
35839
35922
|
const index = (_a = this.currentInput) === null || _a === void 0 ? void 0 : _a.getIndex(cmd.rangeId);
|
|
35840
35923
|
if (this.focusedInputId === cmd.id && ((_b = this.currentInput) === null || _b === void 0 ? void 0 : _b.focusedRangeIndex) === index) {
|
|
35841
|
-
return
|
|
35924
|
+
return 29 /* CommandResult.InputAlreadyFocused */;
|
|
35842
35925
|
}
|
|
35843
35926
|
break;
|
|
35844
35927
|
case "ADD_EMPTY_RANGE":
|
|
35845
35928
|
const input = this.inputs[cmd.id];
|
|
35846
35929
|
if (input.inputHasSingleRange && input.ranges.length === 1) {
|
|
35847
|
-
return
|
|
35930
|
+
return 30 /* CommandResult.MaximumRangesReached */;
|
|
35848
35931
|
}
|
|
35849
35932
|
break;
|
|
35850
35933
|
case "CHANGE_RANGE": {
|
|
35851
35934
|
const input = this.inputs[cmd.id];
|
|
35852
35935
|
if (input.inputHasSingleRange && cmd.value.split(",").length > 1) {
|
|
35853
|
-
return
|
|
35936
|
+
return 30 /* CommandResult.MaximumRangesReached */;
|
|
35854
35937
|
}
|
|
35855
35938
|
break;
|
|
35856
35939
|
}
|
|
@@ -36041,6 +36124,9 @@ function updateChartRangesTransformation(toTransform, executed) {
|
|
|
36041
36124
|
}
|
|
36042
36125
|
function createSheetTransformation(cmd, executed) {
|
|
36043
36126
|
var _a;
|
|
36127
|
+
if (cmd.sheetId === executed.sheetId) {
|
|
36128
|
+
cmd = { ...cmd, sheetId: `${cmd.sheetId}~` };
|
|
36129
|
+
}
|
|
36044
36130
|
if (cmd.name === executed.name) {
|
|
36045
36131
|
return {
|
|
36046
36132
|
...cmd,
|
|
@@ -36616,21 +36702,14 @@ class Session extends EventBus {
|
|
|
36616
36702
|
if (!message)
|
|
36617
36703
|
return;
|
|
36618
36704
|
if (message.type === "REMOTE_REVISION") {
|
|
36619
|
-
|
|
36705
|
+
let revision = this.revisions.get(message.nextRevisionId);
|
|
36620
36706
|
if (revision.commands.length === 0) {
|
|
36621
36707
|
/**
|
|
36622
|
-
* The command is empty, we have to
|
|
36708
|
+
* The command is empty, we have to rebase all the next local revisions
|
|
36623
36709
|
* to avoid issues with undo/redo
|
|
36624
36710
|
*/
|
|
36625
|
-
this.revisions.
|
|
36626
|
-
|
|
36627
|
-
.filter((message) => message.type === "REMOTE_REVISION")
|
|
36628
|
-
.map((message) => message.nextRevisionId);
|
|
36629
|
-
this.trigger("pending-revisions-dropped", { revisionIds });
|
|
36630
|
-
this.waitingAck = false;
|
|
36631
|
-
this.waitingUndoRedoAck = false;
|
|
36632
|
-
this.pendingMessages = [];
|
|
36633
|
-
return;
|
|
36711
|
+
this.revisions.rebase(revision.id);
|
|
36712
|
+
revision = this.revisions.get(message.nextRevisionId);
|
|
36634
36713
|
}
|
|
36635
36714
|
message = {
|
|
36636
36715
|
...message,
|
|
@@ -36654,7 +36733,6 @@ class Session extends EventBus {
|
|
|
36654
36733
|
switch (message.type) {
|
|
36655
36734
|
case "REMOTE_REVISION":
|
|
36656
36735
|
case "REVISION_REDONE":
|
|
36657
|
-
case "REVISION_UNDONE":
|
|
36658
36736
|
case "SNAPSHOT_CREATED":
|
|
36659
36737
|
this.waitingAck = false;
|
|
36660
36738
|
this.pendingMessages = this.pendingMessages.filter((msg) => msg.nextRevisionId !== message.nextRevisionId);
|
|
@@ -36662,6 +36740,25 @@ class Session extends EventBus {
|
|
|
36662
36740
|
this.processedRevisions.add(message.nextRevisionId);
|
|
36663
36741
|
this.sendPendingMessage();
|
|
36664
36742
|
break;
|
|
36743
|
+
case "REVISION_UNDONE": {
|
|
36744
|
+
this.waitingAck = false;
|
|
36745
|
+
this.pendingMessages = this.pendingMessages.filter((msg) => msg.nextRevisionId !== message.nextRevisionId);
|
|
36746
|
+
const firstPendingRevisionId = this.pendingMessages.findIndex((message) => message.type === "REMOTE_REVISION");
|
|
36747
|
+
if (firstPendingRevisionId !== -1) {
|
|
36748
|
+
/**
|
|
36749
|
+
* Some revisions undergo transformations that may cause issues with
|
|
36750
|
+
* undo/redo if the transformation is destructive (we don't get back
|
|
36751
|
+
* the original command by transforming it with the inverse).
|
|
36752
|
+
* To prevent these problems, we must rebase all subsequent local
|
|
36753
|
+
* revisions.
|
|
36754
|
+
*/
|
|
36755
|
+
this.revisions.rebase(this.pendingMessages[firstPendingRevisionId].nextRevisionId);
|
|
36756
|
+
}
|
|
36757
|
+
this.serverRevisionId = message.nextRevisionId;
|
|
36758
|
+
this.processedRevisions.add(message.nextRevisionId);
|
|
36759
|
+
this.sendPendingMessage();
|
|
36760
|
+
break;
|
|
36761
|
+
}
|
|
36665
36762
|
}
|
|
36666
36763
|
}
|
|
36667
36764
|
isAlreadyProcessed(message) {
|
|
@@ -37532,7 +37629,7 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
37532
37629
|
}
|
|
37533
37630
|
checkPositiveDimension(cmd) {
|
|
37534
37631
|
if (cmd.width < 0 || cmd.height < 0) {
|
|
37535
|
-
return
|
|
37632
|
+
return 69 /* CommandResult.InvalidViewportSize */;
|
|
37536
37633
|
}
|
|
37537
37634
|
return 0 /* CommandResult.Success */;
|
|
37538
37635
|
}
|
|
@@ -37542,7 +37639,7 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
37542
37639
|
cmd.gridOffsetY === this.gridOffsetY &&
|
|
37543
37640
|
cmd.width === width &&
|
|
37544
37641
|
cmd.height === height) {
|
|
37545
|
-
return
|
|
37642
|
+
return 77 /* CommandResult.ValuesNotChanged */;
|
|
37546
37643
|
}
|
|
37547
37644
|
return 0 /* CommandResult.Success */;
|
|
37548
37645
|
}
|
|
@@ -37550,7 +37647,7 @@ class SheetViewPlugin extends UIPlugin {
|
|
|
37550
37647
|
const pane = this.getMainInternalViewport(this.getters.getActiveSheetId());
|
|
37551
37648
|
if ((!pane.canScrollHorizontally && offsetX > 0) ||
|
|
37552
37649
|
(!pane.canScrollVertically && offsetY > 0)) {
|
|
37553
|
-
return
|
|
37650
|
+
return 70 /* CommandResult.InvalidScrollingDirection */;
|
|
37554
37651
|
}
|
|
37555
37652
|
return 0 /* CommandResult.Success */;
|
|
37556
37653
|
}
|
|
@@ -37777,7 +37874,7 @@ class SortPlugin extends UIPlugin {
|
|
|
37777
37874
|
for (let row = zone.top; row <= zone.bottom; row++) {
|
|
37778
37875
|
for (let col = zone.left; col <= zone.right; col++) {
|
|
37779
37876
|
if (!this.getters.isInMerge(sheetId, col, row)) {
|
|
37780
|
-
return
|
|
37877
|
+
return 64 /* CommandResult.InvalidSortZone */;
|
|
37781
37878
|
}
|
|
37782
37879
|
}
|
|
37783
37880
|
}
|
|
@@ -37798,7 +37895,7 @@ class SortPlugin extends UIPlugin {
|
|
|
37798
37895
|
];
|
|
37799
37896
|
return widthCurrent === widthFirst && heightCurrent === heightFirst;
|
|
37800
37897
|
})) {
|
|
37801
|
-
return
|
|
37898
|
+
return 64 /* CommandResult.InvalidSortZone */;
|
|
37802
37899
|
}
|
|
37803
37900
|
return 0 /* CommandResult.Success */;
|
|
37804
37901
|
}
|
|
@@ -38464,7 +38561,7 @@ class BottomBar extends owl.Component {
|
|
|
38464
38561
|
addSheet() {
|
|
38465
38562
|
const activeSheetId = this.env.model.getters.getActiveSheetId();
|
|
38466
38563
|
const position = this.env.model.getters.getSheetIds().findIndex((sheetId) => sheetId === activeSheetId) + 1;
|
|
38467
|
-
const sheetId = this.env.model.uuidGenerator.
|
|
38564
|
+
const sheetId = this.env.model.uuidGenerator.smallUuid();
|
|
38468
38565
|
const name = this.env.model.getters.getNextSheetName(this.env._t("Sheet"));
|
|
38469
38566
|
this.env.model.dispatch("CREATE_SHEET", { sheetId, position, name });
|
|
38470
38567
|
this.env.model.dispatch("ACTIVATE_SHEET", { sheetIdFrom: activeSheetId, sheetIdTo: sheetId });
|
|
@@ -38953,7 +39050,7 @@ const AddMergeInteractiveContent = {
|
|
|
38953
39050
|
};
|
|
38954
39051
|
function interactiveAddMerge(env, sheetId, target) {
|
|
38955
39052
|
const result = env.model.dispatch("ADD_MERGE", { sheetId, target });
|
|
38956
|
-
if (result.isCancelledBecause(
|
|
39053
|
+
if (result.isCancelledBecause(81 /* CommandResult.MergeInFilter */)) {
|
|
38957
39054
|
env.raiseError(AddMergeInteractiveContent.MergeInFilter);
|
|
38958
39055
|
}
|
|
38959
39056
|
else if (result.isCancelledBecause(3 /* CommandResult.MergeIsDestructive */)) {
|
|
@@ -40086,7 +40183,7 @@ class Tree {
|
|
|
40086
40183
|
}
|
|
40087
40184
|
/**
|
|
40088
40185
|
* Drop the operation and all following operations in every
|
|
40089
|
-
*
|
|
40186
|
+
* branches
|
|
40090
40187
|
*/
|
|
40091
40188
|
drop(operationId) {
|
|
40092
40189
|
for (const branch of this.branches) {
|
|
@@ -40383,9 +40480,16 @@ class SelectiveHistory {
|
|
|
40383
40480
|
this.fastForward();
|
|
40384
40481
|
this.insert(redoId, this.buildEmpty(redoId), insertAfter);
|
|
40385
40482
|
}
|
|
40386
|
-
|
|
40483
|
+
rebase(operationId) {
|
|
40484
|
+
const operation = this.get(operationId);
|
|
40485
|
+
const execution = [...this.tree.execution(this.HEAD_BRANCH).startAfter(operationId)];
|
|
40387
40486
|
this.revertBefore(operationId);
|
|
40487
|
+
const baseId = this.HEAD_OPERATION.id;
|
|
40388
40488
|
this.tree.drop(operationId);
|
|
40489
|
+
this.insert(operationId, operation, baseId);
|
|
40490
|
+
for (const { operation } of execution) {
|
|
40491
|
+
this.insert(operation.id, operation.data, this.HEAD_OPERATION.id);
|
|
40492
|
+
}
|
|
40389
40493
|
}
|
|
40390
40494
|
/**
|
|
40391
40495
|
* Revert the state as it was *before* the given operation was executed.
|
|
@@ -40508,7 +40612,6 @@ class LocalHistory extends owl.EventBus {
|
|
|
40508
40612
|
this.session.on("new-local-state-update", this, this.onNewLocalStateUpdate);
|
|
40509
40613
|
this.session.on("revision-undone", this, ({ commands }) => this.selectiveUndo(commands));
|
|
40510
40614
|
this.session.on("revision-redone", this, ({ commands }) => this.selectiveRedo(commands));
|
|
40511
|
-
this.session.on("pending-revisions-dropped", this, ({ revisionIds }) => this.drop(revisionIds));
|
|
40512
40615
|
this.session.on("snapshot", this, () => {
|
|
40513
40616
|
this.undoStack = [];
|
|
40514
40617
|
this.redoStack = [];
|
|
@@ -40561,10 +40664,6 @@ class LocalHistory extends owl.EventBus {
|
|
|
40561
40664
|
canRedo() {
|
|
40562
40665
|
return this.redoStack.length > 0;
|
|
40563
40666
|
}
|
|
40564
|
-
drop(revisionIds) {
|
|
40565
|
-
this.undoStack = this.undoStack.filter((id) => !revisionIds.includes(id));
|
|
40566
|
-
this.redoStack = [];
|
|
40567
|
-
}
|
|
40568
40667
|
onNewLocalStateUpdate({ id }) {
|
|
40569
40668
|
this.undoStack.push(id);
|
|
40570
40669
|
this.redoStack = [];
|
|
@@ -41145,7 +41244,7 @@ class SelectionStreamProcessor {
|
|
|
41145
41244
|
*/
|
|
41146
41245
|
moveAnchorCell(direction, step = 1) {
|
|
41147
41246
|
if (step !== "end" && step <= 0) {
|
|
41148
|
-
return new DispatchResult(
|
|
41247
|
+
return new DispatchResult(84 /* CommandResult.InvalidSelectionStep */);
|
|
41149
41248
|
}
|
|
41150
41249
|
const { col, row } = this.getNextAvailablePosition(direction, step);
|
|
41151
41250
|
return this.selectCell(col, row);
|
|
@@ -41191,7 +41290,7 @@ class SelectionStreamProcessor {
|
|
|
41191
41290
|
*/
|
|
41192
41291
|
resizeAnchorZone(direction, step = 1) {
|
|
41193
41292
|
if (step !== "end" && step <= 0) {
|
|
41194
|
-
return new DispatchResult(
|
|
41293
|
+
return new DispatchResult(84 /* CommandResult.InvalidSelectionStep */);
|
|
41195
41294
|
}
|
|
41196
41295
|
const sheetId = this.getters.getActiveSheetId();
|
|
41197
41296
|
const anchor = this.anchor;
|
|
@@ -43137,10 +43236,10 @@ class Model extends EventBus {
|
|
|
43137
43236
|
const command = { type, ...payload };
|
|
43138
43237
|
let status = this.status;
|
|
43139
43238
|
if (this.getters.isReadonly() && !canExecuteInReadonly(command)) {
|
|
43140
|
-
return new DispatchResult(
|
|
43239
|
+
return new DispatchResult(68 /* CommandResult.Readonly */);
|
|
43141
43240
|
}
|
|
43142
43241
|
if (!this.session.canApplyOptimisticUpdate()) {
|
|
43143
|
-
return new DispatchResult(
|
|
43242
|
+
return new DispatchResult(65 /* CommandResult.WaitingSessionConfirmation */);
|
|
43144
43243
|
}
|
|
43145
43244
|
switch (status) {
|
|
43146
43245
|
case 0 /* Status.Ready */:
|
|
@@ -43342,7 +43441,7 @@ class Model extends EventBus {
|
|
|
43342
43441
|
}
|
|
43343
43442
|
setupConfig(config) {
|
|
43344
43443
|
const client = config.client || {
|
|
43345
|
-
id: this.uuidGenerator.
|
|
43444
|
+
id: this.uuidGenerator.smallUuid(),
|
|
43346
43445
|
name: _lt("Anonymous").toString(),
|
|
43347
43446
|
};
|
|
43348
43447
|
const transportService = config.transportService || new LocalTransportService();
|
|
@@ -43590,6 +43689,6 @@ exports.setTranslationMethod = setTranslationMethod;
|
|
|
43590
43689
|
exports.tokenize = tokenize;
|
|
43591
43690
|
|
|
43592
43691
|
|
|
43593
|
-
__info__.version = '16.0.
|
|
43594
|
-
__info__.date = '2025-02-
|
|
43595
|
-
__info__.hash = '
|
|
43692
|
+
__info__.version = '16.0.62';
|
|
43693
|
+
__info__.date = '2025-02-14T08:36:41.388Z';
|
|
43694
|
+
__info__.hash = '34f2802';
|