@odoo/o-spreadsheet 19.1.23 → 19.1.26
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 +3 -3
- package/dist/o_spreadsheet.esm.js +144 -122
- package/dist/o_spreadsheet.iife.js +144 -122
- package/dist/o_spreadsheet.iife.min.js +27 -29
- package/dist/o_spreadsheet.xml +4 -4
- package/package.json +8 -5
- package/dist/o_spreadsheet.cjs.js +0 -79320
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.1.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.1.26
|
|
6
|
+
* @date 2026-07-01T05:03:33.170Z
|
|
7
|
+
* @hash 44237c0
|
|
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.1.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.1.26
|
|
6
|
+
* @date 2026-07-01T05:03:31.665Z
|
|
7
|
+
* @hash 44237c0
|
|
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";
|
|
@@ -222,7 +222,7 @@ const GRAY_900 = "#111827";
|
|
|
222
222
|
const GRAY_300 = "#D8DADD";
|
|
223
223
|
const GRAY_200 = "#E7E9ED";
|
|
224
224
|
const TEXT_BODY = "#374151";
|
|
225
|
-
const TEXT_BODY_MUTED =
|
|
225
|
+
const TEXT_BODY_MUTED = "#374151C2";
|
|
226
226
|
const ACTION_COLOR = HIGHLIGHT_COLOR;
|
|
227
227
|
const CHART_TITLE_FONT_SIZE = 16;
|
|
228
228
|
const DEFAULT_CHART_COLOR_SCALE = {
|
|
@@ -315,9 +315,6 @@ const COLOR_PICKER_DEFAULTS = [
|
|
|
315
315
|
];
|
|
316
316
|
const DEFAULT_CELL_HEIGHT = 23;
|
|
317
317
|
const FOOTER_HEIGHT = 2 * 23;
|
|
318
|
-
const MENU_SEPARATOR_BORDER_WIDTH = 1;
|
|
319
|
-
const MENU_SEPARATOR_PADDING = 5;
|
|
320
|
-
const MENU_SEPARATOR_HEIGHT = 1 + 2 * 5;
|
|
321
318
|
const ZOOM_VALUES = [
|
|
322
319
|
50,
|
|
323
320
|
75,
|
|
@@ -343,7 +340,7 @@ const ROTATION_EPSILON = .001;
|
|
|
343
340
|
const DEFAULT_VERTICAL_ALIGN = DEFAULT_STYLE.verticalAlign;
|
|
344
341
|
const DEFAULT_WRAPPING_MODE = DEFAULT_STYLE.wrapping;
|
|
345
342
|
const DEFAULT_FONT_SIZE = DEFAULT_STYLE.fontSize;
|
|
346
|
-
const DEFAULT_FONT = "'Roboto', arial";
|
|
343
|
+
const DEFAULT_FONT = "'Roboto', arial, 'Liberation Sans'";
|
|
347
344
|
const DEFAULT_BORDER_DESC = {
|
|
348
345
|
style: "thin",
|
|
349
346
|
color: "#000000"
|
|
@@ -1162,7 +1159,7 @@ function toXC(col, row, rangePart = {
|
|
|
1162
1159
|
function recomputeZones(zones, zonesToRemove = []) {
|
|
1163
1160
|
if (zones.length <= 1 && zonesToRemove.length === 0) return zones;
|
|
1164
1161
|
const profilesStartingPosition = [0];
|
|
1165
|
-
const profiles = new Map([[0, []]]);
|
|
1162
|
+
const profiles = /* @__PURE__ */ new Map([[0, []]]);
|
|
1166
1163
|
modifyProfiles(profilesStartingPosition, profiles, zones, false);
|
|
1167
1164
|
modifyProfiles(profilesStartingPosition, profiles, zonesToRemove, true);
|
|
1168
1165
|
return constructZonesFromProfiles(profilesStartingPosition, profiles);
|
|
@@ -3470,12 +3467,10 @@ const getNumberRegex = memoize(function getNumberRegex(locale) {
|
|
|
3470
3467
|
const pIntegerAndDecimals = `(?:\\d+(?:${escapeRegExp(locale.thousandsSeparator || "")}\\d{3,})*(?:${decimalSeparator}\\d*)?)`;
|
|
3471
3468
|
const pOnlyDecimals = `(?:${decimalSeparator}\\d+)`;
|
|
3472
3469
|
const pNumber = "(?:\\s*" + pIntegerAndDecimals + "|" + pOnlyDecimals + ")(?:(e|E)(?:\\+|-)?(?:[0-9]|[0-9][0-9]|[12][0-9]{2}|30[0-7]))?(?:\\s*%)?";
|
|
3473
|
-
const pMinus = "(?:\\s*-)?";
|
|
3474
|
-
const pCurrencyFormat = "(?:\\s*[\\$€])?";
|
|
3475
3470
|
const pNumberExp = "^(?:(?:" + [
|
|
3476
|
-
|
|
3477
|
-
|
|
3478
|
-
|
|
3471
|
+
"(?:\\s*-)?(?:\\s*[\\$€])?" + pNumber,
|
|
3472
|
+
"(?:\\s*-)?" + pNumber + "(?:\\s*[\\$€])?",
|
|
3473
|
+
"(?:\\s*[\\$€])?(?:\\s*-)?" + pNumber
|
|
3479
3474
|
].join(")|(?:") + "))$";
|
|
3480
3475
|
return new RegExp(pNumberExp, "i");
|
|
3481
3476
|
});
|
|
@@ -5374,7 +5369,7 @@ function isPositionDependent(cmd) {
|
|
|
5374
5369
|
function isZoneDependent(cmd) {
|
|
5375
5370
|
return "sheetId" in cmd && "zone" in cmd;
|
|
5376
5371
|
}
|
|
5377
|
-
const invalidateEvaluationCommands = new Set([
|
|
5372
|
+
const invalidateEvaluationCommands = /* @__PURE__ */ new Set([
|
|
5378
5373
|
"RENAME_SHEET",
|
|
5379
5374
|
"DELETE_SHEET",
|
|
5380
5375
|
"CREATE_SHEET",
|
|
@@ -5393,7 +5388,7 @@ const invalidateEvaluationCommands = new Set([
|
|
|
5393
5388
|
"REMOVE_PIVOT",
|
|
5394
5389
|
"DUPLICATE_PIVOT"
|
|
5395
5390
|
]);
|
|
5396
|
-
const invalidateChartEvaluationCommands = new Set([
|
|
5391
|
+
const invalidateChartEvaluationCommands = /* @__PURE__ */ new Set([
|
|
5397
5392
|
"EVALUATE_CELLS",
|
|
5398
5393
|
"EVALUATE_CHARTS",
|
|
5399
5394
|
"UPDATE_CELL",
|
|
@@ -5414,20 +5409,20 @@ const invalidateChartEvaluationCommands = new Set([
|
|
|
5414
5409
|
"UNDO",
|
|
5415
5410
|
"REDO"
|
|
5416
5411
|
]);
|
|
5417
|
-
const invalidateDependenciesCommands = new Set(["MOVE_RANGES"]);
|
|
5418
|
-
const invalidateCFEvaluationCommands = new Set([
|
|
5412
|
+
const invalidateDependenciesCommands = /* @__PURE__ */ new Set(["MOVE_RANGES"]);
|
|
5413
|
+
const invalidateCFEvaluationCommands = /* @__PURE__ */ new Set([
|
|
5419
5414
|
"EVALUATE_CELLS",
|
|
5420
5415
|
"ADD_CONDITIONAL_FORMAT",
|
|
5421
5416
|
"REMOVE_CONDITIONAL_FORMAT",
|
|
5422
5417
|
"CHANGE_CONDITIONAL_FORMAT_PRIORITY"
|
|
5423
5418
|
]);
|
|
5424
|
-
const invalidateBordersCommands = new Set([
|
|
5419
|
+
const invalidateBordersCommands = /* @__PURE__ */ new Set([
|
|
5425
5420
|
"AUTOFILL_CELL",
|
|
5426
5421
|
"SET_BORDER",
|
|
5427
5422
|
"SET_ZONE_BORDERS",
|
|
5428
5423
|
"SET_BORDERS_ON_TARGET"
|
|
5429
5424
|
]);
|
|
5430
|
-
const invalidSubtotalFormulasCommands = new Set([
|
|
5425
|
+
const invalidSubtotalFormulasCommands = /* @__PURE__ */ new Set([
|
|
5431
5426
|
"UNHIDE_COLUMNS_ROWS",
|
|
5432
5427
|
"HIDE_COLUMNS_ROWS",
|
|
5433
5428
|
"GROUP_HEADERS",
|
|
@@ -5441,7 +5436,7 @@ const invalidSubtotalFormulasCommands = new Set([
|
|
|
5441
5436
|
"UPDATE_TABLE",
|
|
5442
5437
|
"UPDATE_FILTER"
|
|
5443
5438
|
]);
|
|
5444
|
-
const readonlyAllowedCommands = new Set([
|
|
5439
|
+
const readonlyAllowedCommands = /* @__PURE__ */ new Set([
|
|
5445
5440
|
"START",
|
|
5446
5441
|
"ACTIVATE_SHEET",
|
|
5447
5442
|
"COPY",
|
|
@@ -5456,7 +5451,7 @@ const readonlyAllowedCommands = new Set([
|
|
|
5456
5451
|
"UPDATE_CAROUSEL_ACTIVE_ITEM",
|
|
5457
5452
|
"UPDATE_PIVOT"
|
|
5458
5453
|
]);
|
|
5459
|
-
const coreTypes = new Set([
|
|
5454
|
+
const coreTypes = /* @__PURE__ */ new Set([
|
|
5460
5455
|
"UPDATE_CELL",
|
|
5461
5456
|
"UPDATE_CELL_POSITION",
|
|
5462
5457
|
"CLEAR_CELL",
|
|
@@ -6001,7 +5996,6 @@ function getCanonicalRepresentation(item) {
|
|
|
6001
5996
|
//#region src/helpers/edge_scrolling.ts
|
|
6002
5997
|
const MAX_DELAY = 140;
|
|
6003
5998
|
const MIN_DELAY = 20;
|
|
6004
|
-
const ACCELERATION = .035;
|
|
6005
5999
|
/**
|
|
6006
6000
|
* Decreasing exponential function used to determine the "speed" of edge-scrolling
|
|
6007
6001
|
* as the timeout delay.
|
|
@@ -6009,7 +6003,7 @@ const ACCELERATION = .035;
|
|
|
6009
6003
|
* Returns a timeout delay in milliseconds.
|
|
6010
6004
|
*/
|
|
6011
6005
|
function scrollDelay(value) {
|
|
6012
|
-
return 20 + (140 - 20) * Math.exp(
|
|
6006
|
+
return 20 + (140 - 20) * Math.exp(-.035 * (value - 1));
|
|
6013
6007
|
}
|
|
6014
6008
|
|
|
6015
6009
|
//#endregion
|
|
@@ -7003,7 +6997,7 @@ var UuidGenerator = class {
|
|
|
7003
6997
|
const cryptoObj = this.getCrypto();
|
|
7004
6998
|
if (cryptoObj) return "10000000-1000".replace(/[01]/g, (c) => {
|
|
7005
6999
|
const n = Number(c);
|
|
7006
|
-
return (n ^ cryptoObj.getRandomValues(new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
7000
|
+
return (n ^ cryptoObj.getRandomValues(/* @__PURE__ */ new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
7007
7001
|
});
|
|
7008
7002
|
else return "xxxxxxxx-xxxx".replace(/[xy]/g, function(c) {
|
|
7009
7003
|
const r = Math.random() * 16 | 0;
|
|
@@ -7018,7 +7012,7 @@ var UuidGenerator = class {
|
|
|
7018
7012
|
const cryptoObj = this.getCrypto();
|
|
7019
7013
|
if (cryptoObj) return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, (c) => {
|
|
7020
7014
|
const n = Number(c);
|
|
7021
|
-
return (n ^ cryptoObj.getRandomValues(new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
7015
|
+
return (n ^ cryptoObj.getRandomValues(/* @__PURE__ */ new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
7022
7016
|
});
|
|
7023
7017
|
else return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
|
|
7024
7018
|
const r = Math.random() * 16 | 0;
|
|
@@ -11612,7 +11606,7 @@ const availableConditionalFormatOperators = new Set(cfOperators);
|
|
|
11612
11606
|
|
|
11613
11607
|
//#endregion
|
|
11614
11608
|
//#region src/types/data_validation.ts
|
|
11615
|
-
const availableDataValidationOperators = new Set([
|
|
11609
|
+
const availableDataValidationOperators = /* @__PURE__ */ new Set([
|
|
11616
11610
|
"containsText",
|
|
11617
11611
|
"notContainsText",
|
|
11618
11612
|
"isEqualText",
|
|
@@ -12186,10 +12180,10 @@ function toNormalizedPivotValue(dimension, groupValue) {
|
|
|
12186
12180
|
type: dimension.type
|
|
12187
12181
|
}));
|
|
12188
12182
|
if (groupValueString.toLowerCase() === "false") return false;
|
|
12189
|
-
return pivotNormalizationValueRegistry.get(dimension.type)(groupValueString, dimension
|
|
12183
|
+
return pivotNormalizationValueRegistry.get(dimension.type)(groupValueString, dimension);
|
|
12190
12184
|
}
|
|
12191
|
-
function normalizeDateTime(value,
|
|
12192
|
-
return pivotTimeAdapter(granularity ?? "month").normalizeFunctionValue(value);
|
|
12185
|
+
function normalizeDateTime(value, dimension) {
|
|
12186
|
+
return pivotTimeAdapter(dimension.granularity ?? "month").normalizeFunctionValue(value);
|
|
12193
12187
|
}
|
|
12194
12188
|
function toFunctionPivotValue(value, dimension) {
|
|
12195
12189
|
if (value === null) return `"null"`;
|
|
@@ -15215,6 +15209,59 @@ function getCarouselItemTitle(getters, item) {
|
|
|
15215
15209
|
return (chartSubtypeRegistry.getAll().find((c) => c.matcher?.(definition)) || chartSubtypeRegistry.get(definition.type)).displayName;
|
|
15216
15210
|
}
|
|
15217
15211
|
|
|
15212
|
+
//#endregion
|
|
15213
|
+
//#region src/components/helpers/css.ts
|
|
15214
|
+
function getTextDecoration({ strikethrough, underline }) {
|
|
15215
|
+
if (!strikethrough && !underline) return "none";
|
|
15216
|
+
return `${strikethrough ? "line-through" : ""} ${underline ? "underline" : ""}`;
|
|
15217
|
+
}
|
|
15218
|
+
/**
|
|
15219
|
+
* Convert the cell style to CSS properties.
|
|
15220
|
+
*/
|
|
15221
|
+
function cellStyleToCss(style) {
|
|
15222
|
+
const attributes = cellTextStyleToCss(style);
|
|
15223
|
+
if (!style) return attributes;
|
|
15224
|
+
if (style.fillColor) attributes["background"] = style.fillColor;
|
|
15225
|
+
return attributes;
|
|
15226
|
+
}
|
|
15227
|
+
/**
|
|
15228
|
+
* Convert the cell text style to CSS properties.
|
|
15229
|
+
*/
|
|
15230
|
+
function cellTextStyleToCss(style) {
|
|
15231
|
+
const attributes = {};
|
|
15232
|
+
if (!style) return attributes;
|
|
15233
|
+
if (style.bold) attributes["font-weight"] = "bold";
|
|
15234
|
+
if (style.italic) attributes["font-style"] = "italic";
|
|
15235
|
+
if (style.fontSize) attributes["font-size"] = `${style.fontSize}px`;
|
|
15236
|
+
if (style.strikethrough || style.underline) {
|
|
15237
|
+
let decoration = style.strikethrough ? "line-through" : "";
|
|
15238
|
+
decoration = style.underline ? decoration + " underline" : decoration;
|
|
15239
|
+
attributes["text-decoration"] = decoration;
|
|
15240
|
+
}
|
|
15241
|
+
if (style.textColor) attributes["color"] = style.textColor;
|
|
15242
|
+
return attributes;
|
|
15243
|
+
}
|
|
15244
|
+
/**
|
|
15245
|
+
* Transform CSS properties into a CSS string.
|
|
15246
|
+
*/
|
|
15247
|
+
function cssPropertiesToCss(attributes) {
|
|
15248
|
+
let styleStr = "";
|
|
15249
|
+
for (const attName in attributes) {
|
|
15250
|
+
if (!attributes[attName]) continue;
|
|
15251
|
+
styleStr += `${attName}:${attributes[attName]}; `;
|
|
15252
|
+
}
|
|
15253
|
+
return styleStr;
|
|
15254
|
+
}
|
|
15255
|
+
function getElementMargins(el) {
|
|
15256
|
+
const style = window.getComputedStyle(el);
|
|
15257
|
+
return {
|
|
15258
|
+
top: parseInt(style.marginTop, 10) || 0,
|
|
15259
|
+
bottom: parseInt(style.marginBottom, 10) || 0,
|
|
15260
|
+
left: parseInt(style.marginLeft, 10) || 0,
|
|
15261
|
+
right: parseInt(style.marginRight, 10) || 0
|
|
15262
|
+
};
|
|
15263
|
+
}
|
|
15264
|
+
|
|
15218
15265
|
//#endregion
|
|
15219
15266
|
//#region src/components/figures/chart/chartJs/zoomable_chart/zoomable_chart_store.ts
|
|
15220
15267
|
const TREND_LINE_AXES_IDS = ["x1", MOVING_AVERAGE_TREND_LINE_XAXIS_ID];
|
|
@@ -15314,9 +15361,7 @@ var ZoomableChartJsComponent = class extends ChartJsComponent {
|
|
|
15314
15361
|
this.removeEventListeners();
|
|
15315
15362
|
}
|
|
15316
15363
|
get containerStyle() {
|
|
15317
|
-
return `
|
|
15318
|
-
height:${this.sliceable ? `calc(100% - ${60}px)` : "100%"};
|
|
15319
|
-
`;
|
|
15364
|
+
return cssPropertiesToCss({ height: this.sliceable ? `calc(100% - ${60}px)` : "100%" });
|
|
15320
15365
|
}
|
|
15321
15366
|
get masterChartContainerStyle() {
|
|
15322
15367
|
const runtime = this.env.model.getters.getChartRuntime(this.props.chartId);
|
|
@@ -16172,59 +16217,6 @@ var FullScreenFigureStore = class extends SpreadsheetStore {
|
|
|
16172
16217
|
}
|
|
16173
16218
|
};
|
|
16174
16219
|
|
|
16175
|
-
//#endregion
|
|
16176
|
-
//#region src/components/helpers/css.ts
|
|
16177
|
-
function getTextDecoration({ strikethrough, underline }) {
|
|
16178
|
-
if (!strikethrough && !underline) return "none";
|
|
16179
|
-
return `${strikethrough ? "line-through" : ""} ${underline ? "underline" : ""}`;
|
|
16180
|
-
}
|
|
16181
|
-
/**
|
|
16182
|
-
* Convert the cell style to CSS properties.
|
|
16183
|
-
*/
|
|
16184
|
-
function cellStyleToCss(style) {
|
|
16185
|
-
const attributes = cellTextStyleToCss(style);
|
|
16186
|
-
if (!style) return attributes;
|
|
16187
|
-
if (style.fillColor) attributes["background"] = style.fillColor;
|
|
16188
|
-
return attributes;
|
|
16189
|
-
}
|
|
16190
|
-
/**
|
|
16191
|
-
* Convert the cell text style to CSS properties.
|
|
16192
|
-
*/
|
|
16193
|
-
function cellTextStyleToCss(style) {
|
|
16194
|
-
const attributes = {};
|
|
16195
|
-
if (!style) return attributes;
|
|
16196
|
-
if (style.bold) attributes["font-weight"] = "bold";
|
|
16197
|
-
if (style.italic) attributes["font-style"] = "italic";
|
|
16198
|
-
if (style.fontSize) attributes["font-size"] = `${style.fontSize}px`;
|
|
16199
|
-
if (style.strikethrough || style.underline) {
|
|
16200
|
-
let decoration = style.strikethrough ? "line-through" : "";
|
|
16201
|
-
decoration = style.underline ? decoration + " underline" : decoration;
|
|
16202
|
-
attributes["text-decoration"] = decoration;
|
|
16203
|
-
}
|
|
16204
|
-
if (style.textColor) attributes["color"] = style.textColor;
|
|
16205
|
-
return attributes;
|
|
16206
|
-
}
|
|
16207
|
-
/**
|
|
16208
|
-
* Transform CSS properties into a CSS string.
|
|
16209
|
-
*/
|
|
16210
|
-
function cssPropertiesToCss(attributes) {
|
|
16211
|
-
let styleStr = "";
|
|
16212
|
-
for (const attName in attributes) {
|
|
16213
|
-
if (!attributes[attName]) continue;
|
|
16214
|
-
styleStr += `${attName}:${attributes[attName]}; `;
|
|
16215
|
-
}
|
|
16216
|
-
return styleStr;
|
|
16217
|
-
}
|
|
16218
|
-
function getElementMargins(el) {
|
|
16219
|
-
const style = window.getComputedStyle(el);
|
|
16220
|
-
return {
|
|
16221
|
-
top: parseInt(style.marginTop, 10) || 0,
|
|
16222
|
-
bottom: parseInt(style.marginBottom, 10) || 0,
|
|
16223
|
-
left: parseInt(style.marginLeft, 10) || 0,
|
|
16224
|
-
right: parseInt(style.marginRight, 10) || 0
|
|
16225
|
-
};
|
|
16226
|
-
}
|
|
16227
|
-
|
|
16228
16220
|
//#endregion
|
|
16229
16221
|
//#region src/components/helpers/time_hooks.ts
|
|
16230
16222
|
/**
|
|
@@ -17219,11 +17211,11 @@ var FigureComponent = class extends Component {
|
|
|
17219
17211
|
getResizerPosition(resizer) {
|
|
17220
17212
|
const anchorCenteringOffset = (ANCHOR_SIZE - ACTIVE_BORDER_WIDTH) / 2;
|
|
17221
17213
|
const style = {};
|
|
17222
|
-
if (resizer.includes("top")) style.top =
|
|
17223
|
-
else if (resizer.includes("bottom")) style.bottom =
|
|
17214
|
+
if (resizer.includes("top")) style.top = `-3px`;
|
|
17215
|
+
else if (resizer.includes("bottom")) style.bottom = `-3px`;
|
|
17224
17216
|
else style.bottom = `calc(50% - ${anchorCenteringOffset}px)`;
|
|
17225
|
-
if (resizer.includes("left")) style.left =
|
|
17226
|
-
else if (resizer.includes("right")) style.right =
|
|
17217
|
+
if (resizer.includes("left")) style.left = `-3px`;
|
|
17218
|
+
else if (resizer.includes("right")) style.right = `-3px`;
|
|
17227
17219
|
else style.right = `calc(50% - ${anchorCenteringOffset}px)`;
|
|
17228
17220
|
return cssPropertiesToCss(style);
|
|
17229
17221
|
}
|
|
@@ -27600,6 +27592,7 @@ function mapParenthesisCode(tokens) {
|
|
|
27600
27592
|
function mapParentFunction(tokens) {
|
|
27601
27593
|
const stack = [];
|
|
27602
27594
|
let functionStarted = "";
|
|
27595
|
+
let braceDepth = 0;
|
|
27603
27596
|
function pushTokenToFunctionContext(token) {
|
|
27604
27597
|
if (stack.length === 0) return;
|
|
27605
27598
|
const functionContext = stack.at(-1);
|
|
@@ -27612,7 +27605,7 @@ function mapParentFunction(tokens) {
|
|
|
27612
27605
|
});
|
|
27613
27606
|
}
|
|
27614
27607
|
}
|
|
27615
|
-
return tokens.map((token
|
|
27608
|
+
return tokens.map((token) => {
|
|
27616
27609
|
if (!["SPACE", "LEFT_PAREN"].includes(token.type)) functionStarted = "";
|
|
27617
27610
|
switch (token.type) {
|
|
27618
27611
|
case "SYMBOL":
|
|
@@ -27633,8 +27626,16 @@ function mapParentFunction(tokens) {
|
|
|
27633
27626
|
stack.pop()?.argsTokens?.flat().forEach(pushTokenToFunctionContext);
|
|
27634
27627
|
pushTokenToFunctionContext(token);
|
|
27635
27628
|
break;
|
|
27629
|
+
case "LEFT_BRACE":
|
|
27630
|
+
braceDepth++;
|
|
27631
|
+
pushTokenToFunctionContext(token);
|
|
27632
|
+
break;
|
|
27633
|
+
case "RIGHT_BRACE":
|
|
27634
|
+
braceDepth--;
|
|
27635
|
+
pushTokenToFunctionContext(token);
|
|
27636
|
+
break;
|
|
27636
27637
|
case "ARG_SEPARATOR":
|
|
27637
|
-
if (stack.length) stack[stack.length - 1].argPosition++;
|
|
27638
|
+
if (stack.length && braceDepth === 0) stack[stack.length - 1].argPosition++;
|
|
27638
27639
|
pushTokenToFunctionContext(token);
|
|
27639
27640
|
break;
|
|
27640
27641
|
default:
|
|
@@ -28848,10 +28849,7 @@ function startDnd(onPointerMove, onPointerUp) {
|
|
|
28848
28849
|
//#endregion
|
|
28849
28850
|
//#region src/components/color_picker/color_picker.ts
|
|
28850
28851
|
const ITEM_BORDER_WIDTH = 1;
|
|
28851
|
-
const
|
|
28852
|
-
const ITEMS_PER_LINE = 10;
|
|
28853
|
-
const MAGNIFIER_EDGE = 16;
|
|
28854
|
-
const CONTENT_WIDTH = ITEMS_PER_LINE * (ITEM_EDGE_LENGTH + 2 * ITEM_BORDER_WIDTH) + (ITEMS_PER_LINE - 1) * 2;
|
|
28852
|
+
const CONTENT_WIDTH = 218;
|
|
28855
28853
|
const INNER_GRADIENT_WIDTH = CONTENT_WIDTH - 2 * ITEM_BORDER_WIDTH;
|
|
28856
28854
|
const INNER_GRADIENT_HEIGHT = CONTENT_WIDTH - 30 - 2 * ITEM_BORDER_WIDTH;
|
|
28857
28855
|
var ColorPicker = class extends Component {
|
|
@@ -28915,8 +28913,8 @@ var ColorPicker = class extends Component {
|
|
|
28915
28913
|
const left = Math.round(INNER_GRADIENT_WIDTH * clip(s / 100, 0, 1));
|
|
28916
28914
|
const top = Math.round(INNER_GRADIENT_HEIGHT * clip(1 - 2 * l / (200 - s), 0, 1));
|
|
28917
28915
|
return cssPropertiesToCss({
|
|
28918
|
-
left: `${-
|
|
28919
|
-
top: `${-
|
|
28916
|
+
left: `${-16 / 2 + left}px`,
|
|
28917
|
+
top: `${-16 / 2 + top}px`,
|
|
28920
28918
|
background: hslaToHex(this.state.currentHslaColor)
|
|
28921
28919
|
});
|
|
28922
28920
|
}
|
|
@@ -52618,7 +52616,7 @@ var Grid = class extends Component {
|
|
|
52618
52616
|
ev.preventDefault();
|
|
52619
52617
|
const clipboardData = ev.clipboardData;
|
|
52620
52618
|
if (!clipboardData) return;
|
|
52621
|
-
const image = [...clipboardData.files]
|
|
52619
|
+
const image = [...clipboardData.files].find((file) => AllowedImageMimeTypes.includes(file.type));
|
|
52622
52620
|
const osClipboard = { content: {
|
|
52623
52621
|
["text/plain"]: clipboardData?.getData("text/plain"),
|
|
52624
52622
|
["text/html"]: clipboardData?.getData("text/html")
|
|
@@ -58450,7 +58448,7 @@ var ZoneRBush = class extends import_rbush_min.default {
|
|
|
58450
58448
|
//#region src/plugins/ui_core_views/cell_evaluation/zone_set.ts
|
|
58451
58449
|
var ZoneSet = class ZoneSet {
|
|
58452
58450
|
profilesStartingPosition = [0];
|
|
58453
|
-
profiles = new Map([[0, []]]);
|
|
58451
|
+
profiles = /* @__PURE__ */ new Map([[0, []]]);
|
|
58454
58452
|
constructor(zones = []) {
|
|
58455
58453
|
for (const zone of zones) this.add(zone);
|
|
58456
58454
|
}
|
|
@@ -59828,12 +59826,22 @@ var CustomColorsPlugin = class extends CoreViewPlugin {
|
|
|
59828
59826
|
handle(cmd) {
|
|
59829
59827
|
switch (cmd.type) {
|
|
59830
59828
|
case "START":
|
|
59831
|
-
for (const sheetId of this.getters.getSheetIds())
|
|
59829
|
+
for (const sheetId of this.getters.getSheetIds()) {
|
|
59830
|
+
for (const chartId of this.getters.getChartIds(sheetId)) this.tryToAddColors(this.getChartColors(chartId));
|
|
59831
|
+
for (const figureId of this.getters.getFigures(sheetId)) this.tryToAddColors(this.getCarouselColors(sheetId, figureId.id));
|
|
59832
|
+
}
|
|
59832
59833
|
break;
|
|
59833
59834
|
case "UPDATE_CHART":
|
|
59834
59835
|
case "CREATE_CHART":
|
|
59835
59836
|
this.tryToAddColors(this.getChartColors(cmd.chartId));
|
|
59836
59837
|
break;
|
|
59838
|
+
case "CREATE_CAROUSEL":
|
|
59839
|
+
case "UPDATE_CAROUSEL":
|
|
59840
|
+
this.tryToAddColors(this.getCarouselColors(cmd.sheetId, cmd.figureId));
|
|
59841
|
+
break;
|
|
59842
|
+
case "COLOR_SHEET":
|
|
59843
|
+
if (cmd.color) this.tryToAddColors([cmd.color]);
|
|
59844
|
+
break;
|
|
59837
59845
|
case "UPDATE_CELL":
|
|
59838
59846
|
case "ADD_CONDITIONAL_FORMAT":
|
|
59839
59847
|
case "SET_BORDER":
|
|
@@ -59856,8 +59864,12 @@ var CustomColorsPlugin = class extends CoreViewPlugin {
|
|
|
59856
59864
|
}
|
|
59857
59865
|
computeCustomColors() {
|
|
59858
59866
|
let usedColors = [];
|
|
59859
|
-
for (const sheetId of this.getters.getSheetIds()) usedColors = usedColors.concat(this.getColorsFromCells(sheetId), this.getFormattingColors(sheetId), this.getTableColors(sheetId));
|
|
59860
|
-
return [
|
|
59867
|
+
for (const sheetId of this.getters.getSheetIds()) usedColors = usedColors.concat(this.getSheetColors(sheetId), this.getColorsFromCells(sheetId), this.getFormattingColors(sheetId), this.getTableColors(sheetId));
|
|
59868
|
+
return [.../* @__PURE__ */ new Set([...usedColors])];
|
|
59869
|
+
}
|
|
59870
|
+
getSheetColors(sheetId) {
|
|
59871
|
+
const sheet = this.getters.getSheet(sheetId);
|
|
59872
|
+
return sheet.color ? [sheet.color] : [];
|
|
59861
59873
|
}
|
|
59862
59874
|
getColorsFromCells(sheetId) {
|
|
59863
59875
|
const colors = /* @__PURE__ */ new Set();
|
|
@@ -59886,6 +59898,11 @@ var CustomColorsPlugin = class extends CoreViewPlugin {
|
|
|
59886
59898
|
if (chart === void 0) return [];
|
|
59887
59899
|
return [...JSON.stringify(chart.getDefinition()).matchAll(chartColorRegex)].map((color) => color[1]);
|
|
59888
59900
|
}
|
|
59901
|
+
getCarouselColors(sheetId, figureId) {
|
|
59902
|
+
if (this.getters.getFigure(sheetId, figureId)?.tag !== "carousel") return [];
|
|
59903
|
+
const titleColor = this.getters.getCarousel(figureId).title?.color;
|
|
59904
|
+
return titleColor ? [titleColor] : [];
|
|
59905
|
+
}
|
|
59889
59906
|
getTableColors(sheetId) {
|
|
59890
59907
|
return this.getters.getTables(sheetId).flatMap((table) => {
|
|
59891
59908
|
const config = table.config;
|
|
@@ -63102,7 +63119,7 @@ var TableComputedStylePlugin = class extends UIPlugin {
|
|
|
63102
63119
|
};
|
|
63103
63120
|
}
|
|
63104
63121
|
};
|
|
63105
|
-
const invalidateTableStyleCommandsSet = new Set([
|
|
63122
|
+
const invalidateTableStyleCommandsSet = /* @__PURE__ */ new Set([
|
|
63106
63123
|
"HIDE_COLUMNS_ROWS",
|
|
63107
63124
|
"UNHIDE_COLUMNS_ROWS",
|
|
63108
63125
|
"UNFOLD_HEADER_GROUP",
|
|
@@ -67371,14 +67388,14 @@ var InternalViewport = class {
|
|
|
67371
67388
|
adjustPositionX(targetCol) {
|
|
67372
67389
|
const sheetId = this.sheetId;
|
|
67373
67390
|
const { start, end } = this.getters.getColDimensions(sheetId, targetCol);
|
|
67374
|
-
if (this.offsetX + this.viewportWidth + this.offsetCorrectionX < end) this.offsetX = end - this.viewportWidth;
|
|
67391
|
+
if (this.offsetX + this.viewportWidth + this.offsetCorrectionX < end) this.offsetX = end - this.viewportWidth - this.offsetCorrectionX;
|
|
67375
67392
|
else if (this.offsetX + this.offsetCorrectionX > start) this.offsetX = start - this.offsetCorrectionX;
|
|
67376
67393
|
this.adjustViewportZoneX();
|
|
67377
67394
|
}
|
|
67378
67395
|
adjustPositionY(targetRow) {
|
|
67379
67396
|
const sheetId = this.sheetId;
|
|
67380
67397
|
const { start, end } = this.getters.getRowDimensions(sheetId, targetRow);
|
|
67381
|
-
if (this.offsetY + this.viewportHeight + this.offsetCorrectionY < end) this.offsetY = end - this.viewportHeight;
|
|
67398
|
+
if (this.offsetY + this.viewportHeight + this.offsetCorrectionY < end) this.offsetY = end - this.viewportHeight - this.offsetCorrectionY;
|
|
67382
67399
|
else if (this.offsetY + this.offsetCorrectionY > start) this.offsetY = start - this.offsetCorrectionY;
|
|
67383
67400
|
this.adjustViewportZoneY();
|
|
67384
67401
|
}
|
|
@@ -69960,11 +69977,14 @@ var BottomBarSheet = class extends Component {
|
|
|
69960
69977
|
}
|
|
69961
69978
|
});
|
|
69962
69979
|
this.DOMFocusableElementStore = useStore(DOMFocusableElementStore);
|
|
69963
|
-
useExternalListener(window, "click", ()
|
|
69980
|
+
useExternalListener(window, "click", this.onExternalClick.bind(this), { capture: true });
|
|
69964
69981
|
useEffect((sheetId) => {
|
|
69965
69982
|
if (this.props.sheetId === sheetId) this.scrollToSheet();
|
|
69966
69983
|
}, () => [this.env.model.getters.getActiveSheetId()]);
|
|
69967
69984
|
}
|
|
69985
|
+
onExternalClick(ev) {
|
|
69986
|
+
if (!ev.target.closest(".o-color-picker")) this.state.pickerOpened = false;
|
|
69987
|
+
}
|
|
69968
69988
|
focusInputAndSelectContent() {
|
|
69969
69989
|
if (!this.state.isEditing || !this.sheetNameRef.el) return;
|
|
69970
69990
|
this.sheetNameRef.el.focus();
|
|
@@ -70066,6 +70086,8 @@ var BottomBarSheet = class extends Component {
|
|
|
70066
70086
|
},
|
|
70067
70087
|
openSheetColorPickerCallback: () => {
|
|
70068
70088
|
this.state.pickerOpened = true;
|
|
70089
|
+
const sheet = this.env.model.getters.getSheet(this.props.sheetId);
|
|
70090
|
+
this.state.currentPickerColor = sheet.color;
|
|
70069
70091
|
}
|
|
70070
70092
|
});
|
|
70071
70093
|
}
|
|
@@ -74257,11 +74279,11 @@ function addBarChart(chart) {
|
|
|
74257
74279
|
<!-- each data marker in the series does not have a different color -->
|
|
74258
74280
|
<c:varyColors val="0"/>
|
|
74259
74281
|
${joinXmlNodes(rightDataSetsNodes)}
|
|
74260
|
-
<c:axId val="${
|
|
74261
|
-
<c:axId val="${
|
|
74282
|
+
<c:axId val="${17781238}" />
|
|
74283
|
+
<c:axId val="${88853994}" />
|
|
74262
74284
|
</c:barChart>
|
|
74263
|
-
${addAx("b", "c:catAx",
|
|
74264
|
-
${addAx("r", "c:valAx",
|
|
74285
|
+
${addAx("b", "c:catAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
|
|
74286
|
+
${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
|
|
74265
74287
|
` : ""}`;
|
|
74266
74288
|
}
|
|
74267
74289
|
function addComboChart(chart) {
|
|
@@ -74499,11 +74521,11 @@ function addLineChart(chart) {
|
|
|
74499
74521
|
<!-- each data marker in the series does not have a different color -->
|
|
74500
74522
|
<c:varyColors val="0"/>
|
|
74501
74523
|
${joinXmlNodes(rightDataSetsNodes)}
|
|
74502
|
-
<c:axId val="${
|
|
74503
|
-
<c:axId val="${
|
|
74524
|
+
<c:axId val="${17781238}" />
|
|
74525
|
+
<c:axId val="${88853994}" />
|
|
74504
74526
|
</c:lineChart>
|
|
74505
|
-
${addAx("b", "c:catAx",
|
|
74506
|
-
${addAx("r", "c:valAx",
|
|
74527
|
+
${addAx("b", "c:catAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
|
|
74528
|
+
${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
|
|
74507
74529
|
` : ""}
|
|
74508
74530
|
`;
|
|
74509
74531
|
}
|
|
@@ -74566,11 +74588,11 @@ function addScatterChart(chart) {
|
|
|
74566
74588
|
<c:varyColors val="0"/>
|
|
74567
74589
|
<c:scatterStyle val="lineMarker"/>
|
|
74568
74590
|
${joinXmlNodes(rightDataSetsNodes)}
|
|
74569
|
-
<c:axId val="${
|
|
74570
|
-
<c:axId val="${
|
|
74591
|
+
<c:axId val="${17781238}" />
|
|
74592
|
+
<c:axId val="${88853994}" />
|
|
74571
74593
|
</c:scatterChart>
|
|
74572
|
-
${addAx("b", "c:valAx",
|
|
74573
|
-
${addAx("r", "c:valAx",
|
|
74594
|
+
${addAx("b", "c:valAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
|
|
74595
|
+
${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
|
|
74574
74596
|
` : ""}`;
|
|
74575
74597
|
}
|
|
74576
74598
|
function addRadarChart(chart) {
|
|
@@ -79077,6 +79099,6 @@ const chartHelpers = {
|
|
|
79077
79099
|
//#endregion
|
|
79078
79100
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, ClientDisconnectedError, CommandResult, CorePlugin, CoreViewPlugin, DEFAULT_LOCALE, DEFAULT_LOCALES, DispatchResult, EvaluationError, LocalTransportService, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, categories, chartHelpers, components, constants, convertAstNodes, coreTypes, createAutocompleteArgumentsProvider, findCellInNewZone, functionCache, getCaretDownSvg, getCaretUpSvg, helpers, hooks, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
|
|
79079
79101
|
|
|
79080
|
-
__info__.version = "19.1.
|
|
79081
|
-
__info__.date = "2026-
|
|
79082
|
-
__info__.hash = "
|
|
79102
|
+
__info__.version = "19.1.26";
|
|
79103
|
+
__info__.date = "2026-07-01T05:03:31.665Z";
|
|
79104
|
+
__info__.hash = "44237c0";
|