@odoo/o-spreadsheet 18.0.5 → 18.0.7
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 +72 -113
- package/dist/o-spreadsheet.d.ts +4 -5
- package/dist/o-spreadsheet.esm.js +72 -113
- package/dist/o-spreadsheet.iife.js +72 -113
- package/dist/o-spreadsheet.iife.min.js +336 -336
- package/dist/o_spreadsheet.xml +3 -3
- 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 18.0.
|
|
6
|
-
* @date 2024-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 18.0.7
|
|
6
|
+
* @date 2024-12-05T10:41:39.380Z
|
|
7
|
+
* @hash a2652c5
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
'use strict';
|
|
@@ -334,8 +334,8 @@ const LINE_FILL_TRANSPARENCY = 0.4;
|
|
|
334
334
|
const DEBOUNCE_TIME = 200;
|
|
335
335
|
const MESSAGE_VERSION = 1;
|
|
336
336
|
// Sheets
|
|
337
|
-
const
|
|
338
|
-
const
|
|
337
|
+
const FORBIDDEN_SHEETNAME_CHARS = ["'", "*", "?", "/", "\\", "[", "]"];
|
|
338
|
+
const FORBIDDEN_SHEETNAME_CHARS_IN_EXCEL_REGEX = /'|\*|\?|\/|\\|\[|\]/;
|
|
339
339
|
// Cells
|
|
340
340
|
const FORMULA_REF_IDENTIFIER = "|";
|
|
341
341
|
// Components
|
|
@@ -388,6 +388,7 @@ const DEFAULT_CURRENCY = {
|
|
|
388
388
|
//------------------------------------------------------------------------------
|
|
389
389
|
// Miscellaneous
|
|
390
390
|
//------------------------------------------------------------------------------
|
|
391
|
+
const sanitizeSheetNameRegex = new RegExp(FORBIDDEN_SHEETNAME_CHARS_IN_EXCEL_REGEX, "g");
|
|
391
392
|
/**
|
|
392
393
|
* Remove quotes from a quoted string
|
|
393
394
|
* ```js
|
|
@@ -483,6 +484,10 @@ function getCanonicalSymbolName(symbolName) {
|
|
|
483
484
|
}
|
|
484
485
|
return symbolName;
|
|
485
486
|
}
|
|
487
|
+
/** Replace the excel-excluded characters of a sheetName */
|
|
488
|
+
function sanitizeSheetName(sheetName, replacementChar = " ") {
|
|
489
|
+
return sheetName.replace(sanitizeSheetNameRegex, replacementChar);
|
|
490
|
+
}
|
|
486
491
|
function clip(val, min, max) {
|
|
487
492
|
return val < min ? min : val > max ? max : val;
|
|
488
493
|
}
|
|
@@ -3542,7 +3547,6 @@ exports.CommandResult = void 0;
|
|
|
3542
3547
|
CommandResult["ValueCellIsInvalidFormula"] = "ValueCellIsInvalidFormula";
|
|
3543
3548
|
CommandResult["InvalidDefinition"] = "InvalidDefinition";
|
|
3544
3549
|
CommandResult["InvalidColor"] = "InvalidColor";
|
|
3545
|
-
CommandResult["DataBarRangeValuesMismatch"] = "DataBarRangeValuesMismatch";
|
|
3546
3550
|
})(exports.CommandResult || (exports.CommandResult = {}));
|
|
3547
3551
|
|
|
3548
3552
|
const DEFAULT_LOCALES = [
|
|
@@ -9417,34 +9421,42 @@ function interpolateData(config, values, labels, newLabels) {
|
|
|
9417
9421
|
const labelRange = labelMax - labelMin;
|
|
9418
9422
|
const normalizedLabels = labels.map((v) => (v - labelMin) / labelRange);
|
|
9419
9423
|
const normalizedNewLabels = newLabels.map((v) => (v - labelMin) / labelRange);
|
|
9420
|
-
|
|
9421
|
-
|
|
9422
|
-
|
|
9423
|
-
|
|
9424
|
-
|
|
9425
|
-
|
|
9426
|
-
|
|
9427
|
-
|
|
9428
|
-
|
|
9429
|
-
|
|
9430
|
-
|
|
9431
|
-
|
|
9432
|
-
|
|
9433
|
-
|
|
9434
|
-
|
|
9435
|
-
|
|
9424
|
+
try {
|
|
9425
|
+
switch (config.type) {
|
|
9426
|
+
case "polynomial": {
|
|
9427
|
+
const order = config.order;
|
|
9428
|
+
if (!order) {
|
|
9429
|
+
return Array.from({ length: newLabels.length }, () => NaN);
|
|
9430
|
+
}
|
|
9431
|
+
if (order === 1) {
|
|
9432
|
+
return predictLinearValues([values], [normalizedLabels], [normalizedNewLabels], true)[0];
|
|
9433
|
+
}
|
|
9434
|
+
const coeffs = polynomialRegression(values, normalizedLabels, order, true).flat();
|
|
9435
|
+
return normalizedNewLabels.map((v) => evaluatePolynomial(coeffs, v, order));
|
|
9436
|
+
}
|
|
9437
|
+
case "exponential": {
|
|
9438
|
+
const positiveLogValues = [];
|
|
9439
|
+
const filteredLabels = [];
|
|
9440
|
+
for (let i = 0; i < values.length; i++) {
|
|
9441
|
+
if (values[i] > 0) {
|
|
9442
|
+
positiveLogValues.push(Math.log(values[i]));
|
|
9443
|
+
filteredLabels.push(normalizedLabels[i]);
|
|
9444
|
+
}
|
|
9436
9445
|
}
|
|
9446
|
+
if (!filteredLabels.length) {
|
|
9447
|
+
return Array.from({ length: newLabels.length }, () => NaN);
|
|
9448
|
+
}
|
|
9449
|
+
return expM(predictLinearValues([positiveLogValues], [filteredLabels], [normalizedNewLabels], true))[0];
|
|
9437
9450
|
}
|
|
9438
|
-
|
|
9439
|
-
return [];
|
|
9451
|
+
case "logarithmic": {
|
|
9452
|
+
return predictLinearValues([values], logM([normalizedLabels]), logM([normalizedNewLabels]), true)[0];
|
|
9440
9453
|
}
|
|
9441
|
-
|
|
9442
|
-
|
|
9443
|
-
case "logarithmic": {
|
|
9444
|
-
return predictLinearValues([values], logM([normalizedLabels]), logM([normalizedNewLabels]), true)[0];
|
|
9454
|
+
default:
|
|
9455
|
+
return [];
|
|
9445
9456
|
}
|
|
9446
|
-
|
|
9447
|
-
|
|
9457
|
+
}
|
|
9458
|
+
catch (e) {
|
|
9459
|
+
return Array.from({ length: newLabels.length }, () => NaN);
|
|
9448
9460
|
}
|
|
9449
9461
|
}
|
|
9450
9462
|
function formatTickValue(localeFormat) {
|
|
@@ -27243,13 +27255,12 @@ migrationStepRegistry
|
|
|
27243
27255
|
versionFrom: "7",
|
|
27244
27256
|
migrate(data) {
|
|
27245
27257
|
const namesTaken = [];
|
|
27246
|
-
const globalForbiddenInExcel = new RegExp(FORBIDDEN_IN_EXCEL_REGEX, "g");
|
|
27247
27258
|
for (let sheet of data.sheets || []) {
|
|
27248
27259
|
if (!sheet.name) {
|
|
27249
27260
|
continue;
|
|
27250
27261
|
}
|
|
27251
27262
|
const oldName = sheet.name;
|
|
27252
|
-
const escapedName = oldName
|
|
27263
|
+
const escapedName = sanitizeSheetName(oldName, "_");
|
|
27253
27264
|
let i = 1;
|
|
27254
27265
|
let newName = escapedName;
|
|
27255
27266
|
while (namesTaken.includes(newName)) {
|
|
@@ -27922,7 +27933,6 @@ const CfTerms = {
|
|
|
27922
27933
|
["ValueLowerInvalidFormula" /* CommandResult.ValueLowerInvalidFormula */]: _t("Invalid lower inflection point formula"),
|
|
27923
27934
|
["EmptyRange" /* CommandResult.EmptyRange */]: _t("A range needs to be defined"),
|
|
27924
27935
|
["ValueCellIsInvalidFormula" /* CommandResult.ValueCellIsInvalidFormula */]: _t("At least one of the provided values is an invalid formula"),
|
|
27925
|
-
["DataBarRangeValuesMismatch" /* CommandResult.DataBarRangeValuesMismatch */]: _t("All the ranges and the range values must have the same size"),
|
|
27926
27936
|
Unexpected: _t("The rule is invalid for an unknown reason"),
|
|
27927
27937
|
},
|
|
27928
27938
|
ColorScale: _t("Color scale"),
|
|
@@ -30107,9 +30117,12 @@ function createPyramidChartRuntime(chart, getters) {
|
|
|
30107
30117
|
if (datasets && datasets[1]) {
|
|
30108
30118
|
datasets[1].data = datasets[1].data.map((value) => (value > 0 ? -value : 0));
|
|
30109
30119
|
}
|
|
30120
|
+
const maxValue = Math.max(...config.data?.datasets.map((dataSet) => Math.max(...dataSet.data.map(Math.abs))));
|
|
30110
30121
|
const scales = config.options.scales;
|
|
30111
30122
|
const scalesXCallback = scales.x.ticks.callback;
|
|
30112
30123
|
scales.x.ticks.callback = (value) => scalesXCallback(Math.abs(value));
|
|
30124
|
+
scales.x.suggestedMin = -maxValue;
|
|
30125
|
+
scales.x.suggestedMax = maxValue;
|
|
30113
30126
|
const tooltipLabelCallback = config.options.plugins.tooltip.callbacks.label;
|
|
30114
30127
|
config.options.plugins.tooltip.callbacks.label = (item) => {
|
|
30115
30128
|
const tooltipItem = { ...item, parsed: { y: item.parsed.y, x: Math.abs(item.parsed.x) } };
|
|
@@ -37461,7 +37474,7 @@ class ChartWithAxisDesignPanel extends owl.Component {
|
|
|
37461
37474
|
case "polynomial":
|
|
37462
37475
|
config = {
|
|
37463
37476
|
type: "polynomial",
|
|
37464
|
-
order: type === "linear" ? 1 :
|
|
37477
|
+
order: type === "linear" ? 1 : this.getMaxPolynomialDegree(),
|
|
37465
37478
|
};
|
|
37466
37479
|
break;
|
|
37467
37480
|
case "exponential":
|
|
@@ -38537,20 +38550,8 @@ class AbstractComposerStore extends SpreadsheetStore {
|
|
|
38537
38550
|
replaceSelectedRange(zone) {
|
|
38538
38551
|
const ref = this.getZoneReference(zone);
|
|
38539
38552
|
const currentToken = this.tokenAtCursor;
|
|
38540
|
-
|
|
38541
|
-
|
|
38542
|
-
replaceStart = currentToken.start;
|
|
38543
|
-
}
|
|
38544
|
-
else if (currentToken?.type === "RIGHT_PAREN") {
|
|
38545
|
-
// match left parenthesis
|
|
38546
|
-
const leftParenthesisIndex = this.currentTokens.findIndex((token) => token.type === "LEFT_PAREN" && token.parenIndex === currentToken.parenIndex);
|
|
38547
|
-
const functionToken = this.currentTokens[leftParenthesisIndex - 1];
|
|
38548
|
-
if (functionToken === undefined) {
|
|
38549
|
-
return;
|
|
38550
|
-
}
|
|
38551
|
-
replaceStart = functionToken.start;
|
|
38552
|
-
}
|
|
38553
|
-
this.replaceText(ref, replaceStart, this.selectionEnd);
|
|
38553
|
+
const start = currentToken?.type === "REFERENCE" ? currentToken.start : this.selectionStart;
|
|
38554
|
+
this.replaceText(ref, start, this.selectionEnd);
|
|
38554
38555
|
}
|
|
38555
38556
|
/**
|
|
38556
38557
|
* Replace the reference of the old zone by the new one.
|
|
@@ -38583,17 +38584,6 @@ class AbstractComposerStore extends SpreadsheetStore {
|
|
|
38583
38584
|
getZoneReference(zone) {
|
|
38584
38585
|
const inputSheetId = this.sheetId;
|
|
38585
38586
|
const sheetId = this.getters.getActiveSheetId();
|
|
38586
|
-
if (zone.top === zone.bottom && zone.left === zone.right) {
|
|
38587
|
-
const position = { sheetId, col: zone.left, row: zone.top };
|
|
38588
|
-
const pivotId = this.getters.getPivotIdFromPosition(position);
|
|
38589
|
-
const pivotCell = this.getters.getPivotCellFromPosition(position);
|
|
38590
|
-
const cell = this.getters.getCell(position);
|
|
38591
|
-
if (pivotId && pivotCell.type !== "EMPTY" && !cell?.isFormula) {
|
|
38592
|
-
const formulaPivotId = this.getters.getPivotFormulaId(pivotId);
|
|
38593
|
-
const formula = createPivotFormula(formulaPivotId, pivotCell);
|
|
38594
|
-
return localizeFormula(formula, this.getters.getLocale()).slice(1); // strip leading =
|
|
38595
|
-
}
|
|
38596
|
-
}
|
|
38597
38587
|
const range = this.getters.getRangeFromZone(sheetId, zone);
|
|
38598
38588
|
return this.getters.getSelectionRangeString(range, inputSheetId);
|
|
38599
38589
|
}
|
|
@@ -38664,35 +38654,19 @@ class AbstractComposerStore extends SpreadsheetStore {
|
|
|
38664
38654
|
const colorIndex = this.colorIndexByRange[rangeString];
|
|
38665
38655
|
return colors$1[colorIndex % colors$1.length];
|
|
38666
38656
|
};
|
|
38667
|
-
|
|
38668
|
-
for (const range of this.getReferencedRanges()) {
|
|
38657
|
+
return this.getReferencedRanges().map((range) => {
|
|
38669
38658
|
const rangeString = this.getters.getRangeString(range, editionSheetId);
|
|
38670
38659
|
const { numberOfRows, numberOfCols } = zoneToDimension(range.zone);
|
|
38671
38660
|
const zone = numberOfRows * numberOfCols === 1
|
|
38672
38661
|
? this.getters.expandZone(range.sheetId, range.zone)
|
|
38673
38662
|
: range.zone;
|
|
38674
|
-
|
|
38663
|
+
return {
|
|
38675
38664
|
zone,
|
|
38676
38665
|
color: rangeColor(rangeString),
|
|
38677
38666
|
sheetId: range.sheetId,
|
|
38678
38667
|
interactive: true,
|
|
38679
|
-
}
|
|
38680
|
-
}
|
|
38681
|
-
const activeSheetId = this.getters.getActiveSheetId();
|
|
38682
|
-
const selectionZone = this.model.selection.getAnchor().zone;
|
|
38683
|
-
const isSelectionHightlighted = highlights.find((highlight) => highlight.sheetId === activeSheetId && isEqual(highlight.zone, selectionZone));
|
|
38684
|
-
if (this.editionMode === "selecting" && !isSelectionHightlighted) {
|
|
38685
|
-
highlights.push({
|
|
38686
|
-
zone: selectionZone,
|
|
38687
|
-
color: "#445566",
|
|
38688
|
-
sheetId: activeSheetId,
|
|
38689
|
-
dashed: true,
|
|
38690
|
-
interactive: false,
|
|
38691
|
-
noFill: true,
|
|
38692
|
-
thinLine: true,
|
|
38693
|
-
});
|
|
38694
|
-
}
|
|
38695
|
-
return highlights;
|
|
38668
|
+
};
|
|
38669
|
+
});
|
|
38696
38670
|
}
|
|
38697
38671
|
/**
|
|
38698
38672
|
* Return ranges currently referenced in the composer
|
|
@@ -51863,8 +51837,6 @@ class ConditionalFormatPlugin extends CorePlugin {
|
|
|
51863
51837
|
case "IconSetRule": {
|
|
51864
51838
|
return this.checkValidations(rule, this.chainValidations(this.checkInflectionPoints(this.checkNaN), this.checkLowerBiggerThanUpper), this.chainValidations(this.checkInflectionPoints(this.checkFormulaCompilation)));
|
|
51865
51839
|
}
|
|
51866
|
-
case "DataBarRule":
|
|
51867
|
-
return this.checkDataBarRangeValues(rule, cmd.ranges, cmd.sheetId);
|
|
51868
51840
|
}
|
|
51869
51841
|
return "Success" /* CommandResult.Success */;
|
|
51870
51842
|
}
|
|
@@ -51984,18 +51956,6 @@ class ConditionalFormatPlugin extends CorePlugin {
|
|
|
51984
51956
|
}
|
|
51985
51957
|
return "Success" /* CommandResult.Success */;
|
|
51986
51958
|
}
|
|
51987
|
-
checkDataBarRangeValues(rule, ranges, sheetId) {
|
|
51988
|
-
if (rule.rangeValues) {
|
|
51989
|
-
const { numberOfCols, numberOfRows } = zoneToDimension(this.getters.getRangeFromSheetXC(sheetId, rule.rangeValues).zone);
|
|
51990
|
-
for (const range of ranges) {
|
|
51991
|
-
const dimensions = zoneToDimension(this.getters.getRangeFromRangeData(range).zone);
|
|
51992
|
-
if (numberOfCols !== dimensions.numberOfCols || numberOfRows !== dimensions.numberOfRows) {
|
|
51993
|
-
return "DataBarRangeValuesMismatch" /* CommandResult.DataBarRangeValuesMismatch */;
|
|
51994
|
-
}
|
|
51995
|
-
}
|
|
51996
|
-
}
|
|
51997
|
-
return "Success" /* CommandResult.Success */;
|
|
51998
|
-
}
|
|
51999
51959
|
removeConditionalFormatting(id, sheet) {
|
|
52000
51960
|
const cfIndex = this.cfRules[sheet].findIndex((s) => s.id === id);
|
|
52001
51961
|
if (cfIndex !== -1) {
|
|
@@ -54292,7 +54252,7 @@ class SheetPlugin extends CorePlugin {
|
|
|
54292
54252
|
if (orderedSheetIds.find((id) => sheets[id]?.name.toLowerCase() === name && id !== cmd.sheetId)) {
|
|
54293
54253
|
return "DuplicatedSheetName" /* CommandResult.DuplicatedSheetName */;
|
|
54294
54254
|
}
|
|
54295
|
-
if (
|
|
54255
|
+
if (FORBIDDEN_SHEETNAME_CHARS_IN_EXCEL_REGEX.test(name)) {
|
|
54296
54256
|
return "ForbiddenCharactersInSheetName" /* CommandResult.ForbiddenCharactersInSheetName */;
|
|
54297
54257
|
}
|
|
54298
54258
|
return "Success" /* CommandResult.Success */;
|
|
@@ -58376,8 +58336,12 @@ class EvaluationConditionalFormatPlugin extends UIPlugin {
|
|
|
58376
58336
|
const zoneOfValues = rangeValues.zone;
|
|
58377
58337
|
for (let row = zone.top; row <= zone.bottom; row++) {
|
|
58378
58338
|
for (let col = zone.left; col <= zone.right; col++) {
|
|
58379
|
-
const
|
|
58380
|
-
|
|
58339
|
+
const targetCol = col - zone.left + zoneOfValues.left;
|
|
58340
|
+
const targetRow = row - zone.top + zoneOfValues.top;
|
|
58341
|
+
const cell = this.getters.getEvaluatedCell({ sheetId, col: targetCol, row: targetRow });
|
|
58342
|
+
if (!isInside(targetCol, targetRow, zoneOfValues) ||
|
|
58343
|
+
cell.type !== CellValueType.number ||
|
|
58344
|
+
cell.value <= 0) {
|
|
58381
58345
|
// values negatives or 0 are ignored
|
|
58382
58346
|
continue;
|
|
58383
58347
|
}
|
|
@@ -58390,11 +58354,6 @@ class EvaluationConditionalFormatPlugin extends UIPlugin {
|
|
|
58390
58354
|
}
|
|
58391
58355
|
}
|
|
58392
58356
|
}
|
|
58393
|
-
getEvaluatedCellInZone(sheetId, zone, col, row, targetZone) {
|
|
58394
|
-
const targetCol = col - zone.left + targetZone.left;
|
|
58395
|
-
const targetRow = row - zone.top + targetZone.top;
|
|
58396
|
-
return this.getters.getEvaluatedCell({ sheetId, col: targetCol, row: targetRow });
|
|
58397
|
-
}
|
|
58398
58357
|
/** Compute the color scale for the given range and CF rule, and apply in in the given computedStyle object */
|
|
58399
58358
|
applyColorScale(sheetId, range, rule, computedStyle) {
|
|
58400
58359
|
const minValue = this.parsePoint(sheetId, range, rule.minimum, "min");
|
|
@@ -59696,11 +59655,13 @@ class PivotUIPlugin extends UIPlugin {
|
|
|
59696
59655
|
return EMPTY_PIVOT_CELL;
|
|
59697
59656
|
}
|
|
59698
59657
|
if (functionName === "PIVOT") {
|
|
59699
|
-
const includeTotal = args[2]
|
|
59700
|
-
const
|
|
59658
|
+
const includeTotal = toScalar(args[2]);
|
|
59659
|
+
const shouldIncludeTotal = includeTotal === undefined ? true : toBoolean(includeTotal);
|
|
59660
|
+
const includeColumnHeaders = toScalar(args[3]);
|
|
59661
|
+
const shouldIncludeColumnHeaders = includeColumnHeaders === undefined ? true : toBoolean(includeColumnHeaders);
|
|
59701
59662
|
const pivotCells = pivot
|
|
59702
59663
|
.getTableStructure()
|
|
59703
|
-
.getPivotCells(
|
|
59664
|
+
.getPivotCells(shouldIncludeTotal, shouldIncludeColumnHeaders);
|
|
59704
59665
|
const pivotCol = position.col - mainPosition.col;
|
|
59705
59666
|
const pivotRow = position.row - mainPosition.row;
|
|
59706
59667
|
return pivotCells[pivotCol][pivotRow];
|
|
@@ -61856,7 +61817,7 @@ class InsertPivotPlugin extends UIPlugin {
|
|
|
61856
61817
|
getPivotDuplicateSheetName(pivotName) {
|
|
61857
61818
|
let i = 1;
|
|
61858
61819
|
const names = this.getters.getSheetIds().map((id) => this.getters.getSheetName(id));
|
|
61859
|
-
const sanitizedName = pivotName
|
|
61820
|
+
const sanitizedName = sanitizeSheetName(pivotName);
|
|
61860
61821
|
let name = sanitizedName;
|
|
61861
61822
|
while (names.includes(name)) {
|
|
61862
61823
|
name = `${sanitizedName} (${i})`;
|
|
@@ -65936,7 +65897,7 @@ function interactiveRenameSheet(env, sheetId, name, errorCallback) {
|
|
|
65936
65897
|
env.raiseError(_t("A sheet with the name %s already exists. Please select another name.", name), errorCallback);
|
|
65937
65898
|
}
|
|
65938
65899
|
else if (result.reasons.includes("ForbiddenCharactersInSheetName" /* CommandResult.ForbiddenCharactersInSheetName */)) {
|
|
65939
|
-
env.raiseError(_t("Some used characters are not allowed in a sheet name (Forbidden characters are %s).",
|
|
65900
|
+
env.raiseError(_t("Some used characters are not allowed in a sheet name (Forbidden characters are %s).", FORBIDDEN_SHEETNAME_CHARS.join(" ")), errorCallback);
|
|
65940
65901
|
}
|
|
65941
65902
|
}
|
|
65942
65903
|
|
|
@@ -67166,7 +67127,7 @@ class ActionButton extends owl.Component {
|
|
|
67166
67127
|
setup() {
|
|
67167
67128
|
owl.onWillUpdateProps((nextProps) => {
|
|
67168
67129
|
if (nextProps.action !== this.props.action) {
|
|
67169
|
-
this.actionButton = createAction(
|
|
67130
|
+
this.actionButton = createAction(nextProps.action);
|
|
67170
67131
|
}
|
|
67171
67132
|
});
|
|
67172
67133
|
}
|
|
@@ -69345,9 +69306,6 @@ class SelectionStreamProcessorImpl {
|
|
|
69345
69306
|
getBackToDefault() {
|
|
69346
69307
|
this.stream.getBackToDefault();
|
|
69347
69308
|
}
|
|
69348
|
-
getAnchor() {
|
|
69349
|
-
return this.anchor;
|
|
69350
|
-
}
|
|
69351
69309
|
modifyAnchor(anchor, mode, options) {
|
|
69352
69310
|
const sheetId = this.getters.getActiveSheetId();
|
|
69353
69311
|
anchor = {
|
|
@@ -72435,6 +72393,7 @@ const helpers = {
|
|
|
72435
72393
|
areDomainArgsFieldsValid,
|
|
72436
72394
|
splitReference,
|
|
72437
72395
|
formatTickValue,
|
|
72396
|
+
sanitizeSheetName,
|
|
72438
72397
|
};
|
|
72439
72398
|
const links = {
|
|
72440
72399
|
isMarkdownLink,
|
|
@@ -72570,6 +72529,6 @@ exports.tokenColors = tokenColors;
|
|
|
72570
72529
|
exports.tokenize = tokenize;
|
|
72571
72530
|
|
|
72572
72531
|
|
|
72573
|
-
__info__.version = "18.0.
|
|
72574
|
-
__info__.date = "2024-
|
|
72575
|
-
__info__.hash = "
|
|
72532
|
+
__info__.version = "18.0.7";
|
|
72533
|
+
__info__.date = "2024-12-05T10:41:39.380Z";
|
|
72534
|
+
__info__.hash = "a2652c5";
|
package/dist/o-spreadsheet.d.ts
CHANGED
|
@@ -1306,7 +1306,6 @@ type StatefulStream<Event, State> = {
|
|
|
1306
1306
|
* Allows to select cells in the grid and update the selection
|
|
1307
1307
|
*/
|
|
1308
1308
|
interface SelectionProcessor {
|
|
1309
|
-
getAnchor(): Immutable<AnchorZone>;
|
|
1310
1309
|
selectZone(anchor: AnchorZone, options?: SelectionEventOptions): DispatchResult;
|
|
1311
1310
|
selectCell(col: number, row: number): DispatchResult;
|
|
1312
1311
|
moveAnchorCell(direction: Direction$1, step: SelectionStep): DispatchResult;
|
|
@@ -2670,8 +2669,7 @@ declare const enum CommandResult {
|
|
|
2670
2669
|
EmptyName = "EmptyName",
|
|
2671
2670
|
ValueCellIsInvalidFormula = "ValueCellIsInvalidFormula",
|
|
2672
2671
|
InvalidDefinition = "InvalidDefinition",
|
|
2673
|
-
InvalidColor = "InvalidColor"
|
|
2674
|
-
DataBarRangeValuesMismatch = "DataBarRangeValuesMismatch"
|
|
2672
|
+
InvalidColor = "InvalidColor"
|
|
2675
2673
|
}
|
|
2676
2674
|
interface CommandHandler<T> {
|
|
2677
2675
|
allowDispatch(command: T): CommandResult | CommandResult[];
|
|
@@ -3921,7 +3919,6 @@ declare class ConditionalFormatPlugin extends CorePlugin<ConditionalFormatState>
|
|
|
3921
3919
|
private checkMidBiggerThanMax;
|
|
3922
3920
|
private checkMinBiggerThanMid;
|
|
3923
3921
|
private checkCFValues;
|
|
3924
|
-
private checkDataBarRangeValues;
|
|
3925
3922
|
private removeConditionalFormatting;
|
|
3926
3923
|
private changeCFPriority;
|
|
3927
3924
|
}
|
|
@@ -4628,7 +4625,6 @@ declare class EvaluationConditionalFormatPlugin extends UIPlugin {
|
|
|
4628
4625
|
private applyIcon;
|
|
4629
4626
|
private computeIcon;
|
|
4630
4627
|
private applyDataBar;
|
|
4631
|
-
private getEvaluatedCellInZone;
|
|
4632
4628
|
/** Compute the color scale for the given range and CF rule, and apply in in the given computedStyle object */
|
|
4633
4629
|
private applyColorScale;
|
|
4634
4630
|
private computeColorDiffUnits;
|
|
@@ -5709,6 +5705,8 @@ declare function createCurrencyFormat(currency: Partial<Currency>): Format;
|
|
|
5709
5705
|
*/
|
|
5710
5706
|
declare function deepCopy<T>(obj: T): T;
|
|
5711
5707
|
declare function unquote(string: string, quoteChar?: "'" | '"'): string;
|
|
5708
|
+
/** Replace the excel-excluded characters of a sheetName */
|
|
5709
|
+
declare function sanitizeSheetName(sheetName: string, replacementChar?: string): string;
|
|
5712
5710
|
declare function isMarkdownLink(str: string): boolean;
|
|
5713
5711
|
/**
|
|
5714
5712
|
* Build a markdown link from a label and an url
|
|
@@ -12088,6 +12086,7 @@ declare const helpers: {
|
|
|
12088
12086
|
areDomainArgsFieldsValid: typeof areDomainArgsFieldsValid;
|
|
12089
12087
|
splitReference: typeof splitReference;
|
|
12090
12088
|
formatTickValue: typeof formatTickValue;
|
|
12089
|
+
sanitizeSheetName: typeof sanitizeSheetName;
|
|
12091
12090
|
};
|
|
12092
12091
|
declare const links: {
|
|
12093
12092
|
isMarkdownLink: typeof isMarkdownLink;
|