@odoo/o-spreadsheet 19.2.23 → 19.2.24
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.css
CHANGED
|
@@ -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 19.2.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.2.24
|
|
6
|
+
* @date 2026-08-10T12:32:28.468Z
|
|
7
|
+
* @hash 31fa530
|
|
8
8
|
*/
|
|
9
9
|
:root {
|
|
10
10
|
--os-gray-100: light-dark(#f9fafb, #1b1d26);
|
|
@@ -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 19.2.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.2.24
|
|
6
|
+
* @date 2026-08-10T12:32:26.974Z
|
|
7
|
+
* @hash 31fa530
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { App, Component, blockDom, markRaw, onMounted, onPatched, onWillPatch, onWillStart, onWillUnmount, onWillUpdateProps, status, toRaw, useChildSubEnv, useComponent, useEffect, useEnv, useExternalListener, useRef, useState, useSubEnv, whenReady, xml } from "@odoo/owl";
|
|
@@ -3940,19 +3940,58 @@ function applyVectorization(formula, args, acceptToVectorize = void 0) {
|
|
|
3940
3940
|
}
|
|
3941
3941
|
}
|
|
3942
3942
|
if (countVectorizedCol === 1 && countVectorizedRow === 1) return formula(...args);
|
|
3943
|
-
const
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
|
|
3947
|
-
|
|
3948
|
-
|
|
3943
|
+
const argsBuffer = new Array(args.length);
|
|
3944
|
+
const argGetters = [];
|
|
3945
|
+
const vectorizedIndices = [];
|
|
3946
|
+
for (let k = 0; k < args.length; k++) {
|
|
3947
|
+
const arg = args[k];
|
|
3948
|
+
switch (vectorArgsType?.[k]) {
|
|
3949
|
+
case "matrix":
|
|
3950
|
+
argGetters.push((i, j) => arg[i][j]);
|
|
3951
|
+
vectorizedIndices.push(k);
|
|
3952
|
+
break;
|
|
3953
|
+
case "horizontal":
|
|
3954
|
+
argGetters.push((i) => arg[i][0]);
|
|
3955
|
+
vectorizedIndices.push(k);
|
|
3956
|
+
break;
|
|
3957
|
+
case "vertical":
|
|
3958
|
+
argGetters.push((_i, j) => arg[0][j]);
|
|
3959
|
+
vectorizedIndices.push(k);
|
|
3960
|
+
break;
|
|
3961
|
+
case void 0:
|
|
3962
|
+
argsBuffer[k] = arg;
|
|
3963
|
+
break;
|
|
3949
3964
|
}
|
|
3950
|
-
}
|
|
3951
|
-
|
|
3952
|
-
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
|
|
3965
|
+
}
|
|
3966
|
+
const nbVectorized = vectorizedIndices.length;
|
|
3967
|
+
let callFormula;
|
|
3968
|
+
switch (argsBuffer.length) {
|
|
3969
|
+
case 1:
|
|
3970
|
+
callFormula = () => formula(argsBuffer[0]);
|
|
3971
|
+
break;
|
|
3972
|
+
case 2:
|
|
3973
|
+
callFormula = () => formula(argsBuffer[0], argsBuffer[1]);
|
|
3974
|
+
break;
|
|
3975
|
+
case 3:
|
|
3976
|
+
callFormula = () => formula(argsBuffer[0], argsBuffer[1], argsBuffer[2]);
|
|
3977
|
+
break;
|
|
3978
|
+
default: callFormula = () => formula(...argsBuffer);
|
|
3979
|
+
}
|
|
3980
|
+
const result = new Array(countVectorizedCol);
|
|
3981
|
+
for (let col = 0; col < countVectorizedCol; col++) {
|
|
3982
|
+
const column = new Array(countVectorizedRow);
|
|
3983
|
+
result[col] = column;
|
|
3984
|
+
for (let row = 0; row < countVectorizedRow; row++) {
|
|
3985
|
+
if (col > vectorizedColLimit - 1 || row > vectorizedRowLimit - 1) {
|
|
3986
|
+
column[row] = new NotAvailableError(_t("Array arguments to [[FUNCTION_NAME]] are of different size."));
|
|
3987
|
+
continue;
|
|
3988
|
+
}
|
|
3989
|
+
for (let k = 0; k < nbVectorized; k++) argsBuffer[vectorizedIndices[k]] = argGetters[k](col, row);
|
|
3990
|
+
const singleCellComputeResult = callFormula();
|
|
3991
|
+
column[row] = isMatrix(singleCellComputeResult) ? singleCellComputeResult[0][0] : singleCellComputeResult;
|
|
3992
|
+
}
|
|
3993
|
+
}
|
|
3994
|
+
return result;
|
|
3956
3995
|
}
|
|
3957
3996
|
/**
|
|
3958
3997
|
* This function allows to visit arguments and stop the visit if necessary.
|
|
@@ -17389,7 +17428,7 @@ var FigureComponent = class extends Component {
|
|
|
17389
17428
|
case "ArrowLeft":
|
|
17390
17429
|
case "ArrowRight":
|
|
17391
17430
|
case "ArrowUp":
|
|
17392
|
-
const { col, row, offset } = this.postionInBoundary(this.props.figureUI, ev.key);
|
|
17431
|
+
const { col, row, offset } = this.postionInBoundary(this.env.model.getters.getActiveSheetId(), this.props.figureUI, ev.key);
|
|
17393
17432
|
this.env.model.dispatch("UPDATE_FIGURE", {
|
|
17394
17433
|
sheetId: this.env.model.getters.getActiveSheetId(),
|
|
17395
17434
|
figureId: this.props.figureUI.id,
|
|
@@ -17413,34 +17452,52 @@ var FigureComponent = class extends Component {
|
|
|
17413
17452
|
break;
|
|
17414
17453
|
}
|
|
17415
17454
|
}
|
|
17416
|
-
postionInBoundary(
|
|
17417
|
-
|
|
17418
|
-
let { col, row, offset } = position;
|
|
17455
|
+
postionInBoundary(sheetId, figure, key) {
|
|
17456
|
+
let { col, row, offset } = figure;
|
|
17419
17457
|
offset = { ...offset };
|
|
17458
|
+
const maxAnchor = this.env.model.getters.getMaxAnchorOffset(sheetId, figure.height, figure.width);
|
|
17420
17459
|
switch (key) {
|
|
17421
17460
|
case "ArrowUp":
|
|
17422
17461
|
if (offset.y === 0) {
|
|
17423
17462
|
row--;
|
|
17463
|
+
while (row > 0 && this.env.model.getters.isRowHiddenByUser(sheetId, row)) row--;
|
|
17424
17464
|
offset.y = this.env.model.getters.getRowSize(sheetId, row) - 1;
|
|
17425
17465
|
} else offset.y--;
|
|
17426
17466
|
break;
|
|
17427
17467
|
case "ArrowLeft":
|
|
17428
17468
|
if (offset.x === 0) {
|
|
17429
17469
|
col--;
|
|
17470
|
+
while (col > 0 && this.env.model.getters.isColHiddenByUser(sheetId, col)) col--;
|
|
17430
17471
|
offset.x = this.env.model.getters.getColSize(sheetId, col) - 1;
|
|
17431
17472
|
} else offset.x--;
|
|
17432
17473
|
break;
|
|
17433
17474
|
case "ArrowDown":
|
|
17434
17475
|
if (offset.y === this.env.model.getters.getRowSize(sheetId, row)) {
|
|
17435
17476
|
row++;
|
|
17477
|
+
while (row <= maxAnchor.row && this.env.model.getters.isRowHiddenByUser(sheetId, row)) row++;
|
|
17436
17478
|
offset.y = 0;
|
|
17437
17479
|
} else offset.y++;
|
|
17438
17480
|
break;
|
|
17439
17481
|
case "ArrowRight": if (offset.x === this.env.model.getters.getColSize(sheetId, row)) {
|
|
17440
17482
|
col++;
|
|
17483
|
+
while (col <= maxAnchor.col && this.env.model.getters.isColHiddenByUser(sheetId, col)) col++;
|
|
17441
17484
|
offset.x = 0;
|
|
17442
17485
|
} else offset.x++;
|
|
17443
17486
|
}
|
|
17487
|
+
if (col < 0) {
|
|
17488
|
+
col = 0;
|
|
17489
|
+
offset.x = 0;
|
|
17490
|
+
} else if (col > maxAnchor.col || col === maxAnchor.col && offset.x > maxAnchor.offset.x) {
|
|
17491
|
+
col = maxAnchor.col;
|
|
17492
|
+
offset.x = maxAnchor.offset.x;
|
|
17493
|
+
}
|
|
17494
|
+
if (row < 0) {
|
|
17495
|
+
row = 0;
|
|
17496
|
+
offset.y = 0;
|
|
17497
|
+
} else if (row > maxAnchor.row || row === maxAnchor.row && offset.y > maxAnchor.offset.y) {
|
|
17498
|
+
row = maxAnchor.row;
|
|
17499
|
+
offset.y = maxAnchor.offset.y;
|
|
17500
|
+
}
|
|
17444
17501
|
return {
|
|
17445
17502
|
col,
|
|
17446
17503
|
row,
|
|
@@ -17711,12 +17768,15 @@ function validateArguments(descr) {
|
|
|
17711
17768
|
//#endregion
|
|
17712
17769
|
//#region src/functions/create_compute_function.ts
|
|
17713
17770
|
function createComputeFunction(descr) {
|
|
17771
|
+
let currentArgDefinitions = [];
|
|
17714
17772
|
function vectorizedCompute(...args) {
|
|
17715
17773
|
const acceptToVectorize = [];
|
|
17774
|
+
currentArgDefinitions = new Array(args.length);
|
|
17716
17775
|
const getArgToFocus = argTargeting(descr, args.length);
|
|
17717
17776
|
for (let i = 0; i < args.length; i++) {
|
|
17718
17777
|
const argIndex = getArgToFocus(i).index ?? -1;
|
|
17719
17778
|
const argDefinition = descr.args[argIndex];
|
|
17779
|
+
currentArgDefinitions[i] = argDefinition;
|
|
17720
17780
|
const arg = args[i];
|
|
17721
17781
|
if (!isMatrix(arg) && argDefinition.acceptMatrixOnly) throw new BadExpressionError(_t("Function %s expects the parameter '%s' to be reference to a cell or range.", descr.name, (i + 1).toString()));
|
|
17722
17782
|
acceptToVectorize.push(!argDefinition.acceptMatrix);
|
|
@@ -17731,8 +17791,7 @@ function createComputeFunction(descr) {
|
|
|
17731
17791
|
function errorHandlingCompute(...args) {
|
|
17732
17792
|
for (let i = 0; i < args.length; i++) {
|
|
17733
17793
|
const arg = args[i];
|
|
17734
|
-
|
|
17735
|
-
if (!descr.args[getArgToFocus(i).index ?? i].acceptErrors && !isMatrix(arg) && isEvaluationError(arg?.value)) return arg;
|
|
17794
|
+
if (!currentArgDefinitions[i].acceptErrors && !isMatrix(arg) && isEvaluationError(arg?.value)) return arg;
|
|
17736
17795
|
}
|
|
17737
17796
|
try {
|
|
17738
17797
|
return computeFunctionToObject.apply(this, args);
|
|
@@ -50757,7 +50816,13 @@ var CellComposerStore = class extends AbstractComposerStore {
|
|
|
50757
50816
|
const cell = this.getters.getEvaluatedCell(position);
|
|
50758
50817
|
if (cell.link && !isFormula(content)) content = markdownLink(content, cell.link.url);
|
|
50759
50818
|
const currentFormat = this.getters.getCell(position)?.format;
|
|
50760
|
-
const
|
|
50819
|
+
const isCurrentFormatDate = currentFormat && isDateTimeFormat(currentFormat);
|
|
50820
|
+
const contentDateFormat = detectDateFormat(content, this.getters.getLocale());
|
|
50821
|
+
let afterFormat;
|
|
50822
|
+
if (currentFormat !== "@") {
|
|
50823
|
+
if (contentDateFormat && !isCurrentFormatDate) afterFormat = contentDateFormat;
|
|
50824
|
+
else if (isCurrentFormatDate && isNumber(content, this.getters.getLocale())) afterFormat = "";
|
|
50825
|
+
}
|
|
50761
50826
|
this.addHeadersForSpreadingFormula(content);
|
|
50762
50827
|
result = this.model.dispatch("UPDATE_CELL", {
|
|
50763
50828
|
...this.currentEditedCell,
|
|
@@ -71430,6 +71495,10 @@ function inverseCreateFigure(cmd) {
|
|
|
71430
71495
|
}
|
|
71431
71496
|
function inverseCreateChart(cmd) {
|
|
71432
71497
|
return [{
|
|
71498
|
+
type: "DELETE_CHART",
|
|
71499
|
+
chartId: cmd.chartId,
|
|
71500
|
+
sheetId: cmd.sheetId
|
|
71501
|
+
}, {
|
|
71433
71502
|
type: "DELETE_FIGURE",
|
|
71434
71503
|
figureId: cmd.figureId,
|
|
71435
71504
|
sheetId: cmd.sheetId
|
|
@@ -81733,6 +81802,6 @@ const chartHelpers = {
|
|
|
81733
81802
|
//#endregion
|
|
81734
81803
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, ClientDisconnectedError, CommandResult, CompiledFormula, CorePlugin, CoreViewPlugin, DEFAULT_LOCALE, DEFAULT_LOCALES, DispatchResult, EvaluationError, LocalTransportService, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, canExecuteInReadonly, categories, chartHelpers, components, constants, convertAstNodes, coreTypes, createAutocompleteArgumentsProvider, findCellInNewZone, functionCache, getCaretDownSvg, getCaretUpSvg, helpers, hooks, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, isCoreCommand, isSheetDependent, iterateAstNodes, links, load, lockedSheetAllowedCommands, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
|
|
81735
81804
|
|
|
81736
|
-
__info__.version = "19.2.
|
|
81737
|
-
__info__.date = "2026-
|
|
81738
|
-
__info__.hash = "
|
|
81805
|
+
__info__.version = "19.2.24";
|
|
81806
|
+
__info__.date = "2026-08-10T12:32:26.974Z";
|
|
81807
|
+
__info__.hash = "31fa530";
|
|
@@ -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 19.2.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.2.24
|
|
6
|
+
* @date 2026-08-10T12:32:26.974Z
|
|
7
|
+
* @hash 31fa530
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function(exports, _odoo_owl) {
|
|
@@ -3942,19 +3942,58 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
3942
3942
|
}
|
|
3943
3943
|
}
|
|
3944
3944
|
if (countVectorizedCol === 1 && countVectorizedRow === 1) return formula(...args);
|
|
3945
|
-
const
|
|
3946
|
-
|
|
3947
|
-
|
|
3948
|
-
|
|
3949
|
-
|
|
3950
|
-
|
|
3945
|
+
const argsBuffer = new Array(args.length);
|
|
3946
|
+
const argGetters = [];
|
|
3947
|
+
const vectorizedIndices = [];
|
|
3948
|
+
for (let k = 0; k < args.length; k++) {
|
|
3949
|
+
const arg = args[k];
|
|
3950
|
+
switch (vectorArgsType?.[k]) {
|
|
3951
|
+
case "matrix":
|
|
3952
|
+
argGetters.push((i, j) => arg[i][j]);
|
|
3953
|
+
vectorizedIndices.push(k);
|
|
3954
|
+
break;
|
|
3955
|
+
case "horizontal":
|
|
3956
|
+
argGetters.push((i) => arg[i][0]);
|
|
3957
|
+
vectorizedIndices.push(k);
|
|
3958
|
+
break;
|
|
3959
|
+
case "vertical":
|
|
3960
|
+
argGetters.push((_i, j) => arg[0][j]);
|
|
3961
|
+
vectorizedIndices.push(k);
|
|
3962
|
+
break;
|
|
3963
|
+
case void 0:
|
|
3964
|
+
argsBuffer[k] = arg;
|
|
3965
|
+
break;
|
|
3951
3966
|
}
|
|
3952
|
-
}
|
|
3953
|
-
|
|
3954
|
-
|
|
3955
|
-
|
|
3956
|
-
|
|
3957
|
-
|
|
3967
|
+
}
|
|
3968
|
+
const nbVectorized = vectorizedIndices.length;
|
|
3969
|
+
let callFormula;
|
|
3970
|
+
switch (argsBuffer.length) {
|
|
3971
|
+
case 1:
|
|
3972
|
+
callFormula = () => formula(argsBuffer[0]);
|
|
3973
|
+
break;
|
|
3974
|
+
case 2:
|
|
3975
|
+
callFormula = () => formula(argsBuffer[0], argsBuffer[1]);
|
|
3976
|
+
break;
|
|
3977
|
+
case 3:
|
|
3978
|
+
callFormula = () => formula(argsBuffer[0], argsBuffer[1], argsBuffer[2]);
|
|
3979
|
+
break;
|
|
3980
|
+
default: callFormula = () => formula(...argsBuffer);
|
|
3981
|
+
}
|
|
3982
|
+
const result = new Array(countVectorizedCol);
|
|
3983
|
+
for (let col = 0; col < countVectorizedCol; col++) {
|
|
3984
|
+
const column = new Array(countVectorizedRow);
|
|
3985
|
+
result[col] = column;
|
|
3986
|
+
for (let row = 0; row < countVectorizedRow; row++) {
|
|
3987
|
+
if (col > vectorizedColLimit - 1 || row > vectorizedRowLimit - 1) {
|
|
3988
|
+
column[row] = new NotAvailableError(_t("Array arguments to [[FUNCTION_NAME]] are of different size."));
|
|
3989
|
+
continue;
|
|
3990
|
+
}
|
|
3991
|
+
for (let k = 0; k < nbVectorized; k++) argsBuffer[vectorizedIndices[k]] = argGetters[k](col, row);
|
|
3992
|
+
const singleCellComputeResult = callFormula();
|
|
3993
|
+
column[row] = isMatrix(singleCellComputeResult) ? singleCellComputeResult[0][0] : singleCellComputeResult;
|
|
3994
|
+
}
|
|
3995
|
+
}
|
|
3996
|
+
return result;
|
|
3958
3997
|
}
|
|
3959
3998
|
/**
|
|
3960
3999
|
* This function allows to visit arguments and stop the visit if necessary.
|
|
@@ -17391,7 +17430,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
17391
17430
|
case "ArrowLeft":
|
|
17392
17431
|
case "ArrowRight":
|
|
17393
17432
|
case "ArrowUp":
|
|
17394
|
-
const { col, row, offset } = this.postionInBoundary(this.props.figureUI, ev.key);
|
|
17433
|
+
const { col, row, offset } = this.postionInBoundary(this.env.model.getters.getActiveSheetId(), this.props.figureUI, ev.key);
|
|
17395
17434
|
this.env.model.dispatch("UPDATE_FIGURE", {
|
|
17396
17435
|
sheetId: this.env.model.getters.getActiveSheetId(),
|
|
17397
17436
|
figureId: this.props.figureUI.id,
|
|
@@ -17415,34 +17454,52 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
17415
17454
|
break;
|
|
17416
17455
|
}
|
|
17417
17456
|
}
|
|
17418
|
-
postionInBoundary(
|
|
17419
|
-
|
|
17420
|
-
let { col, row, offset } = position;
|
|
17457
|
+
postionInBoundary(sheetId, figure, key) {
|
|
17458
|
+
let { col, row, offset } = figure;
|
|
17421
17459
|
offset = { ...offset };
|
|
17460
|
+
const maxAnchor = this.env.model.getters.getMaxAnchorOffset(sheetId, figure.height, figure.width);
|
|
17422
17461
|
switch (key) {
|
|
17423
17462
|
case "ArrowUp":
|
|
17424
17463
|
if (offset.y === 0) {
|
|
17425
17464
|
row--;
|
|
17465
|
+
while (row > 0 && this.env.model.getters.isRowHiddenByUser(sheetId, row)) row--;
|
|
17426
17466
|
offset.y = this.env.model.getters.getRowSize(sheetId, row) - 1;
|
|
17427
17467
|
} else offset.y--;
|
|
17428
17468
|
break;
|
|
17429
17469
|
case "ArrowLeft":
|
|
17430
17470
|
if (offset.x === 0) {
|
|
17431
17471
|
col--;
|
|
17472
|
+
while (col > 0 && this.env.model.getters.isColHiddenByUser(sheetId, col)) col--;
|
|
17432
17473
|
offset.x = this.env.model.getters.getColSize(sheetId, col) - 1;
|
|
17433
17474
|
} else offset.x--;
|
|
17434
17475
|
break;
|
|
17435
17476
|
case "ArrowDown":
|
|
17436
17477
|
if (offset.y === this.env.model.getters.getRowSize(sheetId, row)) {
|
|
17437
17478
|
row++;
|
|
17479
|
+
while (row <= maxAnchor.row && this.env.model.getters.isRowHiddenByUser(sheetId, row)) row++;
|
|
17438
17480
|
offset.y = 0;
|
|
17439
17481
|
} else offset.y++;
|
|
17440
17482
|
break;
|
|
17441
17483
|
case "ArrowRight": if (offset.x === this.env.model.getters.getColSize(sheetId, row)) {
|
|
17442
17484
|
col++;
|
|
17485
|
+
while (col <= maxAnchor.col && this.env.model.getters.isColHiddenByUser(sheetId, col)) col++;
|
|
17443
17486
|
offset.x = 0;
|
|
17444
17487
|
} else offset.x++;
|
|
17445
17488
|
}
|
|
17489
|
+
if (col < 0) {
|
|
17490
|
+
col = 0;
|
|
17491
|
+
offset.x = 0;
|
|
17492
|
+
} else if (col > maxAnchor.col || col === maxAnchor.col && offset.x > maxAnchor.offset.x) {
|
|
17493
|
+
col = maxAnchor.col;
|
|
17494
|
+
offset.x = maxAnchor.offset.x;
|
|
17495
|
+
}
|
|
17496
|
+
if (row < 0) {
|
|
17497
|
+
row = 0;
|
|
17498
|
+
offset.y = 0;
|
|
17499
|
+
} else if (row > maxAnchor.row || row === maxAnchor.row && offset.y > maxAnchor.offset.y) {
|
|
17500
|
+
row = maxAnchor.row;
|
|
17501
|
+
offset.y = maxAnchor.offset.y;
|
|
17502
|
+
}
|
|
17446
17503
|
return {
|
|
17447
17504
|
col,
|
|
17448
17505
|
row,
|
|
@@ -17713,12 +17770,15 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
17713
17770
|
//#endregion
|
|
17714
17771
|
//#region src/functions/create_compute_function.ts
|
|
17715
17772
|
function createComputeFunction(descr) {
|
|
17773
|
+
let currentArgDefinitions = [];
|
|
17716
17774
|
function vectorizedCompute(...args) {
|
|
17717
17775
|
const acceptToVectorize = [];
|
|
17776
|
+
currentArgDefinitions = new Array(args.length);
|
|
17718
17777
|
const getArgToFocus = argTargeting(descr, args.length);
|
|
17719
17778
|
for (let i = 0; i < args.length; i++) {
|
|
17720
17779
|
const argIndex = getArgToFocus(i).index ?? -1;
|
|
17721
17780
|
const argDefinition = descr.args[argIndex];
|
|
17781
|
+
currentArgDefinitions[i] = argDefinition;
|
|
17722
17782
|
const arg = args[i];
|
|
17723
17783
|
if (!isMatrix(arg) && argDefinition.acceptMatrixOnly) throw new BadExpressionError(_t("Function %s expects the parameter '%s' to be reference to a cell or range.", descr.name, (i + 1).toString()));
|
|
17724
17784
|
acceptToVectorize.push(!argDefinition.acceptMatrix);
|
|
@@ -17733,8 +17793,7 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
17733
17793
|
function errorHandlingCompute(...args) {
|
|
17734
17794
|
for (let i = 0; i < args.length; i++) {
|
|
17735
17795
|
const arg = args[i];
|
|
17736
|
-
|
|
17737
|
-
if (!descr.args[getArgToFocus(i).index ?? i].acceptErrors && !isMatrix(arg) && isEvaluationError(arg?.value)) return arg;
|
|
17796
|
+
if (!currentArgDefinitions[i].acceptErrors && !isMatrix(arg) && isEvaluationError(arg?.value)) return arg;
|
|
17738
17797
|
}
|
|
17739
17798
|
try {
|
|
17740
17799
|
return computeFunctionToObject.apply(this, args);
|
|
@@ -50759,7 +50818,13 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
50759
50818
|
const cell = this.getters.getEvaluatedCell(position);
|
|
50760
50819
|
if (cell.link && !isFormula(content)) content = markdownLink(content, cell.link.url);
|
|
50761
50820
|
const currentFormat = this.getters.getCell(position)?.format;
|
|
50762
|
-
const
|
|
50821
|
+
const isCurrentFormatDate = currentFormat && isDateTimeFormat(currentFormat);
|
|
50822
|
+
const contentDateFormat = detectDateFormat(content, this.getters.getLocale());
|
|
50823
|
+
let afterFormat;
|
|
50824
|
+
if (currentFormat !== "@") {
|
|
50825
|
+
if (contentDateFormat && !isCurrentFormatDate) afterFormat = contentDateFormat;
|
|
50826
|
+
else if (isCurrentFormatDate && isNumber(content, this.getters.getLocale())) afterFormat = "";
|
|
50827
|
+
}
|
|
50763
50828
|
this.addHeadersForSpreadingFormula(content);
|
|
50764
50829
|
result = this.model.dispatch("UPDATE_CELL", {
|
|
50765
50830
|
...this.currentEditedCell,
|
|
@@ -71432,6 +71497,10 @@ stores.inject(MyMetaStore, storeInstance);
|
|
|
71432
71497
|
}
|
|
71433
71498
|
function inverseCreateChart(cmd) {
|
|
71434
71499
|
return [{
|
|
71500
|
+
type: "DELETE_CHART",
|
|
71501
|
+
chartId: cmd.chartId,
|
|
71502
|
+
sheetId: cmd.sheetId
|
|
71503
|
+
}, {
|
|
71435
71504
|
type: "DELETE_FIGURE",
|
|
71436
71505
|
figureId: cmd.figureId,
|
|
71437
71506
|
sheetId: cmd.sheetId
|
|
@@ -81793,8 +81862,8 @@ exports.stores = stores;
|
|
|
81793
81862
|
exports.tokenColors = tokenColors;
|
|
81794
81863
|
exports.tokenize = tokenize;
|
|
81795
81864
|
|
|
81796
|
-
__info__.version = "19.2.
|
|
81797
|
-
__info__.date = "2026-
|
|
81798
|
-
__info__.hash = "
|
|
81865
|
+
__info__.version = "19.2.24";
|
|
81866
|
+
__info__.date = "2026-08-10T12:32:26.974Z";
|
|
81867
|
+
__info__.hash = "31fa530";
|
|
81799
81868
|
|
|
81800
81869
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|