@odoo/o-spreadsheet 17.0.8 → 17.0.10
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 +138 -109
- package/dist/o-spreadsheet.d.ts +11 -6
- package/dist/o-spreadsheet.esm.js +138 -109
- package/dist/o-spreadsheet.iife.js +138 -109
- package/dist/o-spreadsheet.iife.min.js +252 -259
- package/dist/o_spreadsheet.xml +5 -5
- package/package.json +1 -1
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
4
4
|
* @see https://github.com/odoo/o-spreadsheet
|
|
5
|
-
* @version 17.0.
|
|
6
|
-
* @date 2024-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 17.0.10
|
|
6
|
+
* @date 2024-02-02T13:48:28.727Z
|
|
7
|
+
* @hash be06aa9
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
(function (exports, owl) {
|
|
@@ -2121,6 +2121,7 @@
|
|
|
2121
2121
|
CommandResult["BlockingValidationRule"] = "BlockingValidationRule";
|
|
2122
2122
|
CommandResult["InvalidCopyPasteSelection"] = "InvalidCopyPasteSelection";
|
|
2123
2123
|
CommandResult["NoChanges"] = "NoChanges";
|
|
2124
|
+
CommandResult["InvalidInputId"] = "InvalidInputId";
|
|
2124
2125
|
})(exports.CommandResult || (exports.CommandResult = {}));
|
|
2125
2126
|
|
|
2126
2127
|
const DEFAULT_LOCALES = [
|
|
@@ -3265,27 +3266,30 @@
|
|
|
3265
3266
|
}
|
|
3266
3267
|
function createLargeNumberFormat(format, magnitude, postFix, locale) {
|
|
3267
3268
|
const internalFormat = parseFormat(format || "#,##0");
|
|
3268
|
-
const largeNumberFormat =
|
|
3269
|
-
|
|
3270
|
-
|
|
3271
|
-
|
|
3272
|
-
|
|
3273
|
-
|
|
3274
|
-
format: {
|
|
3275
|
-
...formatPart.format,
|
|
3276
|
-
magnitude,
|
|
3277
|
-
decimalPart: undefined,
|
|
3278
|
-
},
|
|
3279
|
-
},
|
|
3280
|
-
{
|
|
3281
|
-
type: "STRING",
|
|
3282
|
-
format: postFix,
|
|
3283
|
-
},
|
|
3284
|
-
];
|
|
3269
|
+
const largeNumberFormat = [];
|
|
3270
|
+
for (let i = 0; i < internalFormat.length; i++) {
|
|
3271
|
+
const formatPart = internalFormat[i];
|
|
3272
|
+
if (formatPart.type !== "NUMBER") {
|
|
3273
|
+
largeNumberFormat.push(formatPart);
|
|
3274
|
+
continue;
|
|
3285
3275
|
}
|
|
3286
|
-
|
|
3287
|
-
|
|
3288
|
-
|
|
3276
|
+
largeNumberFormat.push({
|
|
3277
|
+
...formatPart,
|
|
3278
|
+
format: {
|
|
3279
|
+
...formatPart.format,
|
|
3280
|
+
magnitude,
|
|
3281
|
+
decimalPart: undefined,
|
|
3282
|
+
},
|
|
3283
|
+
});
|
|
3284
|
+
largeNumberFormat.push({
|
|
3285
|
+
type: "STRING",
|
|
3286
|
+
format: postFix,
|
|
3287
|
+
});
|
|
3288
|
+
const nextFormatPart = internalFormat[i + 1];
|
|
3289
|
+
if (nextFormatPart?.type === "STRING" && ["k", "m", "b"].includes(nextFormatPart.format)) {
|
|
3290
|
+
i++;
|
|
3291
|
+
}
|
|
3292
|
+
}
|
|
3289
3293
|
return convertInternalFormatToFormat(largeNumberFormat);
|
|
3290
3294
|
}
|
|
3291
3295
|
function changeDecimalPlaces(format, step, locale) {
|
|
@@ -4929,14 +4933,8 @@
|
|
|
4929
4933
|
: undefined));
|
|
4930
4934
|
}
|
|
4931
4935
|
}
|
|
4932
|
-
else if (zone.left === zone.right && zone.top === zone.bottom) {
|
|
4933
|
-
// A single cell. If it's only the title, the dataset is not added.
|
|
4934
|
-
if (!dataSetsHaveTitle) {
|
|
4935
|
-
dataSets.push(createDataSet(getters, dataSetSheetId, zone, undefined));
|
|
4936
|
-
}
|
|
4937
|
-
}
|
|
4938
4936
|
else {
|
|
4939
|
-
/* 1 row or 1 column */
|
|
4937
|
+
/* 1 cell, 1 row or 1 column */
|
|
4940
4938
|
dataSets.push(createDataSet(getters, dataSetSheetId, zone, dataSetsHaveTitle
|
|
4941
4939
|
? {
|
|
4942
4940
|
top: zone.top,
|
|
@@ -4985,8 +4983,10 @@
|
|
|
4985
4983
|
}
|
|
4986
4984
|
const dataRange = ds.dataRange.clone({ zone: dataZone });
|
|
4987
4985
|
return {
|
|
4988
|
-
label: ds.labelCell
|
|
4989
|
-
|
|
4986
|
+
label: ds.labelCell
|
|
4987
|
+
? getters.getRangeString(ds.labelCell, "forceSheetReference", { useFixedReference: true })
|
|
4988
|
+
: undefined,
|
|
4989
|
+
range: getters.getRangeString(dataRange, "forceSheetReference", { useFixedReference: true }),
|
|
4990
4990
|
};
|
|
4991
4991
|
}
|
|
4992
4992
|
function toExcelLabelRange(getters, labelRange, shouldRemoveFirstLabel) {
|
|
@@ -4999,7 +4999,7 @@
|
|
|
4999
4999
|
zone.top = zone.top + 1;
|
|
5000
5000
|
}
|
|
5001
5001
|
const range = labelRange.clone({ zone });
|
|
5002
|
-
return getters.getRangeString(range, "forceSheetReference");
|
|
5002
|
+
return getters.getRangeString(range, "forceSheetReference", { useFixedReference: true });
|
|
5003
5003
|
}
|
|
5004
5004
|
/**
|
|
5005
5005
|
* Transform a chart definition which supports dataSets (dataSets and LabelRange)
|
|
@@ -8589,7 +8589,7 @@
|
|
|
8589
8589
|
return undefined;
|
|
8590
8590
|
const dataSets = this.dataSets
|
|
8591
8591
|
.map((ds) => toExcelDataset(this.getters, ds))
|
|
8592
|
-
.filter((ds) => ds.range !== ""
|
|
8592
|
+
.filter((ds) => ds.range !== "" && ds.range !== INCORRECT_RANGE_STRING);
|
|
8593
8593
|
const labelRange = toExcelLabelRange(this.getters, this.labelRange, shouldRemoveFirstLabel(this.labelRange, this.dataSets[0], this.dataSetsHaveTitle));
|
|
8594
8594
|
return {
|
|
8595
8595
|
...this.getDefinition(),
|
|
@@ -9167,7 +9167,7 @@
|
|
|
9167
9167
|
return undefined;
|
|
9168
9168
|
const dataSets = this.dataSets
|
|
9169
9169
|
.map((ds) => toExcelDataset(this.getters, ds))
|
|
9170
|
-
.filter((ds) => ds.range !== ""
|
|
9170
|
+
.filter((ds) => ds.range !== "" && ds.range !== INCORRECT_RANGE_STRING);
|
|
9171
9171
|
const labelRange = toExcelLabelRange(this.getters, this.labelRange, shouldRemoveFirstLabel(this.labelRange, this.dataSets[0], this.dataSetsHaveTitle));
|
|
9172
9172
|
return {
|
|
9173
9173
|
...this.getDefinition(),
|
|
@@ -9473,7 +9473,7 @@
|
|
|
9473
9473
|
return undefined;
|
|
9474
9474
|
const dataSets = this.dataSets
|
|
9475
9475
|
.map((ds) => toExcelDataset(this.getters, ds))
|
|
9476
|
-
.filter((ds) => ds.range !== ""
|
|
9476
|
+
.filter((ds) => ds.range !== "" && ds.range !== INCORRECT_RANGE_STRING);
|
|
9477
9477
|
const labelRange = toExcelLabelRange(this.getters, this.labelRange, shouldRemoveFirstLabel(this.labelRange, this.dataSets[0], this.dataSetsHaveTitle));
|
|
9478
9478
|
return {
|
|
9479
9479
|
...this.getDefinition(),
|
|
@@ -19916,19 +19916,20 @@
|
|
|
19916
19916
|
const formatNumberCurrency = createFormatActionSpec({
|
|
19917
19917
|
name: _t("Currency"),
|
|
19918
19918
|
descriptionValue: 1000.12,
|
|
19919
|
-
format: (env) => env.model.config.defaultCurrencyFormat,
|
|
19919
|
+
format: (env) => env.model.config.defaultCurrencyFormat ?? DEFAULT_CURRENCY_FORMAT,
|
|
19920
19920
|
});
|
|
19921
19921
|
const formatNumberCurrencyRounded = {
|
|
19922
19922
|
...createFormatActionSpec({
|
|
19923
19923
|
name: _t("Currency rounded"),
|
|
19924
19924
|
descriptionValue: 1000,
|
|
19925
|
-
format: (env) => roundFormat(env.model.config.defaultCurrencyFormat),
|
|
19925
|
+
format: (env) => roundFormat(env.model.config.defaultCurrencyFormat ?? DEFAULT_CURRENCY_FORMAT),
|
|
19926
19926
|
}),
|
|
19927
19927
|
isVisible: (env) => {
|
|
19928
19928
|
const currencyFormat = env.model.config.defaultCurrencyFormat;
|
|
19929
|
-
return currencyFormat !== roundFormat(currencyFormat);
|
|
19929
|
+
return currencyFormat !== roundFormat(currencyFormat ?? DEFAULT_CURRENCY_FORMAT);
|
|
19930
19930
|
},
|
|
19931
19931
|
};
|
|
19932
|
+
const DEFAULT_CURRENCY_FORMAT = "[$$]#,##0.00";
|
|
19932
19933
|
const EXAMPLE_DATE = parseLiteral("2023/09/26 10:43:00 PM", DEFAULT_LOCALE);
|
|
19933
19934
|
const formatCustomCurrency = {
|
|
19934
19935
|
name: _t("Custom currency"),
|
|
@@ -26807,6 +26808,9 @@
|
|
|
26807
26808
|
const token = tokens.filter((token) => token.value.includes(currentSelectedText) &&
|
|
26808
26809
|
token.start <= currentSelection.start &&
|
|
26809
26810
|
token.end >= currentSelection.end)[0];
|
|
26811
|
+
if (!token) {
|
|
26812
|
+
return;
|
|
26813
|
+
}
|
|
26810
26814
|
if (token.type === "REFERENCE") {
|
|
26811
26815
|
this.env.model.dispatch("CHANGE_COMPOSER_CURSOR_SELECTION", {
|
|
26812
26816
|
start: token.start,
|
|
@@ -29345,6 +29349,7 @@
|
|
|
29345
29349
|
GROUP_HEADERS: groupHeadersMenuRegistry,
|
|
29346
29350
|
UNGROUP_HEADERS: unGroupHeadersMenuRegistry,
|
|
29347
29351
|
};
|
|
29352
|
+
const MODIFIER_KEYS = ["Shift", "Control", "Alt", "Meta"];
|
|
29348
29353
|
// -----------------------------------------------------------------------------
|
|
29349
29354
|
// JS
|
|
29350
29355
|
// -----------------------------------------------------------------------------
|
|
@@ -29717,16 +29722,15 @@
|
|
|
29717
29722
|
}
|
|
29718
29723
|
}
|
|
29719
29724
|
onKeydown(ev) {
|
|
29720
|
-
const eventKey = ev.key.toUpperCase();
|
|
29721
29725
|
let keyDownString = "";
|
|
29722
|
-
if (
|
|
29723
|
-
|
|
29724
|
-
|
|
29725
|
-
|
|
29726
|
-
|
|
29727
|
-
|
|
29728
|
-
|
|
29729
|
-
|
|
29726
|
+
if (!MODIFIER_KEYS.includes(ev.key)) {
|
|
29727
|
+
if (isCtrlKey(ev))
|
|
29728
|
+
keyDownString += "CTRL+";
|
|
29729
|
+
if (ev.altKey)
|
|
29730
|
+
keyDownString += "ALT+";
|
|
29731
|
+
if (ev.shiftKey)
|
|
29732
|
+
keyDownString += "SHIFT+";
|
|
29733
|
+
}
|
|
29730
29734
|
keyDownString += ev.key.toUpperCase();
|
|
29731
29735
|
let handler = this.keyDownMapping[keyDownString];
|
|
29732
29736
|
if (handler) {
|
|
@@ -35564,6 +35568,9 @@
|
|
|
35564
35568
|
format: cell.format ? getItemId(cell.format, formats) : undefined,
|
|
35565
35569
|
content: cell.content || undefined,
|
|
35566
35570
|
};
|
|
35571
|
+
if (cell instanceof FormulaCellWithDependencies) {
|
|
35572
|
+
cells[xc].content = cell.contentWithFixedReferences || undefined;
|
|
35573
|
+
}
|
|
35567
35574
|
}
|
|
35568
35575
|
_sheet.cells = cells;
|
|
35569
35576
|
}
|
|
@@ -35607,13 +35614,13 @@
|
|
|
35607
35614
|
/*
|
|
35608
35615
|
* Reconstructs the original formula string based on a normalized form and its dependencies
|
|
35609
35616
|
*/
|
|
35610
|
-
getFormulaCellContent(sheetId, compiledFormula, dependencies) {
|
|
35617
|
+
getFormulaCellContent(sheetId, compiledFormula, dependencies, useFixedReference = false) {
|
|
35611
35618
|
const ranges = dependencies || compiledFormula.dependencies;
|
|
35612
35619
|
let rangeIndex = 0;
|
|
35613
35620
|
return concat(compiledFormula.tokens.map((token) => {
|
|
35614
35621
|
if (token.type === "REFERENCE") {
|
|
35615
35622
|
const range = ranges[rangeIndex++];
|
|
35616
|
-
return this.getters.getRangeString(range, sheetId);
|
|
35623
|
+
return this.getters.getRangeString(range, sheetId, { useFixedReference });
|
|
35617
35624
|
}
|
|
35618
35625
|
return token.value;
|
|
35619
35626
|
}));
|
|
@@ -35882,6 +35889,18 @@
|
|
|
35882
35889
|
get content() {
|
|
35883
35890
|
return concat(this.compiledFormula.tokens.map((token) => token.value));
|
|
35884
35891
|
}
|
|
35892
|
+
get contentWithFixedReferences() {
|
|
35893
|
+
let rangeIndex = 0;
|
|
35894
|
+
return concat(this.compiledFormula.tokens.map((token) => {
|
|
35895
|
+
if (token.type === "REFERENCE") {
|
|
35896
|
+
const index = rangeIndex++;
|
|
35897
|
+
return this.getRangeString(this.compiledFormula.dependencies[index], this.sheetId, {
|
|
35898
|
+
useFixedReference: true,
|
|
35899
|
+
});
|
|
35900
|
+
}
|
|
35901
|
+
return token.value;
|
|
35902
|
+
}));
|
|
35903
|
+
}
|
|
35885
35904
|
}
|
|
35886
35905
|
class RangeReferenceToken {
|
|
35887
35906
|
getValue;
|
|
@@ -36186,7 +36205,13 @@
|
|
|
36186
36205
|
}
|
|
36187
36206
|
}
|
|
36188
36207
|
exportForExcel(data) {
|
|
36189
|
-
|
|
36208
|
+
if (data.sheets) {
|
|
36209
|
+
for (let sheet of data.sheets) {
|
|
36210
|
+
if (this.cfRules[sheet.id]) {
|
|
36211
|
+
sheet.conditionalFormats = this.cfRules[sheet.id].map((rule) => this.mapToConditionalFormat(sheet.id, rule, { useFixedReference: true }));
|
|
36212
|
+
}
|
|
36213
|
+
}
|
|
36214
|
+
}
|
|
36190
36215
|
}
|
|
36191
36216
|
// ---------------------------------------------------------------------------
|
|
36192
36217
|
// Getters
|
|
@@ -36251,11 +36276,11 @@
|
|
|
36251
36276
|
// ---------------------------------------------------------------------------
|
|
36252
36277
|
// Private
|
|
36253
36278
|
// ---------------------------------------------------------------------------
|
|
36254
|
-
mapToConditionalFormat(sheetId, cf) {
|
|
36279
|
+
mapToConditionalFormat(sheetId, cf, { useFixedReference } = { useFixedReference: false }) {
|
|
36255
36280
|
return {
|
|
36256
36281
|
...cf,
|
|
36257
36282
|
ranges: cf.ranges.map((range) => {
|
|
36258
|
-
return this.getters.getRangeString(range, sheetId);
|
|
36283
|
+
return this.getters.getRangeString(range, sheetId, { useFixedReference });
|
|
36259
36284
|
}),
|
|
36260
36285
|
};
|
|
36261
36286
|
}
|
|
@@ -38323,8 +38348,10 @@
|
|
|
38323
38348
|
*
|
|
38324
38349
|
* @param range the range (received from getRangeFromXC or getRangeFromZone)
|
|
38325
38350
|
* @param forSheetId the id of the sheet where the range string is supposed to be used.
|
|
38351
|
+
* @param options
|
|
38352
|
+
* @param options.useFixedReference if true, the range will be returned with fixed row and column
|
|
38326
38353
|
*/
|
|
38327
|
-
getRangeString(range, forSheetId) {
|
|
38354
|
+
getRangeString(range, forSheetId, options = { useFixedReference: false }) {
|
|
38328
38355
|
if (!range) {
|
|
38329
38356
|
return INCORRECT_RANGE_STRING;
|
|
38330
38357
|
}
|
|
@@ -38351,7 +38378,7 @@
|
|
|
38351
38378
|
if (prefixSheet && !sheetName) {
|
|
38352
38379
|
return INCORRECT_RANGE_STRING;
|
|
38353
38380
|
}
|
|
38354
|
-
let rangeString = this.getRangePartString(rangeImpl, 0);
|
|
38381
|
+
let rangeString = this.getRangePartString(rangeImpl, 0, options);
|
|
38355
38382
|
if (rangeImpl.parts && rangeImpl.parts.length === 2) {
|
|
38356
38383
|
// this if converts A2:A2 into A2 except if any part of the original range had fixed row or column (with $)
|
|
38357
38384
|
if (rangeImpl.zone.top !== rangeImpl.zone.bottom ||
|
|
@@ -38361,7 +38388,7 @@
|
|
|
38361
38388
|
rangeImpl.parts[1].rowFixed ||
|
|
38362
38389
|
rangeImpl.parts[1].colFixed) {
|
|
38363
38390
|
rangeString += ":";
|
|
38364
|
-
rangeString += this.getRangePartString(rangeImpl, 1);
|
|
38391
|
+
rangeString += this.getRangePartString(rangeImpl, 1, options);
|
|
38365
38392
|
}
|
|
38366
38393
|
}
|
|
38367
38394
|
return `${prefixSheet ? sheetName + "!" : ""}${rangeString}`;
|
|
@@ -38402,13 +38429,13 @@
|
|
|
38402
38429
|
/**
|
|
38403
38430
|
* Get a Xc string that represent a part of a range
|
|
38404
38431
|
*/
|
|
38405
|
-
getRangePartString(range, part) {
|
|
38432
|
+
getRangePartString(range, part, options = { useFixedReference: false }) {
|
|
38406
38433
|
const colFixed = range.parts && range.parts[part]?.colFixed ? "$" : "";
|
|
38407
38434
|
const col = part === 0 ? numberToLetters(range.zone.left) : numberToLetters(range.zone.right);
|
|
38408
38435
|
const rowFixed = range.parts && range.parts[part]?.rowFixed ? "$" : "";
|
|
38409
38436
|
const row = part === 0 ? String(range.zone.top + 1) : String(range.zone.bottom + 1);
|
|
38410
38437
|
let str = "";
|
|
38411
|
-
if (range.isFullCol) {
|
|
38438
|
+
if (range.isFullCol && !options.useFixedReference) {
|
|
38412
38439
|
if (part === 0 && range.unboundedZone.hasHeader) {
|
|
38413
38440
|
str = colFixed + col + rowFixed + row;
|
|
38414
38441
|
}
|
|
@@ -38416,7 +38443,7 @@
|
|
|
38416
38443
|
str = colFixed + col;
|
|
38417
38444
|
}
|
|
38418
38445
|
}
|
|
38419
|
-
else if (range.isFullRow) {
|
|
38446
|
+
else if (range.isFullRow && !options.useFixedReference) {
|
|
38420
38447
|
if (part === 0 && range.unboundedZone.hasHeader) {
|
|
38421
38448
|
str = colFixed + col + rowFixed + row;
|
|
38422
38449
|
}
|
|
@@ -39837,22 +39864,17 @@
|
|
|
39837
39864
|
* The `compute` of the formula's function must process it completely
|
|
39838
39865
|
*/
|
|
39839
39866
|
refFn(range, isMeta, functionName, paramNumber) {
|
|
39867
|
+
this.assertRangeValid(range);
|
|
39840
39868
|
if (isMeta) {
|
|
39841
39869
|
// Use zoneToXc of zone instead of getRangeString to avoid sending unbounded ranges
|
|
39842
39870
|
return { value: zoneToXc(range.zone) };
|
|
39843
39871
|
}
|
|
39844
|
-
if (!isZoneValid(range.zone)) {
|
|
39845
|
-
throw new InvalidReferenceError();
|
|
39846
|
-
}
|
|
39847
39872
|
// if the formula definition could have accepted a range, we would pass through the _range function and not here
|
|
39848
39873
|
if (range.zone.bottom !== range.zone.top || range.zone.left !== range.zone.right) {
|
|
39849
39874
|
throw new Error(paramNumber
|
|
39850
39875
|
? _t("Function %s expects the parameter %s to be a single value or a single cell reference, not a range.", functionName.toString(), paramNumber.toString())
|
|
39851
39876
|
: _t("Function %s expects its parameters to be single values or single cell references, not ranges.", functionName.toString()));
|
|
39852
39877
|
}
|
|
39853
|
-
if (range.invalidSheetName) {
|
|
39854
|
-
throw new Error(_t("Invalid sheet name: %s", range.invalidSheetName));
|
|
39855
|
-
}
|
|
39856
39878
|
const position = { sheetId: range.sheetId, col: range.zone.left, row: range.zone.top };
|
|
39857
39879
|
return this.readCell(position);
|
|
39858
39880
|
}
|
|
@@ -39887,10 +39909,10 @@
|
|
|
39887
39909
|
* Note that each col is possibly sparse: it only contain the values of cells
|
|
39888
39910
|
* that are actually present in the grid.
|
|
39889
39911
|
*/
|
|
39890
|
-
range(
|
|
39891
|
-
|
|
39892
|
-
|
|
39893
|
-
|
|
39912
|
+
range(range) {
|
|
39913
|
+
this.assertRangeValid(range);
|
|
39914
|
+
const sheetId = range.sheetId;
|
|
39915
|
+
const zone = range.zone;
|
|
39894
39916
|
// Performance issue: Avoid fetching data on positions that are out of the spreadsheet
|
|
39895
39917
|
// e.g. A1:ZZZ9999 in a sheet with 10 cols and 10 rows should ignore everything past J10 and return a 10x10 array
|
|
39896
39918
|
const sheetZone = this.getters.getSheetZone(sheetId);
|
|
@@ -39927,6 +39949,14 @@
|
|
|
39927
39949
|
this.rangeCache[cacheKey] = matrix;
|
|
39928
39950
|
return matrix;
|
|
39929
39951
|
}
|
|
39952
|
+
assertRangeValid(range) {
|
|
39953
|
+
if (!isZoneValid(range.zone)) {
|
|
39954
|
+
throw new InvalidReferenceError();
|
|
39955
|
+
}
|
|
39956
|
+
if (range.invalidSheetName) {
|
|
39957
|
+
throw new Error(_t("Invalid sheet name: %s", range.invalidSheetName));
|
|
39958
|
+
}
|
|
39959
|
+
}
|
|
39930
39960
|
}
|
|
39931
39961
|
|
|
39932
39962
|
function quickselect(arr, k, left, right, compare) {
|
|
@@ -45999,27 +46029,6 @@
|
|
|
45999
46029
|
// ---------------------------------------------------------------------------
|
|
46000
46030
|
// Command Handling
|
|
46001
46031
|
// ---------------------------------------------------------------------------
|
|
46002
|
-
allowDispatch(cmd) {
|
|
46003
|
-
switch (cmd.type) {
|
|
46004
|
-
case "ADD_RANGE":
|
|
46005
|
-
case "ADD_EMPTY_RANGE":
|
|
46006
|
-
if (this.inputHasSingleRange && this.ranges.length === 1) {
|
|
46007
|
-
return "MaximumRangesReached" /* CommandResult.MaximumRangesReached */;
|
|
46008
|
-
}
|
|
46009
|
-
break;
|
|
46010
|
-
case "REMOVE_RANGE":
|
|
46011
|
-
if (this.ranges.length === 1) {
|
|
46012
|
-
return "MinimumRangesReached" /* CommandResult.MinimumRangesReached */;
|
|
46013
|
-
}
|
|
46014
|
-
break;
|
|
46015
|
-
case "CHANGE_RANGE":
|
|
46016
|
-
if (this.inputHasSingleRange && cmd.value.split(",").length > 1) {
|
|
46017
|
-
return "MaximumRangesReached" /* CommandResult.MaximumRangesReached */;
|
|
46018
|
-
}
|
|
46019
|
-
break;
|
|
46020
|
-
}
|
|
46021
|
-
return "Success" /* CommandResult.Success */;
|
|
46022
|
-
}
|
|
46023
46032
|
handleEvent(event) {
|
|
46024
46033
|
if (this.focusedRangeIndex === null) {
|
|
46025
46034
|
return;
|
|
@@ -46257,6 +46266,15 @@
|
|
|
46257
46266
|
// Command Handling
|
|
46258
46267
|
// ---------------------------------------------------------------------------
|
|
46259
46268
|
allowDispatch(cmd) {
|
|
46269
|
+
switch (cmd.type) {
|
|
46270
|
+
case "FOCUS_RANGE":
|
|
46271
|
+
case "CHANGE_RANGE":
|
|
46272
|
+
case "ADD_EMPTY_RANGE":
|
|
46273
|
+
case "REMOVE_RANGE":
|
|
46274
|
+
if (!this.inputs[cmd.id]) {
|
|
46275
|
+
return "InvalidInputId" /* CommandResult.InvalidInputId */;
|
|
46276
|
+
}
|
|
46277
|
+
}
|
|
46260
46278
|
switch (cmd.type) {
|
|
46261
46279
|
case "FOCUS_RANGE":
|
|
46262
46280
|
const index = this.currentInput?.getIndex(cmd.rangeId);
|
|
@@ -46264,9 +46282,25 @@
|
|
|
46264
46282
|
return "InputAlreadyFocused" /* CommandResult.InputAlreadyFocused */;
|
|
46265
46283
|
}
|
|
46266
46284
|
break;
|
|
46267
|
-
|
|
46268
|
-
|
|
46269
|
-
|
|
46285
|
+
case "ADD_RANGE":
|
|
46286
|
+
case "ADD_EMPTY_RANGE":
|
|
46287
|
+
const input = this.inputs[cmd.id];
|
|
46288
|
+
if (input.inputHasSingleRange && input.ranges.length === 1) {
|
|
46289
|
+
return "MaximumRangesReached" /* CommandResult.MaximumRangesReached */;
|
|
46290
|
+
}
|
|
46291
|
+
break;
|
|
46292
|
+
case "REMOVE_RANGE":
|
|
46293
|
+
if (this.inputs[cmd.id].ranges.length === 1) {
|
|
46294
|
+
return "MinimumRangesReached" /* CommandResult.MinimumRangesReached */;
|
|
46295
|
+
}
|
|
46296
|
+
break;
|
|
46297
|
+
case "CHANGE_RANGE": {
|
|
46298
|
+
const input = this.inputs[cmd.id];
|
|
46299
|
+
if (input.inputHasSingleRange && cmd.value.split(",").length > 1) {
|
|
46300
|
+
return "MaximumRangesReached" /* CommandResult.MaximumRangesReached */;
|
|
46301
|
+
}
|
|
46302
|
+
break;
|
|
46303
|
+
}
|
|
46270
46304
|
}
|
|
46271
46305
|
return "Success" /* CommandResult.Success */;
|
|
46272
46306
|
}
|
|
@@ -48575,9 +48609,10 @@
|
|
|
48575
48609
|
*/
|
|
48576
48610
|
getReferencedRanges() {
|
|
48577
48611
|
const editionSheetId = this.getters.getCurrentEditedCell().sheetId;
|
|
48578
|
-
|
|
48612
|
+
const referenceRanges = this.currentTokens
|
|
48579
48613
|
.filter((token) => token.type === "REFERENCE")
|
|
48580
48614
|
.map((token) => this.getters.getRangeFromSheetXC(editionSheetId, token.value));
|
|
48615
|
+
return referenceRanges.filter((range) => !range.invalidSheetName && !range.invalidXc);
|
|
48581
48616
|
}
|
|
48582
48617
|
getAutoCompleteDataValidationValues() {
|
|
48583
48618
|
if (this.mode === "inactive") {
|
|
@@ -54935,12 +54970,7 @@
|
|
|
54935
54970
|
attrs.push(["t", "str"]);
|
|
54936
54971
|
cycle = escapeXml /*xml*/ `<v>${cell.value}</v>`;
|
|
54937
54972
|
}
|
|
54938
|
-
node = escapeXml /*xml*/
|
|
54939
|
-
<f>
|
|
54940
|
-
${XlsxFormula}
|
|
54941
|
-
</f>
|
|
54942
|
-
${cycle}
|
|
54943
|
-
`;
|
|
54973
|
+
node = escapeXml /*xml*/ `<f>${XlsxFormula}</f>${cycle}`;
|
|
54944
54974
|
return { attrs, node };
|
|
54945
54975
|
}
|
|
54946
54976
|
function addContent(content, sharedStrings, forceString = false) {
|
|
@@ -55759,11 +55789,10 @@
|
|
|
55759
55789
|
({ attrs: additionalAttrs, node: cellNode } = addContent(cell.content, construct.sharedStrings, isTableHeader));
|
|
55760
55790
|
}
|
|
55761
55791
|
attributes.push(...additionalAttrs);
|
|
55762
|
-
|
|
55763
|
-
|
|
55764
|
-
|
|
55765
|
-
|
|
55766
|
-
`);
|
|
55792
|
+
// prettier-ignore
|
|
55793
|
+
cellNodes.push(escapeXml /*xml*/ `<c ${formatAttributes(attributes)}>
|
|
55794
|
+
${cellNode}
|
|
55795
|
+
</c>`);
|
|
55767
55796
|
}
|
|
55768
55797
|
}
|
|
55769
55798
|
if (cellNodes.length || row.size !== DEFAULT_CELL_HEIGHT || row.isHidden) {
|
|
@@ -56359,7 +56388,6 @@
|
|
|
56359
56388
|
...config,
|
|
56360
56389
|
mode: config.mode || "normal",
|
|
56361
56390
|
custom: config.custom || {},
|
|
56362
|
-
defaultCurrencyFormat: config.defaultCurrencyFormat || "[$$]#,##0.00",
|
|
56363
56391
|
external: this.setupExternalConfig(config.external || {}),
|
|
56364
56392
|
transportService,
|
|
56365
56393
|
client,
|
|
@@ -56397,6 +56425,7 @@
|
|
|
56397
56425
|
custom: this.config.custom,
|
|
56398
56426
|
uiActions: this.config,
|
|
56399
56427
|
session: this.session,
|
|
56428
|
+
defaultCurrencyFormat: this.config.defaultCurrencyFormat,
|
|
56400
56429
|
};
|
|
56401
56430
|
}
|
|
56402
56431
|
// ---------------------------------------------------------------------------
|
|
@@ -56769,9 +56798,9 @@
|
|
|
56769
56798
|
exports.tokenize = tokenize;
|
|
56770
56799
|
|
|
56771
56800
|
|
|
56772
|
-
__info__.version = "17.0.
|
|
56773
|
-
__info__.date = "2024-
|
|
56774
|
-
__info__.hash = "
|
|
56801
|
+
__info__.version = "17.0.10";
|
|
56802
|
+
__info__.date = "2024-02-02T13:48:28.727Z";
|
|
56803
|
+
__info__.hash = "be06aa9";
|
|
56775
56804
|
|
|
56776
56805
|
|
|
56777
56806
|
})(this.o_spreadsheet = this.o_spreadsheet || {}, owl);
|