@odoo/o-spreadsheet 19.0.37 → 19.0.41
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 +109 -84
- package/dist/o_spreadsheet.iife.js +109 -84
- package/dist/o_spreadsheet.iife.min.js +25 -27
- package/dist/o_spreadsheet.xml +4 -4
- package/package.json +7 -2
- package/dist/o_spreadsheet.cjs.js +0 -79572
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.0.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.0.41
|
|
6
|
+
* @date 2026-07-01T05:03:21.811Z
|
|
7
|
+
* @hash 346d3c0
|
|
8
8
|
*/
|
|
9
9
|
/* Originates from src/components/top_bar/top_bar.scss */
|
|
10
10
|
@media (max-width: 1200px) {
|
|
@@ -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.0.
|
|
6
|
-
* @date 2026-
|
|
7
|
-
* @hash
|
|
5
|
+
* @version 19.0.41
|
|
6
|
+
* @date 2026-07-01T05:03:20.304Z
|
|
7
|
+
* @hash 346d3c0
|
|
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, xml } from "@odoo/owl";
|
|
@@ -213,7 +213,7 @@ const GRAY_300 = "#D8DADD";
|
|
|
213
213
|
const GRAY_200 = "#E7E9ED";
|
|
214
214
|
const GRAY_100 = "#F9FAFB";
|
|
215
215
|
const TEXT_BODY = "#374151";
|
|
216
|
-
const TEXT_BODY_MUTED =
|
|
216
|
+
const TEXT_BODY_MUTED = "#374151C2";
|
|
217
217
|
const TEXT_HEADING = "#111827";
|
|
218
218
|
const PRIMARY_BUTTON_BG = "#714B67";
|
|
219
219
|
const PRIMARY_BUTTON_HOVER_BG = "#624159";
|
|
@@ -321,9 +321,6 @@ const COLOR_PICKER_DEFAULTS = [
|
|
|
321
321
|
];
|
|
322
322
|
const DEFAULT_CELL_HEIGHT = 23;
|
|
323
323
|
const FOOTER_HEIGHT = 2 * 23;
|
|
324
|
-
const MENU_SEPARATOR_BORDER_WIDTH = 1;
|
|
325
|
-
const MENU_SEPARATOR_PADDING = 5;
|
|
326
|
-
const MENU_SEPARATOR_HEIGHT = 1 + 2 * 5;
|
|
327
324
|
const DEFAULT_STYLE = {
|
|
328
325
|
align: "left",
|
|
329
326
|
verticalAlign: "bottom",
|
|
@@ -343,7 +340,7 @@ const DEFAULT_NUMBER_STYLE = {
|
|
|
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"
|
|
@@ -1672,7 +1669,7 @@ function isPositionDependent(cmd) {
|
|
|
1672
1669
|
function isZoneDependent(cmd) {
|
|
1673
1670
|
return "sheetId" in cmd && "zone" in cmd;
|
|
1674
1671
|
}
|
|
1675
|
-
const invalidateEvaluationCommands = new Set([
|
|
1672
|
+
const invalidateEvaluationCommands = /* @__PURE__ */ new Set([
|
|
1676
1673
|
"RENAME_SHEET",
|
|
1677
1674
|
"DELETE_SHEET",
|
|
1678
1675
|
"CREATE_SHEET",
|
|
@@ -1691,7 +1688,7 @@ const invalidateEvaluationCommands = new Set([
|
|
|
1691
1688
|
"REMOVE_PIVOT",
|
|
1692
1689
|
"DUPLICATE_PIVOT"
|
|
1693
1690
|
]);
|
|
1694
|
-
const invalidateChartEvaluationCommands = new Set([
|
|
1691
|
+
const invalidateChartEvaluationCommands = /* @__PURE__ */ new Set([
|
|
1695
1692
|
"EVALUATE_CELLS",
|
|
1696
1693
|
"EVALUATE_CHARTS",
|
|
1697
1694
|
"UPDATE_CELL",
|
|
@@ -1710,20 +1707,20 @@ const invalidateChartEvaluationCommands = new Set([
|
|
|
1710
1707
|
"UNDO",
|
|
1711
1708
|
"REDO"
|
|
1712
1709
|
]);
|
|
1713
|
-
const invalidateDependenciesCommands = new Set(["MOVE_RANGES"]);
|
|
1714
|
-
const invalidateCFEvaluationCommands = new Set([
|
|
1710
|
+
const invalidateDependenciesCommands = /* @__PURE__ */ new Set(["MOVE_RANGES"]);
|
|
1711
|
+
const invalidateCFEvaluationCommands = /* @__PURE__ */ new Set([
|
|
1715
1712
|
"EVALUATE_CELLS",
|
|
1716
1713
|
"ADD_CONDITIONAL_FORMAT",
|
|
1717
1714
|
"REMOVE_CONDITIONAL_FORMAT",
|
|
1718
1715
|
"CHANGE_CONDITIONAL_FORMAT_PRIORITY"
|
|
1719
1716
|
]);
|
|
1720
|
-
const invalidateBordersCommands = new Set([
|
|
1717
|
+
const invalidateBordersCommands = /* @__PURE__ */ new Set([
|
|
1721
1718
|
"AUTOFILL_CELL",
|
|
1722
1719
|
"SET_BORDER",
|
|
1723
1720
|
"SET_ZONE_BORDERS",
|
|
1724
1721
|
"SET_BORDERS_ON_TARGET"
|
|
1725
1722
|
]);
|
|
1726
|
-
const invalidSubtotalFormulasCommands = new Set([
|
|
1723
|
+
const invalidSubtotalFormulasCommands = /* @__PURE__ */ new Set([
|
|
1727
1724
|
"UNHIDE_COLUMNS_ROWS",
|
|
1728
1725
|
"HIDE_COLUMNS_ROWS",
|
|
1729
1726
|
"GROUP_HEADERS",
|
|
@@ -1737,7 +1734,7 @@ const invalidSubtotalFormulasCommands = new Set([
|
|
|
1737
1734
|
"UPDATE_TABLE",
|
|
1738
1735
|
"UPDATE_FILTER"
|
|
1739
1736
|
]);
|
|
1740
|
-
const readonlyAllowedCommands = new Set([
|
|
1737
|
+
const readonlyAllowedCommands = /* @__PURE__ */ new Set([
|
|
1741
1738
|
"START",
|
|
1742
1739
|
"ACTIVATE_SHEET",
|
|
1743
1740
|
"COPY",
|
|
@@ -1751,7 +1748,7 @@ const readonlyAllowedCommands = new Set([
|
|
|
1751
1748
|
"UPDATE_CAROUSEL_ACTIVE_ITEM",
|
|
1752
1749
|
"UPDATE_PIVOT"
|
|
1753
1750
|
]);
|
|
1754
|
-
const coreTypes = new Set([
|
|
1751
|
+
const coreTypes = /* @__PURE__ */ new Set([
|
|
1755
1752
|
"UPDATE_CELL",
|
|
1756
1753
|
"UPDATE_CELL_POSITION",
|
|
1757
1754
|
"CLEAR_CELL",
|
|
@@ -1989,7 +1986,7 @@ let CommandResult = /* @__PURE__ */ function(CommandResult) {
|
|
|
1989
1986
|
|
|
1990
1987
|
//#endregion
|
|
1991
1988
|
//#region src/types/conditional_formatting.ts
|
|
1992
|
-
const availableConditionalFormatOperators = new Set([
|
|
1989
|
+
const availableConditionalFormatOperators = /* @__PURE__ */ new Set([
|
|
1993
1990
|
"containsText",
|
|
1994
1991
|
"notContainsText",
|
|
1995
1992
|
"isGreaterThan",
|
|
@@ -2009,7 +2006,7 @@ const availableConditionalFormatOperators = new Set([
|
|
|
2009
2006
|
|
|
2010
2007
|
//#endregion
|
|
2011
2008
|
//#region src/types/data_validation.ts
|
|
2012
|
-
const availableDataValidationOperators = new Set([
|
|
2009
|
+
const availableDataValidationOperators = /* @__PURE__ */ new Set([
|
|
2013
2010
|
"containsText",
|
|
2014
2011
|
"notContainsText",
|
|
2015
2012
|
"isEqualText",
|
|
@@ -2734,12 +2731,10 @@ const getNumberRegex = memoize(function getNumberRegex(locale) {
|
|
|
2734
2731
|
const pIntegerAndDecimals = `(?:\\d+(?:${escapeRegExp(locale.thousandsSeparator || "")}\\d{3,})*(?:${decimalSeparator}\\d*)?)`;
|
|
2735
2732
|
const pOnlyDecimals = `(?:${decimalSeparator}\\d+)`;
|
|
2736
2733
|
const pNumber = "(?:\\s*" + pIntegerAndDecimals + "|" + pOnlyDecimals + ")(?:e(?:\\+|-)?\\d+)?(?:\\s*%)?";
|
|
2737
|
-
const pMinus = "(?:\\s*-)?";
|
|
2738
|
-
const pCurrencyFormat = "(?:\\s*[\\$€])?";
|
|
2739
2734
|
const pNumberExp = "^(?:(?:" + [
|
|
2740
|
-
|
|
2741
|
-
|
|
2742
|
-
|
|
2735
|
+
"(?:\\s*-)?(?:\\s*[\\$€])?" + pNumber,
|
|
2736
|
+
"(?:\\s*-)?" + pNumber + "(?:\\s*[\\$€])?",
|
|
2737
|
+
"(?:\\s*[\\$€])?(?:\\s*-)?" + pNumber
|
|
2743
2738
|
].join(")|(?:") + "))$";
|
|
2744
2739
|
return new RegExp(pNumberExp, "i");
|
|
2745
2740
|
});
|
|
@@ -4676,7 +4671,7 @@ function getDateCriterionFormattedValues(values, locale) {
|
|
|
4676
4671
|
function recomputeZones(zones, zonesToRemove = []) {
|
|
4677
4672
|
if (zones.length <= 1 && zonesToRemove.length === 0) return zones;
|
|
4678
4673
|
const profilesStartingPosition = [0];
|
|
4679
|
-
const profiles = new Map([[0, []]]);
|
|
4674
|
+
const profiles = /* @__PURE__ */ new Map([[0, []]]);
|
|
4680
4675
|
modifyProfiles(profilesStartingPosition, profiles, zones, false);
|
|
4681
4676
|
modifyProfiles(profilesStartingPosition, profiles, zonesToRemove, true);
|
|
4682
4677
|
return constructZonesFromProfiles(profilesStartingPosition, profiles);
|
|
@@ -5464,7 +5459,6 @@ function getCanonicalRepresentation(item) {
|
|
|
5464
5459
|
//#region src/helpers/edge_scrolling.ts
|
|
5465
5460
|
const MAX_DELAY = 140;
|
|
5466
5461
|
const MIN_DELAY = 20;
|
|
5467
|
-
const ACCELERATION = .035;
|
|
5468
5462
|
/**
|
|
5469
5463
|
* Decreasing exponential function used to determine the "speed" of edge-scrolling
|
|
5470
5464
|
* as the timeout delay.
|
|
@@ -5472,7 +5466,7 @@ const ACCELERATION = .035;
|
|
|
5472
5466
|
* Returns a timeout delay in milliseconds.
|
|
5473
5467
|
*/
|
|
5474
5468
|
function scrollDelay(value) {
|
|
5475
|
-
return 20 + (140 - 20) * Math.exp(
|
|
5469
|
+
return 20 + (140 - 20) * Math.exp(-.035 * (value - 1));
|
|
5476
5470
|
}
|
|
5477
5471
|
|
|
5478
5472
|
//#endregion
|
|
@@ -6313,7 +6307,7 @@ var UuidGenerator = class {
|
|
|
6313
6307
|
smallUuid() {
|
|
6314
6308
|
if (window.crypto) return "10000000-1000".replace(/[01]/g, (c) => {
|
|
6315
6309
|
const n = Number(c);
|
|
6316
|
-
return (n ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
6310
|
+
return (n ^ crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
6317
6311
|
});
|
|
6318
6312
|
else return "xxxxxxxx-xxxx".replace(/[xy]/g, function(c) {
|
|
6319
6313
|
const r = Math.random() * 16 | 0;
|
|
@@ -6327,7 +6321,7 @@ var UuidGenerator = class {
|
|
|
6327
6321
|
uuidv4() {
|
|
6328
6322
|
if (window.crypto) return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, (c) => {
|
|
6329
6323
|
const n = Number(c);
|
|
6330
|
-
return (n ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
6324
|
+
return (n ^ crypto.getRandomValues(/* @__PURE__ */ new Uint8Array(1))[0] & 15 >> n / 4).toString(16);
|
|
6331
6325
|
});
|
|
6332
6326
|
else return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(c) {
|
|
6333
6327
|
const r = Math.random() * 16 | 0;
|
|
@@ -7878,10 +7872,10 @@ function toNormalizedPivotValue(dimension, groupValue) {
|
|
|
7878
7872
|
type: dimension.type
|
|
7879
7873
|
}));
|
|
7880
7874
|
if (groupValueString.toLowerCase() === "false") return false;
|
|
7881
|
-
return pivotNormalizationValueRegistry.get(dimension.type)(groupValueString, dimension
|
|
7875
|
+
return pivotNormalizationValueRegistry.get(dimension.type)(groupValueString, dimension);
|
|
7882
7876
|
}
|
|
7883
|
-
function normalizeDateTime(value,
|
|
7884
|
-
return pivotTimeAdapter(granularity ?? "month").normalizeFunctionValue(value);
|
|
7877
|
+
function normalizeDateTime(value, dimension) {
|
|
7878
|
+
return pivotTimeAdapter(dimension.granularity ?? "month").normalizeFunctionValue(value);
|
|
7885
7879
|
}
|
|
7886
7880
|
function toFunctionPivotValue(value, dimension) {
|
|
7887
7881
|
if (value === null) return `"null"`;
|
|
@@ -23511,9 +23505,7 @@ var ZoomableChartJsComponent = class extends ChartJsComponent {
|
|
|
23511
23505
|
this.removeEventListeners();
|
|
23512
23506
|
}
|
|
23513
23507
|
get containerStyle() {
|
|
23514
|
-
return `
|
|
23515
|
-
height:${this.sliceable ? `calc(100% - ${60}px)` : "100%"};
|
|
23516
|
-
`;
|
|
23508
|
+
return cssPropertiesToCss({ height: this.sliceable ? `calc(100% - ${60}px)` : "100%" });
|
|
23517
23509
|
}
|
|
23518
23510
|
get masterChartContainerStyle() {
|
|
23519
23511
|
const runtime = this.env.model.getters.getChartRuntime(this.props.chartId);
|
|
@@ -28189,11 +28181,11 @@ var FigureComponent = class extends Component {
|
|
|
28189
28181
|
getResizerPosition(resizer) {
|
|
28190
28182
|
const anchorCenteringOffset = (ANCHOR_SIZE - ACTIVE_BORDER_WIDTH) / 2;
|
|
28191
28183
|
const style = {};
|
|
28192
|
-
if (resizer.includes("top")) style.top =
|
|
28193
|
-
else if (resizer.includes("bottom")) style.bottom =
|
|
28184
|
+
if (resizer.includes("top")) style.top = `-3px`;
|
|
28185
|
+
else if (resizer.includes("bottom")) style.bottom = `-3px`;
|
|
28194
28186
|
else style.bottom = `calc(50% - ${anchorCenteringOffset}px)`;
|
|
28195
|
-
if (resizer.includes("left")) style.left =
|
|
28196
|
-
else if (resizer.includes("right")) style.right =
|
|
28187
|
+
if (resizer.includes("left")) style.left = `-3px`;
|
|
28188
|
+
else if (resizer.includes("right")) style.right = `-3px`;
|
|
28197
28189
|
else style.right = `calc(50% - ${anchorCenteringOffset}px)`;
|
|
28198
28190
|
return cssPropertiesToCss(style);
|
|
28199
28191
|
}
|
|
@@ -31104,11 +31096,10 @@ function startDnd(onPointerMove, onPointerUp) {
|
|
|
31104
31096
|
const LINE_VERTICAL_PADDING = 1;
|
|
31105
31097
|
const PICKER_PADDING = 8;
|
|
31106
31098
|
const ITEM_BORDER_WIDTH = 1;
|
|
31107
|
-
const ITEM_EDGE_LENGTH = 18;
|
|
31108
31099
|
const ITEMS_PER_LINE = 10;
|
|
31109
31100
|
const MAGNIFIER_EDGE = 16;
|
|
31110
31101
|
const ITEM_GAP = 2;
|
|
31111
|
-
const CONTENT_WIDTH =
|
|
31102
|
+
const CONTENT_WIDTH = 218;
|
|
31112
31103
|
const INNER_GRADIENT_WIDTH = CONTENT_WIDTH - 2 * ITEM_BORDER_WIDTH;
|
|
31113
31104
|
const INNER_GRADIENT_HEIGHT = CONTENT_WIDTH - 30 - 2 * ITEM_BORDER_WIDTH;
|
|
31114
31105
|
css`
|
|
@@ -31120,7 +31111,7 @@ css`
|
|
|
31120
31111
|
line-height: 1.2;
|
|
31121
31112
|
overflow-y: auto;
|
|
31122
31113
|
overflow-x: hidden;
|
|
31123
|
-
width: ${
|
|
31114
|
+
width: ${234}px;
|
|
31124
31115
|
|
|
31125
31116
|
.o-color-picker-section-name {
|
|
31126
31117
|
margin: 0px ${ITEM_BORDER_WIDTH}px;
|
|
@@ -31146,8 +31137,8 @@ css`
|
|
|
31146
31137
|
}
|
|
31147
31138
|
}
|
|
31148
31139
|
.o-color-picker-line-item {
|
|
31149
|
-
width: ${
|
|
31150
|
-
height: ${
|
|
31140
|
+
width: ${20}px;
|
|
31141
|
+
height: ${20}px;
|
|
31151
31142
|
margin: 0px;
|
|
31152
31143
|
border-radius: 50px;
|
|
31153
31144
|
border: ${ITEM_BORDER_WIDTH}px solid #666666;
|
|
@@ -31191,13 +31182,13 @@ css`
|
|
|
31191
31182
|
}
|
|
31192
31183
|
|
|
31193
31184
|
.o-custom-selector {
|
|
31194
|
-
padding: ${
|
|
31185
|
+
padding: ${10}px ${PICKER_PADDING}px;
|
|
31195
31186
|
position: relative;
|
|
31196
31187
|
.o-gradient {
|
|
31197
31188
|
margin-bottom: ${MAGNIFIER_EDGE / 2}px;
|
|
31198
31189
|
border: ${ITEM_BORDER_WIDTH}px solid #c0c0c0;
|
|
31199
|
-
width: ${
|
|
31200
|
-
height: ${
|
|
31190
|
+
width: ${218}px;
|
|
31191
|
+
height: ${188}px;
|
|
31201
31192
|
position: relative;
|
|
31202
31193
|
}
|
|
31203
31194
|
|
|
@@ -31335,8 +31326,8 @@ var ColorPicker = class extends Component {
|
|
|
31335
31326
|
const left = Math.round(INNER_GRADIENT_WIDTH * clip(s / 100, 0, 1));
|
|
31336
31327
|
const top = Math.round(INNER_GRADIENT_HEIGHT * clip(1 - 2 * l / (200 - s), 0, 1));
|
|
31337
31328
|
return cssPropertiesToCss({
|
|
31338
|
-
left: `${-
|
|
31339
|
-
top: `${-
|
|
31329
|
+
left: `${-16 / 2 + left}px`,
|
|
31330
|
+
top: `${-16 / 2 + top}px`,
|
|
31340
31331
|
background: hslaToHex(this.state.currentHslaColor)
|
|
31341
31332
|
});
|
|
31342
31333
|
}
|
|
@@ -33521,17 +33512,16 @@ linkMenuRegistry.add("sheet", {
|
|
|
33521
33512
|
|
|
33522
33513
|
//#endregion
|
|
33523
33514
|
//#region src/components/link/link_editor/link_editor.ts
|
|
33524
|
-
const PADDING = 12;
|
|
33525
33515
|
css`
|
|
33526
33516
|
.o-link-editor {
|
|
33527
33517
|
font-size: 13px;
|
|
33528
33518
|
background-color: white;
|
|
33529
33519
|
box-shadow: 0 1px 4px 3px rgba(60, 64, 67, 0.15);
|
|
33530
|
-
padding: ${
|
|
33520
|
+
padding: ${12}px;
|
|
33531
33521
|
display: flex;
|
|
33532
33522
|
flex-direction: column;
|
|
33533
33523
|
border-radius: 4px;
|
|
33534
|
-
width: ${
|
|
33524
|
+
width: ${364}px;
|
|
33535
33525
|
|
|
33536
33526
|
.o-section {
|
|
33537
33527
|
.o-section-title {
|
|
@@ -43584,8 +43574,12 @@ var CellComposerStore = class extends AbstractComposerStore {
|
|
|
43584
43574
|
}
|
|
43585
43575
|
stopEdition(direction) {
|
|
43586
43576
|
if (this.canStopEdition()) {
|
|
43577
|
+
const { col, row } = this.currentEditedCell;
|
|
43587
43578
|
this._stopEdition();
|
|
43588
|
-
if (direction)
|
|
43579
|
+
if (direction) {
|
|
43580
|
+
this.model.selection.selectCell(col, row);
|
|
43581
|
+
this.model.selection.moveAnchorCell(direction, 1);
|
|
43582
|
+
}
|
|
43589
43583
|
return;
|
|
43590
43584
|
}
|
|
43591
43585
|
const editedCell = this.currentEditedCell;
|
|
@@ -51415,9 +51409,9 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51415
51409
|
allSheetsMatches = [];
|
|
51416
51410
|
activeSheetMatches = [];
|
|
51417
51411
|
specificRangeMatches = [];
|
|
51412
|
+
selectedMatchPosition = null;
|
|
51418
51413
|
currentSearchRegex = null;
|
|
51419
51414
|
initialShowFormulaState;
|
|
51420
|
-
preserveSelectedMatchIndex = false;
|
|
51421
51415
|
irreplaceableMatchCount = 0;
|
|
51422
51416
|
isSearchDirty = false;
|
|
51423
51417
|
shouldFinalizeUpdateSelection = false;
|
|
@@ -51539,7 +51533,10 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51539
51533
|
*/
|
|
51540
51534
|
_updateSearch(toSearch, searchOptions) {
|
|
51541
51535
|
this.searchOptions = searchOptions;
|
|
51542
|
-
if (toSearch !== this.toSearch)
|
|
51536
|
+
if (toSearch !== this.toSearch) {
|
|
51537
|
+
this.selectedMatchIndex = null;
|
|
51538
|
+
this.selectedMatchPosition = null;
|
|
51539
|
+
}
|
|
51543
51540
|
this.toSearch = toSearch;
|
|
51544
51541
|
this.currentSearchRegex = getSearchRegex(this.toSearch, this.searchOptions);
|
|
51545
51542
|
this.refreshSearch({
|
|
@@ -51551,8 +51548,14 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51551
51548
|
* refresh the matches according to the current search options
|
|
51552
51549
|
*/
|
|
51553
51550
|
refreshSearch(options) {
|
|
51554
|
-
if (!this.preserveSelectedMatchIndex) this.selectedMatchIndex = null;
|
|
51555
51551
|
this.findMatches();
|
|
51552
|
+
if (this.selectedMatchPosition) if (this.selectedMatchPosition.sheetId !== this.getters.getActiveSheetId()) {
|
|
51553
|
+
this.selectedMatchIndex = null;
|
|
51554
|
+
this.selectedMatchPosition = null;
|
|
51555
|
+
} else {
|
|
51556
|
+
const index = this.searchMatches.findIndex((match) => match.sheetId === this.selectedMatchPosition?.sheetId && match.col === this.selectedMatchPosition?.col && match.row === this.selectedMatchPosition?.row);
|
|
51557
|
+
if (index !== -1) this.selectedMatchIndex = index;
|
|
51558
|
+
}
|
|
51556
51559
|
this.selectNextCell(0, options);
|
|
51557
51560
|
}
|
|
51558
51561
|
getSheetsInSearchOrder() {
|
|
@@ -51620,6 +51623,7 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51620
51623
|
const matches = this.searchMatches;
|
|
51621
51624
|
if (!matches.length) {
|
|
51622
51625
|
this.selectedMatchIndex = null;
|
|
51626
|
+
this.selectedMatchPosition = null;
|
|
51623
51627
|
return;
|
|
51624
51628
|
}
|
|
51625
51629
|
let nextIndex;
|
|
@@ -51633,14 +51637,13 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51633
51637
|
} else nextIndex = this.selectedMatchIndex + indexChange;
|
|
51634
51638
|
nextIndex = (nextIndex + matches.length) % matches.length;
|
|
51635
51639
|
this.selectedMatchIndex = nextIndex;
|
|
51640
|
+
this.selectedMatchPosition = matches[this.selectedMatchIndex];
|
|
51636
51641
|
const selectedMatch = matches[nextIndex];
|
|
51637
51642
|
if (options.jumpToMatchSheet && this.getters.getActiveSheetId() !== selectedMatch.sheetId) {
|
|
51638
|
-
this.preserveSelectedMatchIndex = true;
|
|
51639
51643
|
this.model.dispatch("ACTIVATE_SHEET", {
|
|
51640
51644
|
sheetIdFrom: this.getters.getActiveSheetId(),
|
|
51641
51645
|
sheetIdTo: selectedMatch.sheetId
|
|
51642
51646
|
});
|
|
51643
|
-
this.preserveSelectedMatchIndex = false;
|
|
51644
51647
|
this.isSearchDirty = false;
|
|
51645
51648
|
}
|
|
51646
51649
|
this.model.selection.getBackToDefault();
|
|
@@ -51651,7 +51654,6 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51651
51654
|
*/
|
|
51652
51655
|
replace() {
|
|
51653
51656
|
if (this.selectedMatchIndex === null) return;
|
|
51654
|
-
this.preserveSelectedMatchIndex = true;
|
|
51655
51657
|
this.shouldFinalizeUpdateSelection = true;
|
|
51656
51658
|
this.model.dispatch("REPLACE_SEARCH", {
|
|
51657
51659
|
searchString: this.toSearch,
|
|
@@ -51659,7 +51661,6 @@ var FindAndReplaceStore = class extends SpreadsheetStore {
|
|
|
51659
51661
|
matches: [this.searchMatches[this.selectedMatchIndex]],
|
|
51660
51662
|
searchOptions: this.searchOptions
|
|
51661
51663
|
});
|
|
51662
|
-
this.preserveSelectedMatchIndex = false;
|
|
51663
51664
|
}
|
|
51664
51665
|
/**
|
|
51665
51666
|
* Apply the replace function to all the matches one time.
|
|
@@ -55103,7 +55104,7 @@ var Grid = class extends Component {
|
|
|
55103
55104
|
ev.preventDefault();
|
|
55104
55105
|
const clipboardData = ev.clipboardData;
|
|
55105
55106
|
if (!clipboardData) return;
|
|
55106
|
-
const image = [...clipboardData.files]
|
|
55107
|
+
const image = [...clipboardData.files].find((file) => AllowedImageMimeTypes.includes(file.type));
|
|
55107
55108
|
const osClipboard = { content: {
|
|
55108
55109
|
["text/plain"]: clipboardData?.getData("text/plain"),
|
|
55109
55110
|
["text/html"]: clipboardData?.getData("text/html")
|
|
@@ -61048,7 +61049,7 @@ var ZoneRBush = class extends import_rbush_min.default {
|
|
|
61048
61049
|
//#region src/plugins/ui_core_views/cell_evaluation/zone_set.ts
|
|
61049
61050
|
var ZoneSet = class ZoneSet {
|
|
61050
61051
|
profilesStartingPosition = [0];
|
|
61051
|
-
profiles = new Map([[0, []]]);
|
|
61052
|
+
profiles = /* @__PURE__ */ new Map([[0, []]]);
|
|
61052
61053
|
constructor(zones = []) {
|
|
61053
61054
|
for (const zone of zones) this.add(zone);
|
|
61054
61055
|
}
|
|
@@ -62217,12 +62218,22 @@ var CustomColorsPlugin = class extends CoreViewPlugin {
|
|
|
62217
62218
|
handle(cmd) {
|
|
62218
62219
|
switch (cmd.type) {
|
|
62219
62220
|
case "START":
|
|
62220
|
-
for (const sheetId of this.getters.getSheetIds())
|
|
62221
|
+
for (const sheetId of this.getters.getSheetIds()) {
|
|
62222
|
+
for (const chartId of this.getters.getChartIds(sheetId)) this.tryToAddColors(this.getChartColors(chartId));
|
|
62223
|
+
for (const figureId of this.getters.getFigures(sheetId)) this.tryToAddColors(this.getCarouselColors(sheetId, figureId.id));
|
|
62224
|
+
}
|
|
62221
62225
|
break;
|
|
62222
62226
|
case "UPDATE_CHART":
|
|
62223
62227
|
case "CREATE_CHART":
|
|
62224
62228
|
this.tryToAddColors(this.getChartColors(cmd.chartId));
|
|
62225
62229
|
break;
|
|
62230
|
+
case "CREATE_CAROUSEL":
|
|
62231
|
+
case "UPDATE_CAROUSEL":
|
|
62232
|
+
this.tryToAddColors(this.getCarouselColors(cmd.sheetId, cmd.figureId));
|
|
62233
|
+
break;
|
|
62234
|
+
case "COLOR_SHEET":
|
|
62235
|
+
if (cmd.color) this.tryToAddColors([cmd.color]);
|
|
62236
|
+
break;
|
|
62226
62237
|
case "UPDATE_CELL":
|
|
62227
62238
|
case "ADD_CONDITIONAL_FORMAT":
|
|
62228
62239
|
case "SET_BORDER":
|
|
@@ -62245,8 +62256,12 @@ var CustomColorsPlugin = class extends CoreViewPlugin {
|
|
|
62245
62256
|
}
|
|
62246
62257
|
computeCustomColors() {
|
|
62247
62258
|
let usedColors = [];
|
|
62248
|
-
for (const sheetId of this.getters.getSheetIds()) usedColors = usedColors.concat(this.getColorsFromCells(sheetId), this.getFormattingColors(sheetId), this.getTableColors(sheetId));
|
|
62249
|
-
return [
|
|
62259
|
+
for (const sheetId of this.getters.getSheetIds()) usedColors = usedColors.concat(this.getSheetColors(sheetId), this.getColorsFromCells(sheetId), this.getFormattingColors(sheetId), this.getTableColors(sheetId));
|
|
62260
|
+
return [.../* @__PURE__ */ new Set([...usedColors])];
|
|
62261
|
+
}
|
|
62262
|
+
getSheetColors(sheetId) {
|
|
62263
|
+
const sheet = this.getters.getSheet(sheetId);
|
|
62264
|
+
return sheet.color ? [sheet.color] : [];
|
|
62250
62265
|
}
|
|
62251
62266
|
getColorsFromCells(sheetId) {
|
|
62252
62267
|
const cells = Object.values(this.getters.getCells(sheetId));
|
|
@@ -62279,6 +62294,11 @@ var CustomColorsPlugin = class extends CoreViewPlugin {
|
|
|
62279
62294
|
if (chart === void 0) return [];
|
|
62280
62295
|
return [...JSON.stringify(chart.getDefinition()).matchAll(chartColorRegex)].map((color) => color[1]);
|
|
62281
62296
|
}
|
|
62297
|
+
getCarouselColors(sheetId, figureId) {
|
|
62298
|
+
if (this.getters.getFigure(sheetId, figureId)?.tag !== "carousel") return [];
|
|
62299
|
+
const titleColor = this.getters.getCarousel(figureId).title?.color;
|
|
62300
|
+
return titleColor ? [titleColor] : [];
|
|
62301
|
+
}
|
|
62282
62302
|
getTableColors(sheetId) {
|
|
62283
62303
|
return this.getters.getTables(sheetId).flatMap((table) => {
|
|
62284
62304
|
const config = table.config;
|
|
@@ -62911,7 +62931,7 @@ iconsOnCellRegistry.add("pivot_collapse", (getters, position) => {
|
|
|
62911
62931
|
const definition = getters.getPivotCoreDefinition(pivotId);
|
|
62912
62932
|
const isDashboard = getters.isDashboard();
|
|
62913
62933
|
const fields = pivotCell.dimension === "COL" ? definition.columns : definition.rows;
|
|
62914
|
-
const hasIcon = !isDashboard && pivotCell.domain.length !== fields.length;
|
|
62934
|
+
const hasIcon = !isDashboard && !getters.shouldShowFormulas() && pivotCell.domain.length !== fields.length;
|
|
62915
62935
|
const isCollapsed = (definition.collapsedDomains?.[pivotCell.dimension] ?? []).some((domain) => deepEquals(domain, pivotCell.domain));
|
|
62916
62936
|
const indent = pivotCell.dimension === "ROW" ? (pivotCell.domain.length - 1) * 15 : 0;
|
|
62917
62937
|
return {
|
|
@@ -67260,7 +67280,7 @@ var TableComputedStylePlugin = class extends UIPlugin {
|
|
|
67260
67280
|
};
|
|
67261
67281
|
}
|
|
67262
67282
|
};
|
|
67263
|
-
const invalidateTableStyleCommandsSet = new Set([
|
|
67283
|
+
const invalidateTableStyleCommandsSet = /* @__PURE__ */ new Set([
|
|
67264
67284
|
"HIDE_COLUMNS_ROWS",
|
|
67265
67285
|
"UNHIDE_COLUMNS_ROWS",
|
|
67266
67286
|
"UNFOLD_HEADER_GROUP",
|
|
@@ -69539,14 +69559,14 @@ var InternalViewport = class {
|
|
|
69539
69559
|
adjustPositionX(targetCol) {
|
|
69540
69560
|
const sheetId = this.sheetId;
|
|
69541
69561
|
const { start, end } = this.getters.getColDimensions(sheetId, targetCol);
|
|
69542
|
-
if (this.offsetX + this.viewportWidth + this.offsetCorrectionX < end) this.offsetX = end - this.viewportWidth;
|
|
69562
|
+
if (this.offsetX + this.viewportWidth + this.offsetCorrectionX < end) this.offsetX = end - this.viewportWidth - this.offsetCorrectionX;
|
|
69543
69563
|
else if (this.offsetX + this.offsetCorrectionX > start) this.offsetX = start - this.offsetCorrectionX;
|
|
69544
69564
|
this.adjustViewportZoneX();
|
|
69545
69565
|
}
|
|
69546
69566
|
adjustPositionY(targetRow) {
|
|
69547
69567
|
const sheetId = this.sheetId;
|
|
69548
69568
|
const { start, end } = this.getters.getRowDimensions(sheetId, targetRow);
|
|
69549
|
-
if (this.offsetY + this.viewportHeight + this.offsetCorrectionY < end) this.offsetY = end - this.viewportHeight;
|
|
69569
|
+
if (this.offsetY + this.viewportHeight + this.offsetCorrectionY < end) this.offsetY = end - this.viewportHeight - this.offsetCorrectionY;
|
|
69550
69570
|
else if (this.offsetY + this.offsetCorrectionY > start) this.offsetY = start - this.offsetCorrectionY;
|
|
69551
69571
|
this.adjustViewportZoneY();
|
|
69552
69572
|
}
|
|
@@ -72160,11 +72180,14 @@ var BottomBarSheet = class extends Component {
|
|
|
72160
72180
|
}
|
|
72161
72181
|
});
|
|
72162
72182
|
this.DOMFocusableElementStore = useStore(DOMFocusableElementStore);
|
|
72163
|
-
useExternalListener(window, "click", ()
|
|
72183
|
+
useExternalListener(window, "click", this.onExternalClick.bind(this), { capture: true });
|
|
72164
72184
|
useEffect((sheetId) => {
|
|
72165
72185
|
if (this.props.sheetId === sheetId) this.scrollToSheet();
|
|
72166
72186
|
}, () => [this.env.model.getters.getActiveSheetId()]);
|
|
72167
72187
|
}
|
|
72188
|
+
onExternalClick(ev) {
|
|
72189
|
+
if (!ev.target.closest(".o-color-picker")) this.state.pickerOpened = false;
|
|
72190
|
+
}
|
|
72168
72191
|
focusInputAndSelectContent() {
|
|
72169
72192
|
if (!this.state.isEditing || !this.sheetNameRef.el) return;
|
|
72170
72193
|
this.sheetNameRef.el.focus();
|
|
@@ -72266,6 +72289,8 @@ var BottomBarSheet = class extends Component {
|
|
|
72266
72289
|
},
|
|
72267
72290
|
openSheetColorPickerCallback: () => {
|
|
72268
72291
|
this.state.pickerOpened = true;
|
|
72292
|
+
const sheet = this.env.model.getters.getSheet(this.props.sheetId);
|
|
72293
|
+
this.state.currentPickerColor = sheet.color;
|
|
72269
72294
|
}
|
|
72270
72295
|
});
|
|
72271
72296
|
}
|
|
@@ -76825,11 +76850,11 @@ function addBarChart(chart) {
|
|
|
76825
76850
|
<!-- each data marker in the series does not have a different color -->
|
|
76826
76851
|
<c:varyColors val="0"/>
|
|
76827
76852
|
${joinXmlNodes(rightDataSetsNodes)}
|
|
76828
|
-
<c:axId val="${
|
|
76829
|
-
<c:axId val="${
|
|
76853
|
+
<c:axId val="${17781238}" />
|
|
76854
|
+
<c:axId val="${88853994}" />
|
|
76830
76855
|
</c:barChart>
|
|
76831
|
-
${addAx("b", "c:catAx",
|
|
76832
|
-
${addAx("r", "c:valAx",
|
|
76856
|
+
${addAx("b", "c:catAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
|
|
76857
|
+
${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
|
|
76833
76858
|
` : ""}`;
|
|
76834
76859
|
}
|
|
76835
76860
|
function addComboChart(chart) {
|
|
@@ -77067,11 +77092,11 @@ function addLineChart(chart) {
|
|
|
77067
77092
|
<!-- each data marker in the series does not have a different color -->
|
|
77068
77093
|
<c:varyColors val="0"/>
|
|
77069
77094
|
${joinXmlNodes(rightDataSetsNodes)}
|
|
77070
|
-
<c:axId val="${
|
|
77071
|
-
<c:axId val="${
|
|
77095
|
+
<c:axId val="${17781238}" />
|
|
77096
|
+
<c:axId val="${88853994}" />
|
|
77072
77097
|
</c:lineChart>
|
|
77073
|
-
${addAx("b", "c:catAx",
|
|
77074
|
-
${addAx("r", "c:valAx",
|
|
77098
|
+
${addAx("b", "c:catAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
|
|
77099
|
+
${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
|
|
77075
77100
|
` : ""}
|
|
77076
77101
|
`;
|
|
77077
77102
|
}
|
|
@@ -77134,11 +77159,11 @@ function addScatterChart(chart) {
|
|
|
77134
77159
|
<c:varyColors val="0"/>
|
|
77135
77160
|
<c:scatterStyle val="lineMarker"/>
|
|
77136
77161
|
${joinXmlNodes(rightDataSetsNodes)}
|
|
77137
|
-
<c:axId val="${
|
|
77138
|
-
<c:axId val="${
|
|
77162
|
+
<c:axId val="${17781238}" />
|
|
77163
|
+
<c:axId val="${88853994}" />
|
|
77139
77164
|
</c:scatterChart>
|
|
77140
|
-
${addAx("b", "c:valAx",
|
|
77141
|
-
${addAx("r", "c:valAx",
|
|
77165
|
+
${addAx("b", "c:valAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
|
|
77166
|
+
${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
|
|
77142
77167
|
` : ""}`;
|
|
77143
77168
|
}
|
|
77144
77169
|
function addRadarChart(chart) {
|
|
@@ -79331,6 +79356,6 @@ const chartHelpers = {
|
|
|
79331
79356
|
//#endregion
|
|
79332
79357
|
export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, ClientDisconnectedError, CommandResult, CorePlugin, CoreViewPlugin, DispatchResult, EvaluationError, LocalTransportService, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, chartHelpers, compile, compileTokens, components, constants, convertAstNodes, coreTypes, findCellInNewZone, functionCache, getCaretDownSvg, getCaretUpSvg, helpers, hooks, invalidateCFEvaluationCommands, invalidateChartEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
|
|
79333
79358
|
|
|
79334
|
-
__info__.version = "19.0.
|
|
79335
|
-
__info__.date = "2026-
|
|
79336
|
-
__info__.hash = "
|
|
79359
|
+
__info__.version = "19.0.41";
|
|
79360
|
+
__info__.date = "2026-07-01T05:03:20.304Z";
|
|
79361
|
+
__info__.hash = "346d3c0";
|