@odoo/o-spreadsheet 19.3.6 → 19.3.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 +187 -148
- package/dist/o_spreadsheet.css +19 -11
- package/dist/o_spreadsheet.esm.js +187 -148
- package/dist/o_spreadsheet.iife.js +187 -148
- package/dist/o_spreadsheet.min.iife.js +27 -29
- package/dist/o_spreadsheet.xml +6 -5
- package/dist/types/components/bottom_bar/bottom_bar_sheet/bottom_bar_sheet.d.ts +1 -0
- package/dist/types/components/side_panel/find_and_replace/find_and_replace_store.d.ts +1 -1
- package/dist/types/components/tables/table_dropdown_button/table_dropdown_button.d.ts +1 -1
- package/dist/types/constants.d.ts +1 -1
- package/dist/types/helpers/pivot/pivot_helpers.d.ts +2 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/types/plugins/ui_core_views/custom_colors.d.ts +2 -0
- package/dist/types/registries/chart_data_source_registry.d.ts +3 -1
- package/dist/types/registries/chart_registry.d.ts +2 -4
- package/package.json +9 -6
|
@@ -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.3.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.3.10
|
|
6
|
+
* @date 2026-07-01T05:04:42.999Z
|
|
7
|
+
* @hash 040ae04
|
|
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";
|
|
@@ -234,7 +234,7 @@ const GRAY_400 = "#ced4da";
|
|
|
234
234
|
const GRAY_300 = "#D8DADD";
|
|
235
235
|
const GRAY_200 = "#E7E9ED";
|
|
236
236
|
const TEXT_BODY = "#374151";
|
|
237
|
-
const TEXT_BODY_MUTED =
|
|
237
|
+
const TEXT_BODY_MUTED = "#374151C2";
|
|
238
238
|
const ACTION_COLOR = HIGHLIGHT_COLOR;
|
|
239
239
|
const CHART_TITLE_FONT_SIZE = 16;
|
|
240
240
|
const DEFAULT_CHART_COLOR_SCALE = {
|
|
@@ -327,9 +327,6 @@ const COLOR_PICKER_DEFAULTS = [
|
|
|
327
327
|
];
|
|
328
328
|
const DEFAULT_CELL_HEIGHT = 23;
|
|
329
329
|
const FOOTER_HEIGHT = 2 * 23;
|
|
330
|
-
const MENU_SEPARATOR_BORDER_WIDTH = 1;
|
|
331
|
-
const MENU_SEPARATOR_PADDING = 5;
|
|
332
|
-
const MENU_SEPARATOR_HEIGHT = 1 + 2 * 5;
|
|
333
330
|
const ZOOM_VALUES = [
|
|
334
331
|
50,
|
|
335
332
|
75,
|
|
@@ -360,7 +357,7 @@ const DEFAULT_NUMBER_STYLE = {
|
|
|
360
357
|
const DEFAULT_VERTICAL_ALIGN = DEFAULT_STYLE.verticalAlign;
|
|
361
358
|
const DEFAULT_WRAPPING_MODE = DEFAULT_STYLE.wrapping;
|
|
362
359
|
const DEFAULT_FONT_SIZE = DEFAULT_STYLE.fontSize;
|
|
363
|
-
const DEFAULT_FONT = "'Roboto', arial";
|
|
360
|
+
const DEFAULT_FONT = "'Roboto', arial, 'Liberation Sans'";
|
|
364
361
|
const DEFAULT_BORDER_DESC = {
|
|
365
362
|
style: "thin",
|
|
366
363
|
color: "#000000"
|
|
@@ -1232,7 +1229,7 @@ function toXC(col, row, rangePart = {
|
|
|
1232
1229
|
function recomputeZones(zones, zonesToRemove = []) {
|
|
1233
1230
|
if (zones.length <= 1 && zonesToRemove.length === 0) return zones;
|
|
1234
1231
|
const profilesStartingPosition = [0];
|
|
1235
|
-
const profiles = new Map([[0, []]]);
|
|
1232
|
+
const profiles = /* @__PURE__ */ new Map([[0, []]]);
|
|
1236
1233
|
modifyProfiles(profilesStartingPosition, profiles, zones, false);
|
|
1237
1234
|
modifyProfiles(profilesStartingPosition, profiles, zonesToRemove, true);
|
|
1238
1235
|
return constructZonesFromProfiles(profilesStartingPosition, profiles);
|
|
@@ -3944,12 +3941,10 @@ const getNumberRegex = memoize(function getNumberRegex(locale) {
|
|
|
3944
3941
|
const pIntegerAndDecimals = `(?:\\d+(?:${escapeRegExp(locale.thousandsSeparator || "")}\\d{3,})*(?:${decimalSeparator}\\d*)?)`;
|
|
3945
3942
|
const pOnlyDecimals = `(?:${decimalSeparator}\\d+)`;
|
|
3946
3943
|
const pNumber = "(?:\\s*" + pIntegerAndDecimals + "|" + pOnlyDecimals + ")(?:(e|E)(?:\\+|-)?(?:[0-9]|[0-9][0-9]|[12][0-9]{2}|30[0-7]))?(?:\\s*%)?";
|
|
3947
|
-
const pMinus = "(?:\\s*-)?";
|
|
3948
|
-
const pCurrencyFormat = "(?:\\s*[\\$€])?";
|
|
3949
3944
|
const pNumberExp = "^(?:(?:" + [
|
|
3950
|
-
|
|
3951
|
-
|
|
3952
|
-
|
|
3945
|
+
"(?:\\s*-)?(?:\\s*[\\$€])?" + pNumber,
|
|
3946
|
+
"(?:\\s*-)?" + pNumber + "(?:\\s*[\\$€])?",
|
|
3947
|
+
"(?:\\s*[\\$€])?(?:\\s*-)?" + pNumber
|
|
3953
3948
|
].join(")|(?:") + "))$";
|
|
3954
3949
|
return new RegExp(pNumberExp, "i");
|
|
3955
3950
|
});
|
|
@@ -7551,7 +7546,7 @@ function isPositionDependent(cmd) {
|
|
|
7551
7546
|
function isZoneDependent(cmd) {
|
|
7552
7547
|
return "sheetId" in cmd && "zone" in cmd;
|
|
7553
7548
|
}
|
|
7554
|
-
const invalidateEvaluationCommands = new Set([
|
|
7549
|
+
const invalidateEvaluationCommands = /* @__PURE__ */ new Set([
|
|
7555
7550
|
"RENAME_SHEET",
|
|
7556
7551
|
"DELETE_SHEET",
|
|
7557
7552
|
"CREATE_SHEET",
|
|
@@ -7573,7 +7568,7 @@ const invalidateEvaluationCommands = new Set([
|
|
|
7573
7568
|
"UPDATE_NAMED_RANGE",
|
|
7574
7569
|
"DELETE_NAMED_RANGE"
|
|
7575
7570
|
]);
|
|
7576
|
-
const invalidateChartEvaluationCommands = new Set([
|
|
7571
|
+
const invalidateChartEvaluationCommands = /* @__PURE__ */ new Set([
|
|
7577
7572
|
"EVALUATE_CELLS",
|
|
7578
7573
|
"EVALUATE_CHARTS",
|
|
7579
7574
|
"UPDATE_CELL",
|
|
@@ -7592,20 +7587,20 @@ const invalidateChartEvaluationCommands = new Set([
|
|
|
7592
7587
|
"UNDO",
|
|
7593
7588
|
"REDO"
|
|
7594
7589
|
]);
|
|
7595
|
-
const invalidateDependenciesCommands = new Set(["MOVE_RANGES"]);
|
|
7596
|
-
const invalidateCFEvaluationCommands = new Set([
|
|
7590
|
+
const invalidateDependenciesCommands = /* @__PURE__ */ new Set(["MOVE_RANGES"]);
|
|
7591
|
+
const invalidateCFEvaluationCommands = /* @__PURE__ */ new Set([
|
|
7597
7592
|
"EVALUATE_CELLS",
|
|
7598
7593
|
"ADD_CONDITIONAL_FORMAT",
|
|
7599
7594
|
"REMOVE_CONDITIONAL_FORMAT",
|
|
7600
7595
|
"CHANGE_CONDITIONAL_FORMAT_PRIORITY"
|
|
7601
7596
|
]);
|
|
7602
|
-
const invalidateBordersCommands = new Set([
|
|
7597
|
+
const invalidateBordersCommands = /* @__PURE__ */ new Set([
|
|
7603
7598
|
"AUTOFILL_CELL",
|
|
7604
7599
|
"SET_BORDER",
|
|
7605
7600
|
"SET_ZONE_BORDERS",
|
|
7606
7601
|
"SET_BORDERS_ON_TARGET"
|
|
7607
7602
|
]);
|
|
7608
|
-
const invalidSubtotalFormulasCommands = new Set([
|
|
7603
|
+
const invalidSubtotalFormulasCommands = /* @__PURE__ */ new Set([
|
|
7609
7604
|
"UNHIDE_COLUMNS_ROWS",
|
|
7610
7605
|
"HIDE_COLUMNS_ROWS",
|
|
7611
7606
|
"GROUP_HEADERS",
|
|
@@ -7619,7 +7614,7 @@ const invalidSubtotalFormulasCommands = new Set([
|
|
|
7619
7614
|
"UPDATE_TABLE",
|
|
7620
7615
|
"UPDATE_FILTER"
|
|
7621
7616
|
]);
|
|
7622
|
-
const readonlyAllowedCommands = new Set([
|
|
7617
|
+
const readonlyAllowedCommands = /* @__PURE__ */ new Set([
|
|
7623
7618
|
"START",
|
|
7624
7619
|
"ACTIVATE_SHEET",
|
|
7625
7620
|
"COPY",
|
|
@@ -7635,7 +7630,7 @@ const readonlyAllowedCommands = new Set([
|
|
|
7635
7630
|
"UPDATE_CAROUSEL_ACTIVE_ITEM",
|
|
7636
7631
|
"UPDATE_PIVOT"
|
|
7637
7632
|
]);
|
|
7638
|
-
const lockedSheetAllowedCommands = new Set([
|
|
7633
|
+
const lockedSheetAllowedCommands = /* @__PURE__ */ new Set([
|
|
7639
7634
|
"LOCK_SHEET",
|
|
7640
7635
|
"UNLOCK_SHEET",
|
|
7641
7636
|
"MOVE_SHEET",
|
|
@@ -7666,7 +7661,7 @@ const lockedSheetAllowedCommands = new Set([
|
|
|
7666
7661
|
"SHIFT_VIEWPORT_DOWN",
|
|
7667
7662
|
"SHIFT_VIEWPORT_UP"
|
|
7668
7663
|
]);
|
|
7669
|
-
const coreTypes = new Set([
|
|
7664
|
+
const coreTypes = /* @__PURE__ */ new Set([
|
|
7670
7665
|
"UPDATE_CELL",
|
|
7671
7666
|
"UPDATE_CELL_POSITION",
|
|
7672
7667
|
"CLEAR_CELL",
|
|
@@ -8300,7 +8295,6 @@ function getCanonicalRepresentation(item) {
|
|
|
8300
8295
|
//#region src/helpers/edge_scrolling.ts
|
|
8301
8296
|
const MAX_DELAY = 140;
|
|
8302
8297
|
const MIN_DELAY = 20;
|
|
8303
|
-
const ACCELERATION = .035;
|
|
8304
8298
|
/**
|
|
8305
8299
|
* Decreasing exponential function used to determine the "speed" of edge-scrolling
|
|
8306
8300
|
* as the timeout delay.
|
|
@@ -8308,7 +8302,7 @@ const ACCELERATION = .035;
|
|
|
8308
8302
|
* Returns a timeout delay in milliseconds.
|
|
8309
8303
|
*/
|
|
8310
8304
|
function scrollDelay(value) {
|
|
8311
|
-
return 20 + (140 - 20) * Math.exp(
|
|
8305
|
+
return 20 + (140 - 20) * Math.exp(-.035 * (value - 1));
|
|
8312
8306
|
}
|
|
8313
8307
|
|
|
8314
8308
|
//#endregion
|
|
@@ -8711,7 +8705,7 @@ var UuidGenerator = class {
|
|
|
8711
8705
|
const cryptoObj = this.getCrypto();
|
|
8712
8706
|
if (cryptoObj) return "10000000-1000".replace(/[01]/g, (c) => {
|
|
8713
8707
|
const n = Number(c);
|
|
8714
|
-
return (n ^ cryptoObj.getRandomValues(new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
8708
|
+
return (n ^ cryptoObj.getRandomValues(/* @__PURE__ */ new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
8715
8709
|
});
|
|
8716
8710
|
else return "xxxxxxxx-xxxx".replace(/[xy]/g, function(c) {
|
|
8717
8711
|
const r = Math.random() * 16 | 0;
|
|
@@ -8726,7 +8720,7 @@ var UuidGenerator = class {
|
|
|
8726
8720
|
const cryptoObj = this.getCrypto();
|
|
8727
8721
|
if (cryptoObj) return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, (c) => {
|
|
8728
8722
|
const n = Number(c);
|
|
8729
|
-
return (n ^ cryptoObj.getRandomValues(new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
8723
|
+
return (n ^ cryptoObj.getRandomValues(/* @__PURE__ */ new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
8730
8724
|
});
|
|
8731
8725
|
else return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
|
|
8732
8726
|
const r = Math.random() * 16 | 0;
|
|
@@ -12748,7 +12742,7 @@ const availableConditionalFormatOperators = new Set(cfOperators);
|
|
|
12748
12742
|
|
|
12749
12743
|
//#endregion
|
|
12750
12744
|
//#region src/types/data_validation.ts
|
|
12751
|
-
const availableDataValidationOperators = new Set([
|
|
12745
|
+
const availableDataValidationOperators = /* @__PURE__ */ new Set([
|
|
12752
12746
|
"containsText",
|
|
12753
12747
|
"notContainsText",
|
|
12754
12748
|
"isEqualText",
|
|
@@ -13342,10 +13336,10 @@ function toNormalizedPivotValue(dimension, groupValue) {
|
|
|
13342
13336
|
type: dimension.type
|
|
13343
13337
|
}));
|
|
13344
13338
|
if (groupValueString.toLowerCase() === "false") return false;
|
|
13345
|
-
return pivotNormalizationValueRegistry.get(dimension.type)(groupValueString, dimension
|
|
13339
|
+
return pivotNormalizationValueRegistry.get(dimension.type)(groupValueString, dimension);
|
|
13346
13340
|
}
|
|
13347
|
-
function normalizeDateTime(value,
|
|
13348
|
-
return pivotTimeAdapter(granularity ?? "month").normalizeFunctionValue(value);
|
|
13341
|
+
function normalizeDateTime(value, dimension) {
|
|
13342
|
+
return pivotTimeAdapter(dimension.granularity ?? "month").normalizeFunctionValue(value);
|
|
13349
13343
|
}
|
|
13350
13344
|
function toFunctionPivotValue(value, dimension) {
|
|
13351
13345
|
if (value === null) return `"null"`;
|
|
@@ -15944,6 +15938,59 @@ function getCarouselItemTitle(getters, item) {
|
|
|
15944
15938
|
return (chartSubtypeRegistry.getAll().find((c) => c.matcher?.(definition)) || chartSubtypeRegistry.get(definition.type)).displayName;
|
|
15945
15939
|
}
|
|
15946
15940
|
|
|
15941
|
+
//#endregion
|
|
15942
|
+
//#region src/components/helpers/css.ts
|
|
15943
|
+
function getTextDecoration({ strikethrough, underline }) {
|
|
15944
|
+
if (!strikethrough && !underline) return "none";
|
|
15945
|
+
return `${strikethrough ? "line-through" : ""} ${underline ? "underline" : ""}`;
|
|
15946
|
+
}
|
|
15947
|
+
/**
|
|
15948
|
+
* Convert the cell style to CSS properties.
|
|
15949
|
+
*/
|
|
15950
|
+
function cellStyleToCss(style) {
|
|
15951
|
+
const attributes = cellTextStyleToCss(style);
|
|
15952
|
+
if (!style) return attributes;
|
|
15953
|
+
if (style.fillColor) attributes["background"] = style.fillColor;
|
|
15954
|
+
return attributes;
|
|
15955
|
+
}
|
|
15956
|
+
/**
|
|
15957
|
+
* Convert the cell text style to CSS properties.
|
|
15958
|
+
*/
|
|
15959
|
+
function cellTextStyleToCss(style) {
|
|
15960
|
+
const attributes = {};
|
|
15961
|
+
if (!style) return attributes;
|
|
15962
|
+
if (style.bold) attributes["font-weight"] = "bold";
|
|
15963
|
+
if (style.italic) attributes["font-style"] = "italic";
|
|
15964
|
+
if (style.fontSize) attributes["font-size"] = `${style.fontSize}px`;
|
|
15965
|
+
if (style.strikethrough || style.underline) {
|
|
15966
|
+
let decoration = style.strikethrough ? "line-through" : "";
|
|
15967
|
+
decoration = style.underline ? decoration + " underline" : decoration;
|
|
15968
|
+
attributes["text-decoration"] = decoration;
|
|
15969
|
+
}
|
|
15970
|
+
if (style.textColor) attributes["color"] = style.textColor;
|
|
15971
|
+
return attributes;
|
|
15972
|
+
}
|
|
15973
|
+
/**
|
|
15974
|
+
* Transform CSS properties into a CSS string.
|
|
15975
|
+
*/
|
|
15976
|
+
function cssPropertiesToCss(attributes) {
|
|
15977
|
+
let styleStr = "";
|
|
15978
|
+
for (const attName in attributes) {
|
|
15979
|
+
if (!attributes[attName]) continue;
|
|
15980
|
+
styleStr += `${attName}:${attributes[attName]}; `;
|
|
15981
|
+
}
|
|
15982
|
+
return styleStr;
|
|
15983
|
+
}
|
|
15984
|
+
function getElementMargins(el) {
|
|
15985
|
+
const style = window.getComputedStyle(el);
|
|
15986
|
+
return {
|
|
15987
|
+
top: parseInt(style.marginTop, 10) || 0,
|
|
15988
|
+
bottom: parseInt(style.marginBottom, 10) || 0,
|
|
15989
|
+
left: parseInt(style.marginLeft, 10) || 0,
|
|
15990
|
+
right: parseInt(style.marginRight, 10) || 0
|
|
15991
|
+
};
|
|
15992
|
+
}
|
|
15993
|
+
|
|
15947
15994
|
//#endregion
|
|
15948
15995
|
//#region src/components/figures/chart/chartJs/zoomable_chart/zoomable_chart_store.ts
|
|
15949
15996
|
const TREND_LINE_AXES_IDS = ["x1", MOVING_AVERAGE_TREND_LINE_XAXIS_ID];
|
|
@@ -16062,9 +16109,7 @@ var ZoomableChartJsComponent = class extends ChartJsComponent {
|
|
|
16062
16109
|
this.removeEventListeners();
|
|
16063
16110
|
}
|
|
16064
16111
|
get containerStyle() {
|
|
16065
|
-
return `
|
|
16066
|
-
height:${this.sliceable ? `calc(100% - ${60}px)` : "100%"};
|
|
16067
|
-
`;
|
|
16112
|
+
return cssPropertiesToCss({ height: this.sliceable ? `calc(100% - ${60}px)` : "100%" });
|
|
16068
16113
|
}
|
|
16069
16114
|
get masterChartContainerStyle() {
|
|
16070
16115
|
const runtime = this.env.model.getters.getChartRuntime(this.props.chartId);
|
|
@@ -16928,59 +16973,6 @@ var FullScreenFigureStore = class extends SpreadsheetStore {
|
|
|
16928
16973
|
}
|
|
16929
16974
|
};
|
|
16930
16975
|
|
|
16931
|
-
//#endregion
|
|
16932
|
-
//#region src/components/helpers/css.ts
|
|
16933
|
-
function getTextDecoration({ strikethrough, underline }) {
|
|
16934
|
-
if (!strikethrough && !underline) return "none";
|
|
16935
|
-
return `${strikethrough ? "line-through" : ""} ${underline ? "underline" : ""}`;
|
|
16936
|
-
}
|
|
16937
|
-
/**
|
|
16938
|
-
* Convert the cell style to CSS properties.
|
|
16939
|
-
*/
|
|
16940
|
-
function cellStyleToCss(style) {
|
|
16941
|
-
const attributes = cellTextStyleToCss(style);
|
|
16942
|
-
if (!style) return attributes;
|
|
16943
|
-
if (style.fillColor) attributes["background"] = style.fillColor;
|
|
16944
|
-
return attributes;
|
|
16945
|
-
}
|
|
16946
|
-
/**
|
|
16947
|
-
* Convert the cell text style to CSS properties.
|
|
16948
|
-
*/
|
|
16949
|
-
function cellTextStyleToCss(style) {
|
|
16950
|
-
const attributes = {};
|
|
16951
|
-
if (!style) return attributes;
|
|
16952
|
-
if (style.bold) attributes["font-weight"] = "bold";
|
|
16953
|
-
if (style.italic) attributes["font-style"] = "italic";
|
|
16954
|
-
if (style.fontSize) attributes["font-size"] = `${style.fontSize}px`;
|
|
16955
|
-
if (style.strikethrough || style.underline) {
|
|
16956
|
-
let decoration = style.strikethrough ? "line-through" : "";
|
|
16957
|
-
decoration = style.underline ? decoration + " underline" : decoration;
|
|
16958
|
-
attributes["text-decoration"] = decoration;
|
|
16959
|
-
}
|
|
16960
|
-
if (style.textColor) attributes["color"] = style.textColor;
|
|
16961
|
-
return attributes;
|
|
16962
|
-
}
|
|
16963
|
-
/**
|
|
16964
|
-
* Transform CSS properties into a CSS string.
|
|
16965
|
-
*/
|
|
16966
|
-
function cssPropertiesToCss(attributes) {
|
|
16967
|
-
let styleStr = "";
|
|
16968
|
-
for (const attName in attributes) {
|
|
16969
|
-
if (!attributes[attName]) continue;
|
|
16970
|
-
styleStr += `${attName}:${attributes[attName]}; `;
|
|
16971
|
-
}
|
|
16972
|
-
return styleStr;
|
|
16973
|
-
}
|
|
16974
|
-
function getElementMargins(el) {
|
|
16975
|
-
const style = window.getComputedStyle(el);
|
|
16976
|
-
return {
|
|
16977
|
-
top: parseInt(style.marginTop, 10) || 0,
|
|
16978
|
-
bottom: parseInt(style.marginBottom, 10) || 0,
|
|
16979
|
-
left: parseInt(style.marginLeft, 10) || 0,
|
|
16980
|
-
right: parseInt(style.marginRight, 10) || 0
|
|
16981
|
-
};
|
|
16982
|
-
}
|
|
16983
|
-
|
|
16984
16976
|
//#endregion
|
|
16985
16977
|
//#region src/stores/DOM_focus_store.ts
|
|
16986
16978
|
var DOMFocusableElementStore = class {
|
|
@@ -18228,11 +18220,11 @@ var FigureComponent = class extends Component {
|
|
|
18228
18220
|
getResizerPosition(resizer) {
|
|
18229
18221
|
const anchorCenteringOffset = (ANCHOR_SIZE - ACTIVE_BORDER_WIDTH) / 2;
|
|
18230
18222
|
const style = {};
|
|
18231
|
-
if (resizer.includes("top")) style.top =
|
|
18232
|
-
else if (resizer.includes("bottom")) style.bottom =
|
|
18223
|
+
if (resizer.includes("top")) style.top = `-3px`;
|
|
18224
|
+
else if (resizer.includes("bottom")) style.bottom = `-3px`;
|
|
18233
18225
|
else style.bottom = `calc(50% - ${anchorCenteringOffset}px)`;
|
|
18234
|
-
if (resizer.includes("left")) style.left =
|
|
18235
|
-
else if (resizer.includes("right")) style.right =
|
|
18226
|
+
if (resizer.includes("left")) style.left = `-3px`;
|
|
18227
|
+
else if (resizer.includes("right")) style.right = `-3px`;
|
|
18236
18228
|
else style.right = `calc(50% - ${anchorCenteringOffset}px)`;
|
|
18237
18229
|
return cssPropertiesToCss(style);
|
|
18238
18230
|
}
|
|
@@ -25830,6 +25822,7 @@ function mapParenthesisCode(tokens) {
|
|
|
25830
25822
|
function mapParentFunction(tokens) {
|
|
25831
25823
|
const stack = [];
|
|
25832
25824
|
let functionStarted = "";
|
|
25825
|
+
let braceDepth = 0;
|
|
25833
25826
|
function pushTokenToFunctionContext(token) {
|
|
25834
25827
|
if (stack.length === 0) return;
|
|
25835
25828
|
const functionContext = stack.at(-1);
|
|
@@ -25842,7 +25835,7 @@ function mapParentFunction(tokens) {
|
|
|
25842
25835
|
});
|
|
25843
25836
|
}
|
|
25844
25837
|
}
|
|
25845
|
-
return tokens.map((token
|
|
25838
|
+
return tokens.map((token) => {
|
|
25846
25839
|
if (!["SPACE", "LEFT_PAREN"].includes(token.type)) functionStarted = "";
|
|
25847
25840
|
switch (token.type) {
|
|
25848
25841
|
case "SYMBOL":
|
|
@@ -25863,8 +25856,16 @@ function mapParentFunction(tokens) {
|
|
|
25863
25856
|
stack.pop()?.argsTokens?.flat().forEach(pushTokenToFunctionContext);
|
|
25864
25857
|
pushTokenToFunctionContext(token);
|
|
25865
25858
|
break;
|
|
25859
|
+
case "LEFT_BRACE":
|
|
25860
|
+
braceDepth++;
|
|
25861
|
+
pushTokenToFunctionContext(token);
|
|
25862
|
+
break;
|
|
25863
|
+
case "RIGHT_BRACE":
|
|
25864
|
+
braceDepth--;
|
|
25865
|
+
pushTokenToFunctionContext(token);
|
|
25866
|
+
break;
|
|
25866
25867
|
case "ARG_SEPARATOR":
|
|
25867
|
-
if (stack.length) stack[stack.length - 1].argPosition++;
|
|
25868
|
+
if (stack.length && braceDepth === 0) stack[stack.length - 1].argPosition++;
|
|
25868
25869
|
pushTokenToFunctionContext(token);
|
|
25869
25870
|
break;
|
|
25870
25871
|
default:
|
|
@@ -27216,10 +27217,7 @@ function startDnd(onPointerMove, onPointerUp) {
|
|
|
27216
27217
|
//#endregion
|
|
27217
27218
|
//#region src/components/color_picker/color_picker.ts
|
|
27218
27219
|
const ITEM_BORDER_WIDTH = 1;
|
|
27219
|
-
const
|
|
27220
|
-
const ITEMS_PER_LINE = 10;
|
|
27221
|
-
const MAGNIFIER_EDGE = 16;
|
|
27222
|
-
const CONTENT_WIDTH = ITEMS_PER_LINE * (ITEM_EDGE_LENGTH + 2 * ITEM_BORDER_WIDTH) + (ITEMS_PER_LINE - 1) * 2;
|
|
27220
|
+
const CONTENT_WIDTH = 218;
|
|
27223
27221
|
const INNER_GRADIENT_WIDTH = CONTENT_WIDTH - 2 * ITEM_BORDER_WIDTH;
|
|
27224
27222
|
const INNER_GRADIENT_HEIGHT = CONTENT_WIDTH - 30 - 2 * ITEM_BORDER_WIDTH;
|
|
27225
27223
|
var ColorPicker = class extends Component {
|
|
@@ -27283,8 +27281,8 @@ var ColorPicker = class extends Component {
|
|
|
27283
27281
|
const left = Math.round(INNER_GRADIENT_WIDTH * clip(s / 100, 0, 1));
|
|
27284
27282
|
const top = Math.round(INNER_GRADIENT_HEIGHT * clip(1 - 2 * l / (200 - s), 0, 1));
|
|
27285
27283
|
return cssPropertiesToCss({
|
|
27286
|
-
left: `${-
|
|
27287
|
-
top: `${-
|
|
27284
|
+
left: `${-16 / 2 + left}px`,
|
|
27285
|
+
top: `${-16 / 2 + top}px`,
|
|
27288
27286
|
background: hslaToHex(this.state.currentHslaColor)
|
|
27289
27287
|
});
|
|
27290
27288
|
}
|
|
@@ -32824,9 +32822,12 @@ var SpreadsheetChart = class SpreadsheetChart {
|
|
|
32824
32822
|
labelValues: []
|
|
32825
32823
|
})
|
|
32826
32824
|
};
|
|
32827
|
-
return this.chartTypeBuilder.getRuntime(getters, this.definition, dataExtractors, this.sheetId, {
|
|
32828
|
-
|
|
32829
|
-
|
|
32825
|
+
return this.chartTypeBuilder.getRuntime(getters, this.definition, dataExtractors, this.sheetId, {
|
|
32826
|
+
onClick: (event, items, chartJsChart) => {
|
|
32827
|
+
return this.dataSourceBuilder.onDataSetClick?.(this.definition.type, chartId, event, items, chartJsChart, getters);
|
|
32828
|
+
},
|
|
32829
|
+
onHover: (event, items, chartJsChart) => this.dataSourceBuilder.onDataSetHover?.(this.definition.type, chartId, event, items, chartJsChart)
|
|
32830
|
+
});
|
|
32830
32831
|
}
|
|
32831
32832
|
static deleteInvalidKeys(definition) {
|
|
32832
32833
|
definition = { ...definition };
|
|
@@ -33033,7 +33034,7 @@ function getChartDatasetValues(getters, dataSets) {
|
|
|
33033
33034
|
if (cell) label = cell.formattedValue;
|
|
33034
33035
|
}
|
|
33035
33036
|
let data = ds.dataRange ? getData(getters, ds) : [];
|
|
33036
|
-
if (data.every((cell) => !cell.value || isTextResult(cell)) && data.filter(isTextResult).length > 1) data = data.map((cell) => cell.value && isErrorResult(cell) ? ONE : EMPTY);
|
|
33037
|
+
if (data.every((cell) => !cell.value || isTextResult(cell)) && data.filter(isTextResult).length > 1) data = data.map((cell) => cell.value && !isErrorResult(cell) ? ONE : EMPTY);
|
|
33037
33038
|
else if (data.every((cell) => !isNumberResult(cell))) hidden = true;
|
|
33038
33039
|
datasetValues.push({
|
|
33039
33040
|
data,
|
|
@@ -36023,9 +36024,9 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
36023
36024
|
allSheetsMatches = [];
|
|
36024
36025
|
activeSheetMatches = [];
|
|
36025
36026
|
specificRangeMatches = [];
|
|
36027
|
+
selectedMatchPosition = null;
|
|
36026
36028
|
currentSearchRegex = null;
|
|
36027
36029
|
initialShowFormulaState;
|
|
36028
|
-
preserveSelectedMatchIndex = false;
|
|
36029
36030
|
irreplaceableMatchCount = 0;
|
|
36030
36031
|
isSearchDirty = false;
|
|
36031
36032
|
shouldFinalizeUpdateSelection = false;
|
|
@@ -36147,7 +36148,10 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
36147
36148
|
*/
|
|
36148
36149
|
_updateSearch(toSearch, searchOptions) {
|
|
36149
36150
|
this.searchOptions = searchOptions;
|
|
36150
|
-
if (toSearch !== this.toSearch)
|
|
36151
|
+
if (toSearch !== this.toSearch) {
|
|
36152
|
+
this.selectedMatchIndex = null;
|
|
36153
|
+
this.selectedMatchPosition = null;
|
|
36154
|
+
}
|
|
36151
36155
|
this.toSearch = toSearch;
|
|
36152
36156
|
this.currentSearchRegex = getSearchRegex(this.toSearch, this.searchOptions);
|
|
36153
36157
|
this.refreshSearch({
|
|
@@ -36159,8 +36163,14 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
36159
36163
|
* refresh the matches according to the current search options
|
|
36160
36164
|
*/
|
|
36161
36165
|
refreshSearch(options) {
|
|
36162
|
-
if (!this.preserveSelectedMatchIndex) this.selectedMatchIndex = null;
|
|
36163
36166
|
this.findMatches();
|
|
36167
|
+
if (this.selectedMatchPosition) if (this.selectedMatchPosition.sheetId !== this.getters.getActiveSheetId()) {
|
|
36168
|
+
this.selectedMatchIndex = null;
|
|
36169
|
+
this.selectedMatchPosition = null;
|
|
36170
|
+
} else {
|
|
36171
|
+
const index = this.searchMatches.findIndex((match) => match.sheetId === this.selectedMatchPosition?.sheetId && match.col === this.selectedMatchPosition?.col && match.row === this.selectedMatchPosition?.row);
|
|
36172
|
+
if (index !== -1) this.selectedMatchIndex = index;
|
|
36173
|
+
}
|
|
36164
36174
|
this.selectNextCell(0, options);
|
|
36165
36175
|
}
|
|
36166
36176
|
getSheetsInSearchOrder() {
|
|
@@ -36228,6 +36238,7 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
36228
36238
|
const matches = this.searchMatches;
|
|
36229
36239
|
if (!matches.length) {
|
|
36230
36240
|
this.selectedMatchIndex = null;
|
|
36241
|
+
this.selectedMatchPosition = null;
|
|
36231
36242
|
return;
|
|
36232
36243
|
}
|
|
36233
36244
|
let nextIndex;
|
|
@@ -36241,14 +36252,13 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
36241
36252
|
} else nextIndex = this.selectedMatchIndex + indexChange;
|
|
36242
36253
|
nextIndex = (nextIndex + matches.length) % matches.length;
|
|
36243
36254
|
this.selectedMatchIndex = nextIndex;
|
|
36255
|
+
this.selectedMatchPosition = matches[this.selectedMatchIndex];
|
|
36244
36256
|
const selectedMatch = matches[nextIndex];
|
|
36245
36257
|
if (options.jumpToMatchSheet && this.getters.getActiveSheetId() !== selectedMatch.sheetId) {
|
|
36246
|
-
this.preserveSelectedMatchIndex = true;
|
|
36247
36258
|
this.model.dispatch("ACTIVATE_SHEET", {
|
|
36248
36259
|
sheetIdFrom: this.getters.getActiveSheetId(),
|
|
36249
36260
|
sheetIdTo: selectedMatch.sheetId
|
|
36250
36261
|
});
|
|
36251
|
-
this.preserveSelectedMatchIndex = false;
|
|
36252
36262
|
this.isSearchDirty = false;
|
|
36253
36263
|
}
|
|
36254
36264
|
this.model.selection.getBackToDefault();
|
|
@@ -36259,7 +36269,6 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
36259
36269
|
*/
|
|
36260
36270
|
replace() {
|
|
36261
36271
|
if (this.selectedMatchIndex === null) return;
|
|
36262
|
-
this.preserveSelectedMatchIndex = true;
|
|
36263
36272
|
this.shouldFinalizeUpdateSelection = true;
|
|
36264
36273
|
this.model.dispatch("REPLACE_SEARCH", {
|
|
36265
36274
|
searchString: this.toSearch,
|
|
@@ -36267,7 +36276,6 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
36267
36276
|
matches: [this.searchMatches[this.selectedMatchIndex]],
|
|
36268
36277
|
searchOptions: this.searchOptions
|
|
36269
36278
|
});
|
|
36270
|
-
this.preserveSelectedMatchIndex = false;
|
|
36271
36279
|
}
|
|
36272
36280
|
/**
|
|
36273
36281
|
* Apply the replace function to all the matches one time.
|
|
@@ -41203,7 +41211,7 @@ var TableStylePreview = class extends Component {
|
|
|
41203
41211
|
mode: "pivot",
|
|
41204
41212
|
numberOfCols: 5,
|
|
41205
41213
|
numberOfRows: 8,
|
|
41206
|
-
mainSubHeaderRows: new Set([props.tableConfig.numberOfHeaders, props.tableConfig.numberOfHeaders + 3])
|
|
41214
|
+
mainSubHeaderRows: /* @__PURE__ */ new Set([props.tableConfig.numberOfHeaders, props.tableConfig.numberOfHeaders + 3])
|
|
41207
41215
|
};
|
|
41208
41216
|
drawPreviewTable(ctx, getComputedTableStyle(props.tableConfig, props.tableStyle, tableMetaData), {
|
|
41209
41217
|
...tableMetaData,
|
|
@@ -44529,9 +44537,12 @@ var CellComposerStore = class extends AbstractComposerStore {
|
|
|
44529
44537
|
}
|
|
44530
44538
|
stopEdition(direction) {
|
|
44531
44539
|
if (this.canStopEdition()) {
|
|
44540
|
+
const { col, row } = this.currentEditedCell;
|
|
44532
44541
|
this._stopEdition();
|
|
44533
|
-
if (direction) if (this.getters.isSingleCellOrMerge(this.sheetId, this.getters.getSelectedZone()))
|
|
44534
|
-
|
|
44542
|
+
if (direction) if (this.getters.isSingleCellOrMerge(this.sheetId, this.getters.getSelectedZone())) {
|
|
44543
|
+
this.model.selection.selectCell(col, row);
|
|
44544
|
+
this.model.selection.moveAnchorCell(direction, 1);
|
|
44545
|
+
} else moveAnchorWithinSelection(this.getters, this.model.selection, direction);
|
|
44535
44546
|
return;
|
|
44536
44547
|
}
|
|
44537
44548
|
const editedCell = this.currentEditedCell;
|
|
@@ -48541,7 +48552,7 @@ var Grid = class extends Component {
|
|
|
48541
48552
|
ev.preventDefault();
|
|
48542
48553
|
const clipboardData = ev.clipboardData;
|
|
48543
48554
|
if (!clipboardData) return;
|
|
48544
|
-
const image = [...clipboardData.files]
|
|
48555
|
+
const image = [...clipboardData.files].find((file) => AllowedImageMimeTypes.includes(file.type));
|
|
48545
48556
|
const osClipboard = { content: {
|
|
48546
48557
|
["text/plain"]: clipboardData?.getData("text/plain"),
|
|
48547
48558
|
["text/html"]: clipboardData?.getData("text/html")
|
|
@@ -54607,7 +54618,7 @@ function compareIntervals(a, b) {
|
|
|
54607
54618
|
//#region src/plugins/ui_core_views/cell_evaluation/zone_set.ts
|
|
54608
54619
|
var ZoneSet = class ZoneSet {
|
|
54609
54620
|
profilesStartingPosition = [0];
|
|
54610
|
-
profiles = new Map([[0, []]]);
|
|
54621
|
+
profiles = /* @__PURE__ */ new Map([[0, []]]);
|
|
54611
54622
|
constructor(zones = []) {
|
|
54612
54623
|
for (const zone of zones) this.add(zone);
|
|
54613
54624
|
}
|
|
@@ -56035,7 +56046,7 @@ iconsOnCellRegistry.add("pivot_collapse", (getters, position) => {
|
|
|
56035
56046
|
if (!(definition.style?.tabularForm ?? DEFAULT_PIVOT_STYLE.tabularForm) && pivotCell.type === "HEADER" && pivotId && pivotCell.domain.length) {
|
|
56036
56047
|
const isDashboard = getters.isDashboard();
|
|
56037
56048
|
const fields = pivotCell.dimension === "COL" ? definition.columns : definition.rows;
|
|
56038
|
-
const hasIcon = !isDashboard && pivotCell.domain.length !== fields.length;
|
|
56049
|
+
const hasIcon = !isDashboard && !getters.shouldShowFormulas() && pivotCell.domain.length !== fields.length;
|
|
56039
56050
|
const isCollapsed = (definition.collapsedDomains?.[pivotCell.dimension] ?? []).some((domain) => deepEquals(domain, pivotCell.domain));
|
|
56040
56051
|
const indent = pivotCell.dimension === "ROW" ? (pivotCell.domain.length - 1) * 15 : 0;
|
|
56041
56052
|
return {
|
|
@@ -56224,12 +56235,22 @@ var CustomColorsPlugin = class extends CoreViewPlugin {
|
|
|
56224
56235
|
handle(cmd) {
|
|
56225
56236
|
switch (cmd.type) {
|
|
56226
56237
|
case "START":
|
|
56227
|
-
for (const sheetId of this.getters.getSheetIds())
|
|
56238
|
+
for (const sheetId of this.getters.getSheetIds()) {
|
|
56239
|
+
for (const chartId of this.getters.getChartIds(sheetId)) this.tryToAddColors(this.getChartColors(chartId));
|
|
56240
|
+
for (const figureId of this.getters.getFigures(sheetId)) this.tryToAddColors(this.getCarouselColors(sheetId, figureId.id));
|
|
56241
|
+
}
|
|
56228
56242
|
break;
|
|
56229
56243
|
case "UPDATE_CHART":
|
|
56230
56244
|
case "CREATE_CHART":
|
|
56231
56245
|
this.tryToAddColors(this.getChartColors(cmd.chartId));
|
|
56232
56246
|
break;
|
|
56247
|
+
case "CREATE_CAROUSEL":
|
|
56248
|
+
case "UPDATE_CAROUSEL":
|
|
56249
|
+
this.tryToAddColors(this.getCarouselColors(cmd.sheetId, cmd.figureId));
|
|
56250
|
+
break;
|
|
56251
|
+
case "COLOR_SHEET":
|
|
56252
|
+
if (cmd.color) this.tryToAddColors([cmd.color]);
|
|
56253
|
+
break;
|
|
56233
56254
|
case "UPDATE_CELL":
|
|
56234
56255
|
case "ADD_CONDITIONAL_FORMAT":
|
|
56235
56256
|
case "SET_BORDER":
|
|
@@ -56252,8 +56273,12 @@ var CustomColorsPlugin = class extends CoreViewPlugin {
|
|
|
56252
56273
|
}
|
|
56253
56274
|
computeCustomColors() {
|
|
56254
56275
|
let usedColors = [];
|
|
56255
|
-
for (const sheetId of this.getters.getSheetIds()) usedColors = usedColors.concat(this.getColorsFromCells(sheetId), this.getFormattingColors(sheetId), this.getTableColors(sheetId));
|
|
56256
|
-
return [
|
|
56276
|
+
for (const sheetId of this.getters.getSheetIds()) usedColors = usedColors.concat(this.getSheetColors(sheetId), this.getColorsFromCells(sheetId), this.getFormattingColors(sheetId), this.getTableColors(sheetId));
|
|
56277
|
+
return [.../* @__PURE__ */ new Set([...usedColors])];
|
|
56278
|
+
}
|
|
56279
|
+
getSheetColors(sheetId) {
|
|
56280
|
+
const sheet = this.getters.getSheet(sheetId);
|
|
56281
|
+
return sheet.color ? [sheet.color] : [];
|
|
56257
56282
|
}
|
|
56258
56283
|
getColorsFromCells(sheetId) {
|
|
56259
56284
|
const cells = Object.values(this.getters.getCells(sheetId));
|
|
@@ -56286,6 +56311,11 @@ var CustomColorsPlugin = class extends CoreViewPlugin {
|
|
|
56286
56311
|
if (chart === void 0) return [];
|
|
56287
56312
|
return [...JSON.stringify(chart.getRangeDefinition()).matchAll(chartColorRegex)].map((color) => color[1]);
|
|
56288
56313
|
}
|
|
56314
|
+
getCarouselColors(sheetId, figureId) {
|
|
56315
|
+
if (this.getters.getFigure(sheetId, figureId)?.tag !== "carousel") return [];
|
|
56316
|
+
const titleColor = this.getters.getCarousel(figureId).title?.color;
|
|
56317
|
+
return titleColor ? [titleColor] : [];
|
|
56318
|
+
}
|
|
56289
56319
|
getTableColors(sheetId) {
|
|
56290
56320
|
return this.getters.getTables(sheetId).flatMap((table) => {
|
|
56291
56321
|
const config = table.config;
|
|
@@ -59789,7 +59819,7 @@ var TableComputedStylePlugin = class extends UIPlugin {
|
|
|
59789
59819
|
};
|
|
59790
59820
|
}
|
|
59791
59821
|
};
|
|
59792
|
-
const invalidateTableStyleCommandsSet = new Set([
|
|
59822
|
+
const invalidateTableStyleCommandsSet = /* @__PURE__ */ new Set([
|
|
59793
59823
|
"HIDE_COLUMNS_ROWS",
|
|
59794
59824
|
"UNHIDE_COLUMNS_ROWS",
|
|
59795
59825
|
"UNFOLD_HEADER_GROUP",
|
|
@@ -64359,14 +64389,14 @@ var InternalViewport = class {
|
|
|
64359
64389
|
adjustPositionX(targetCol) {
|
|
64360
64390
|
const sheetId = this.sheetId;
|
|
64361
64391
|
const { start, end } = this.getters.getColDimensions(sheetId, targetCol);
|
|
64362
|
-
if (this.offsetX + this.viewportWidth + this.offsetCorrectionX < end) this.offsetX = end - this.viewportWidth;
|
|
64392
|
+
if (this.offsetX + this.viewportWidth + this.offsetCorrectionX < end) this.offsetX = end - this.viewportWidth - this.offsetCorrectionX;
|
|
64363
64393
|
else if (this.offsetX + this.offsetCorrectionX > start) this.offsetX = start - this.offsetCorrectionX;
|
|
64364
64394
|
this.adjustViewportZoneX();
|
|
64365
64395
|
}
|
|
64366
64396
|
adjustPositionY(targetRow) {
|
|
64367
64397
|
const sheetId = this.sheetId;
|
|
64368
64398
|
const { start, end } = this.getters.getRowDimensions(sheetId, targetRow);
|
|
64369
|
-
if (this.offsetY + this.viewportHeight + this.offsetCorrectionY < end) this.offsetY = end - this.viewportHeight;
|
|
64399
|
+
if (this.offsetY + this.viewportHeight + this.offsetCorrectionY < end) this.offsetY = end - this.viewportHeight - this.offsetCorrectionY;
|
|
64370
64400
|
else if (this.offsetY + this.offsetCorrectionY > start) this.offsetY = start - this.offsetCorrectionY;
|
|
64371
64401
|
this.adjustViewportZoneY();
|
|
64372
64402
|
}
|
|
@@ -67316,7 +67346,7 @@ var BottomBarSheet = class extends Component {
|
|
|
67316
67346
|
}
|
|
67317
67347
|
});
|
|
67318
67348
|
this.DOMFocusableElementStore = useStore(DOMFocusableElementStore);
|
|
67319
|
-
useExternalListener(window, "click", ()
|
|
67349
|
+
useExternalListener(window, "click", this.onExternalClick.bind(this), { capture: true });
|
|
67320
67350
|
useEffect((sheetId) => {
|
|
67321
67351
|
if (this.props.sheetId === sheetId) this.scrollToSheet();
|
|
67322
67352
|
}, () => [this.env.model.getters.getActiveSheetId()]);
|
|
@@ -67335,6 +67365,9 @@ var BottomBarSheet = class extends Component {
|
|
|
67335
67365
|
this.env.model.off("command-rejected", this);
|
|
67336
67366
|
});
|
|
67337
67367
|
}
|
|
67368
|
+
onExternalClick(ev) {
|
|
67369
|
+
if (!ev.target.closest(".o-color-picker")) this.state.pickerOpened = false;
|
|
67370
|
+
}
|
|
67338
67371
|
focusInputAndSelectContent() {
|
|
67339
67372
|
if (!this.state.isEditing || !this.sheetNameRef.el) return;
|
|
67340
67373
|
this.sheetNameRef.el.focus();
|
|
@@ -67438,6 +67471,8 @@ var BottomBarSheet = class extends Component {
|
|
|
67438
67471
|
},
|
|
67439
67472
|
openSheetColorPickerCallback: () => {
|
|
67440
67473
|
this.state.pickerOpened = true;
|
|
67474
|
+
const sheet = this.env.model.getters.getSheet(this.props.sheetId);
|
|
67475
|
+
this.state.currentPickerColor = sheet.color;
|
|
67441
67476
|
}
|
|
67442
67477
|
});
|
|
67443
67478
|
}
|
|
@@ -69473,7 +69508,7 @@ var TableDropdownButton = class extends Component {
|
|
|
69473
69508
|
this.closePopover();
|
|
69474
69509
|
return;
|
|
69475
69510
|
}
|
|
69476
|
-
const pivotId = this.
|
|
69511
|
+
const pivotId = this.dynamicPivotIdInSelection;
|
|
69477
69512
|
if (pivotId) {
|
|
69478
69513
|
this.env.openSidePanel("PivotSidePanel", {
|
|
69479
69514
|
pivotId,
|
|
@@ -69503,7 +69538,7 @@ var TableDropdownButton = class extends Component {
|
|
|
69503
69538
|
this.state.popoverProps = void 0;
|
|
69504
69539
|
}
|
|
69505
69540
|
get action() {
|
|
69506
|
-
if (this.
|
|
69541
|
+
if (this.dynamicPivotIdInSelection) return {
|
|
69507
69542
|
name: _t("Edit pivot style"),
|
|
69508
69543
|
icon: "o-spreadsheet-Icon.EDIT_TABLE"
|
|
69509
69544
|
};
|
|
@@ -69522,15 +69557,19 @@ var TableDropdownButton = class extends Component {
|
|
|
69522
69557
|
get tableStyles() {
|
|
69523
69558
|
return this.env.model.getters.getTableStyles();
|
|
69524
69559
|
}
|
|
69525
|
-
get
|
|
69560
|
+
get dynamicPivotIdInSelection() {
|
|
69526
69561
|
const selection = this.env.model.getters.getSelectedZones();
|
|
69527
|
-
|
|
69528
|
-
|
|
69529
|
-
|
|
69530
|
-
|
|
69531
|
-
|
|
69532
|
-
|
|
69533
|
-
|
|
69562
|
+
const pivotCellIds = new Set(this.env.model.getters.getCellsWithTrackedFormula("PIVOT"));
|
|
69563
|
+
if (pivotCellIds.size === 0) return;
|
|
69564
|
+
const activeSheetId = this.env.model.getters.getActiveSheetId();
|
|
69565
|
+
for (const zone of selection) for (const position of cellPositions(activeSheetId, zone)) {
|
|
69566
|
+
const mainPosition = this.env.model.getters.getArrayFormulaSpreadingOn(position);
|
|
69567
|
+
if (!mainPosition) continue;
|
|
69568
|
+
const cellId = this.env.model.getters.getCell(mainPosition)?.id;
|
|
69569
|
+
if (cellId && pivotCellIds.has(cellId)) {
|
|
69570
|
+
const pivotId = this.env.model.getters.getPivotIdFromPosition(mainPosition);
|
|
69571
|
+
if (pivotId) return pivotId;
|
|
69572
|
+
}
|
|
69534
69573
|
}
|
|
69535
69574
|
}
|
|
69536
69575
|
get class() {
|
|
@@ -72462,11 +72501,11 @@ function addBarChart(chart) {
|
|
|
72462
72501
|
<!-- each data marker in the series does not have a different color -->
|
|
72463
72502
|
<c:varyColors val="0"/>
|
|
72464
72503
|
${joinXmlNodes(rightDataSetsNodes)}
|
|
72465
|
-
<c:axId val="${
|
|
72466
|
-
<c:axId val="${
|
|
72504
|
+
<c:axId val="${17781238}" />
|
|
72505
|
+
<c:axId val="${88853994}" />
|
|
72467
72506
|
</c:barChart>
|
|
72468
|
-
${addAx("b", "c:catAx",
|
|
72469
|
-
${addAx("r", "c:valAx",
|
|
72507
|
+
${addAx("b", "c:catAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
|
|
72508
|
+
${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
|
|
72470
72509
|
` : ""}`;
|
|
72471
72510
|
}
|
|
72472
72511
|
function addComboChart(chart) {
|
|
@@ -72718,11 +72757,11 @@ function addLineChart(chart) {
|
|
|
72718
72757
|
<c:varyColors val="0"/>
|
|
72719
72758
|
${joinXmlNodes(rightDataSetsNodes)}
|
|
72720
72759
|
${insertDataLabels({ showValues: chart.showValues })}
|
|
72721
|
-
<c:axId val="${
|
|
72722
|
-
<c:axId val="${
|
|
72760
|
+
<c:axId val="${17781238}" />
|
|
72761
|
+
<c:axId val="${88853994}" />
|
|
72723
72762
|
</c:lineChart>
|
|
72724
|
-
${addAx("b", "c:catAx",
|
|
72725
|
-
${addAx("r", "c:valAx",
|
|
72763
|
+
${addAx("b", "c:catAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
|
|
72764
|
+
${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
|
|
72726
72765
|
` : ""}
|
|
72727
72766
|
`;
|
|
72728
72767
|
}
|
|
@@ -72788,11 +72827,11 @@ function addScatterChart(chart) {
|
|
|
72788
72827
|
<c:scatterStyle val="lineMarker"/>
|
|
72789
72828
|
${joinXmlNodes(rightDataSetsNodes)}
|
|
72790
72829
|
${insertDataLabels({ showValues: chart.showValues })}
|
|
72791
|
-
<c:axId val="${
|
|
72792
|
-
<c:axId val="${
|
|
72830
|
+
<c:axId val="${17781238}" />
|
|
72831
|
+
<c:axId val="${88853994}" />
|
|
72793
72832
|
</c:scatterChart>
|
|
72794
|
-
${addAx("b", "c:valAx",
|
|
72795
|
-
${addAx("r", "c:valAx",
|
|
72833
|
+
${addAx("b", "c:valAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
|
|
72834
|
+
${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
|
|
72796
72835
|
` : ""}`;
|
|
72797
72836
|
}
|
|
72798
72837
|
function addRadarChart(chart) {
|
|
@@ -84470,6 +84509,6 @@ const chartHelpers = {
|
|
|
84470
84509
|
//#endregion
|
|
84471
84510
|
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 };
|
|
84472
84511
|
|
|
84473
|
-
__info__.version = "19.3.
|
|
84474
|
-
__info__.date = "2026-
|
|
84475
|
-
__info__.hash = "
|
|
84512
|
+
__info__.version = "19.3.10";
|
|
84513
|
+
__info__.date = "2026-07-01T05:04:42.999Z";
|
|
84514
|
+
__info__.hash = "040ae04";
|