@odoo/o-spreadsheet 19.0.38 → 19.0.42

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.
@@ -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.38
6
- * @date 2026-06-17T08:51:01.002Z
7
- * @hash f469250
5
+ * @version 19.0.42
6
+ * @date 2026-07-13T06:28:59.983Z
7
+ * @hash 74cadf3
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.38
6
- * @date 2026-06-17T08:50:59.627Z
7
- * @hash f469250
5
+ * @version 19.0.42
6
+ * @date 2026-07-13T06:28:58.351Z
7
+ * @hash 74cadf3
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 = TEXT_BODY + "C2";
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
- pMinus + pCurrencyFormat + pNumber,
2741
- pMinus + pNumber + pCurrencyFormat,
2742
- pCurrencyFormat + pMinus + pNumber
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(-ACCELERATION * (value - 1));
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.granularity);
7875
+ return pivotNormalizationValueRegistry.get(dimension.type)(groupValueString, dimension);
7882
7876
  }
7883
- function normalizeDateTime(value, granularity) {
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 = `${-anchorCenteringOffset}px`;
28193
- else if (resizer.includes("bottom")) style.bottom = `${-anchorCenteringOffset}px`;
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 = `${-anchorCenteringOffset}px`;
28196
- else if (resizer.includes("right")) style.right = `${-anchorCenteringOffset}px`;
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 = ITEMS_PER_LINE * (ITEM_EDGE_LENGTH + 2 * ITEM_BORDER_WIDTH) + (ITEMS_PER_LINE - 1) * ITEM_GAP;
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: ${CONTENT_WIDTH + 2 * PICKER_PADDING}px;
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: ${ITEM_EDGE_LENGTH + 2 * ITEM_BORDER_WIDTH}px;
31150
- height: ${ITEM_EDGE_LENGTH + 2 * ITEM_BORDER_WIDTH}px;
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: ${PICKER_PADDING + 2}px ${PICKER_PADDING}px;
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: ${INNER_GRADIENT_WIDTH + 2 * ITEM_BORDER_WIDTH}px;
31200
- height: ${INNER_GRADIENT_HEIGHT + 2 * ITEM_BORDER_WIDTH}px;
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: `${-MAGNIFIER_EDGE / 2 + left}px`,
31339
- top: `${-MAGNIFIER_EDGE / 2 + top}px`,
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: ${PADDING}px;
33520
+ padding: ${12}px;
33531
33521
  display: flex;
33532
33522
  flex-direction: column;
33533
33523
  border-radius: 4px;
33534
- width: ${340 + 2 * PADDING}px;
33524
+ width: ${364}px;
33535
33525
 
33536
33526
  .o-section {
33537
33527
  .o-section-title {
@@ -43224,7 +43214,8 @@ var Autofill = class extends Component {
43224
43214
  const { left, top } = this.state.handler ? this.state.position : this.props.position;
43225
43215
  return cssPropertiesToCss({
43226
43216
  top: `${top}px`,
43227
- left: `${left}px`
43217
+ left: `${left}px`,
43218
+ visibility: this.props.isVisible ? "visible" : "hidden"
43228
43219
  });
43229
43220
  }
43230
43221
  get styleNextValue() {
@@ -55114,7 +55105,7 @@ var Grid = class extends Component {
55114
55105
  ev.preventDefault();
55115
55106
  const clipboardData = ev.clipboardData;
55116
55107
  if (!clipboardData) return;
55117
- const image = [...clipboardData.files]?.find((file) => AllowedImageMimeTypes.includes(file.type));
55108
+ const image = [...clipboardData.files].find((file) => AllowedImageMimeTypes.includes(file.type));
55118
55109
  const osClipboard = { content: {
55119
55110
  ["text/plain"]: clipboardData?.getData("text/plain"),
55120
55111
  ["text/html"]: clipboardData?.getData("text/html")
@@ -61059,7 +61050,7 @@ var ZoneRBush = class extends import_rbush_min.default {
61059
61050
  //#region src/plugins/ui_core_views/cell_evaluation/zone_set.ts
61060
61051
  var ZoneSet = class ZoneSet {
61061
61052
  profilesStartingPosition = [0];
61062
- profiles = new Map([[0, []]]);
61053
+ profiles = /* @__PURE__ */ new Map([[0, []]]);
61063
61054
  constructor(zones = []) {
61064
61055
  for (const zone of zones) this.add(zone);
61065
61056
  }
@@ -62228,12 +62219,22 @@ var CustomColorsPlugin = class extends CoreViewPlugin {
62228
62219
  handle(cmd) {
62229
62220
  switch (cmd.type) {
62230
62221
  case "START":
62231
- for (const sheetId of this.getters.getSheetIds()) for (const chartId of this.getters.getChartIds(sheetId)) this.tryToAddColors(this.getChartColors(chartId));
62222
+ for (const sheetId of this.getters.getSheetIds()) {
62223
+ for (const chartId of this.getters.getChartIds(sheetId)) this.tryToAddColors(this.getChartColors(chartId));
62224
+ for (const figureId of this.getters.getFigures(sheetId)) this.tryToAddColors(this.getCarouselColors(sheetId, figureId.id));
62225
+ }
62232
62226
  break;
62233
62227
  case "UPDATE_CHART":
62234
62228
  case "CREATE_CHART":
62235
62229
  this.tryToAddColors(this.getChartColors(cmd.chartId));
62236
62230
  break;
62231
+ case "CREATE_CAROUSEL":
62232
+ case "UPDATE_CAROUSEL":
62233
+ this.tryToAddColors(this.getCarouselColors(cmd.sheetId, cmd.figureId));
62234
+ break;
62235
+ case "COLOR_SHEET":
62236
+ if (cmd.color) this.tryToAddColors([cmd.color]);
62237
+ break;
62237
62238
  case "UPDATE_CELL":
62238
62239
  case "ADD_CONDITIONAL_FORMAT":
62239
62240
  case "SET_BORDER":
@@ -62256,8 +62257,12 @@ var CustomColorsPlugin = class extends CoreViewPlugin {
62256
62257
  }
62257
62258
  computeCustomColors() {
62258
62259
  let usedColors = [];
62259
- for (const sheetId of this.getters.getSheetIds()) usedColors = usedColors.concat(this.getColorsFromCells(sheetId), this.getFormattingColors(sheetId), this.getTableColors(sheetId));
62260
- return [...new Set([...usedColors])];
62260
+ for (const sheetId of this.getters.getSheetIds()) usedColors = usedColors.concat(this.getSheetColors(sheetId), this.getColorsFromCells(sheetId), this.getFormattingColors(sheetId), this.getTableColors(sheetId));
62261
+ return [.../* @__PURE__ */ new Set([...usedColors])];
62262
+ }
62263
+ getSheetColors(sheetId) {
62264
+ const sheet = this.getters.getSheet(sheetId);
62265
+ return sheet.color ? [sheet.color] : [];
62261
62266
  }
62262
62267
  getColorsFromCells(sheetId) {
62263
62268
  const cells = Object.values(this.getters.getCells(sheetId));
@@ -62290,6 +62295,11 @@ var CustomColorsPlugin = class extends CoreViewPlugin {
62290
62295
  if (chart === void 0) return [];
62291
62296
  return [...JSON.stringify(chart.getDefinition()).matchAll(chartColorRegex)].map((color) => color[1]);
62292
62297
  }
62298
+ getCarouselColors(sheetId, figureId) {
62299
+ if (this.getters.getFigure(sheetId, figureId)?.tag !== "carousel") return [];
62300
+ const titleColor = this.getters.getCarousel(figureId).title?.color;
62301
+ return titleColor ? [titleColor] : [];
62302
+ }
62293
62303
  getTableColors(sheetId) {
62294
62304
  return this.getters.getTables(sheetId).flatMap((table) => {
62295
62305
  const config = table.config;
@@ -62592,13 +62602,13 @@ var EvaluationConditionalFormatPlugin = class extends CoreViewPlugin {
62592
62602
  const minValue = this.parsePoint(sheetId, range, rule.minimum, "min");
62593
62603
  const midValue = rule.midpoint ? this.parsePoint(sheetId, range, rule.midpoint) : null;
62594
62604
  const maxValue = this.parsePoint(sheetId, range, rule.maximum, "max");
62595
- if (minValue === null || maxValue === null || minValue >= maxValue || midValue && (minValue >= midValue || midValue >= maxValue)) return;
62605
+ if (minValue === null || maxValue === null || minValue >= maxValue || midValue !== null && (minValue >= midValue || midValue >= maxValue)) return;
62596
62606
  const zone = this.getters.getRangeFromSheetXC(sheetId, range).zone;
62597
62607
  const colorThresholds = [{
62598
62608
  value: minValue,
62599
62609
  color: rule.minimum.color
62600
62610
  }];
62601
- if (rule.midpoint && midValue) colorThresholds.push({
62611
+ if (rule.midpoint && midValue !== null) colorThresholds.push({
62602
62612
  value: midValue,
62603
62613
  color: rule.midpoint.color
62604
62614
  });
@@ -67271,7 +67281,7 @@ var TableComputedStylePlugin = class extends UIPlugin {
67271
67281
  };
67272
67282
  }
67273
67283
  };
67274
- const invalidateTableStyleCommandsSet = new Set([
67284
+ const invalidateTableStyleCommandsSet = /* @__PURE__ */ new Set([
67275
67285
  "HIDE_COLUMNS_ROWS",
67276
67286
  "UNHIDE_COLUMNS_ROWS",
67277
67287
  "UNFOLD_HEADER_GROUP",
@@ -69550,14 +69560,14 @@ var InternalViewport = class {
69550
69560
  adjustPositionX(targetCol) {
69551
69561
  const sheetId = this.sheetId;
69552
69562
  const { start, end } = this.getters.getColDimensions(sheetId, targetCol);
69553
- if (this.offsetX + this.viewportWidth + this.offsetCorrectionX < end) this.offsetX = end - this.viewportWidth;
69563
+ if (this.offsetX + this.viewportWidth + this.offsetCorrectionX < end) this.offsetX = end - this.viewportWidth - this.offsetCorrectionX;
69554
69564
  else if (this.offsetX + this.offsetCorrectionX > start) this.offsetX = start - this.offsetCorrectionX;
69555
69565
  this.adjustViewportZoneX();
69556
69566
  }
69557
69567
  adjustPositionY(targetRow) {
69558
69568
  const sheetId = this.sheetId;
69559
69569
  const { start, end } = this.getters.getRowDimensions(sheetId, targetRow);
69560
- if (this.offsetY + this.viewportHeight + this.offsetCorrectionY < end) this.offsetY = end - this.viewportHeight;
69570
+ if (this.offsetY + this.viewportHeight + this.offsetCorrectionY < end) this.offsetY = end - this.viewportHeight - this.offsetCorrectionY;
69561
69571
  else if (this.offsetY + this.offsetCorrectionY > start) this.offsetY = start - this.offsetCorrectionY;
69562
69572
  this.adjustViewportZoneY();
69563
69573
  }
@@ -72171,11 +72181,14 @@ var BottomBarSheet = class extends Component {
72171
72181
  }
72172
72182
  });
72173
72183
  this.DOMFocusableElementStore = useStore(DOMFocusableElementStore);
72174
- useExternalListener(window, "click", () => this.state.pickerOpened = false);
72184
+ useExternalListener(window, "click", this.onExternalClick.bind(this), { capture: true });
72175
72185
  useEffect((sheetId) => {
72176
72186
  if (this.props.sheetId === sheetId) this.scrollToSheet();
72177
72187
  }, () => [this.env.model.getters.getActiveSheetId()]);
72178
72188
  }
72189
+ onExternalClick(ev) {
72190
+ if (!ev.target.closest(".o-color-picker")) this.state.pickerOpened = false;
72191
+ }
72179
72192
  focusInputAndSelectContent() {
72180
72193
  if (!this.state.isEditing || !this.sheetNameRef.el) return;
72181
72194
  this.sheetNameRef.el.focus();
@@ -72277,6 +72290,8 @@ var BottomBarSheet = class extends Component {
72277
72290
  },
72278
72291
  openSheetColorPickerCallback: () => {
72279
72292
  this.state.pickerOpened = true;
72293
+ const sheet = this.env.model.getters.getSheet(this.props.sheetId);
72294
+ this.state.currentPickerColor = sheet.color;
72280
72295
  }
72281
72296
  });
72282
72297
  }
@@ -76836,11 +76851,11 @@ function addBarChart(chart) {
76836
76851
  <!-- each data marker in the series does not have a different color -->
76837
76852
  <c:varyColors val="0"/>
76838
76853
  ${joinXmlNodes(rightDataSetsNodes)}
76839
- <c:axId val="${catAxId + 1}" />
76840
- <c:axId val="${valAxId + 1}" />
76854
+ <c:axId val="${17781238}" />
76855
+ <c:axId val="${88853994}" />
76841
76856
  </c:barChart>
76842
- ${addAx("b", "c:catAx", catAxId + 1, valAxId + 1, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
76843
- ${addAx("r", "c:valAx", valAxId + 1, catAxId + 1, chart.axesDesign?.y1?.title, chart.fontColor)}
76857
+ ${addAx("b", "c:catAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
76858
+ ${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
76844
76859
  ` : ""}`;
76845
76860
  }
76846
76861
  function addComboChart(chart) {
@@ -77078,11 +77093,11 @@ function addLineChart(chart) {
77078
77093
  <!-- each data marker in the series does not have a different color -->
77079
77094
  <c:varyColors val="0"/>
77080
77095
  ${joinXmlNodes(rightDataSetsNodes)}
77081
- <c:axId val="${catAxId + 1}" />
77082
- <c:axId val="${valAxId + 1}" />
77096
+ <c:axId val="${17781238}" />
77097
+ <c:axId val="${88853994}" />
77083
77098
  </c:lineChart>
77084
- ${addAx("b", "c:catAx", catAxId + 1, valAxId + 1, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
77085
- ${addAx("r", "c:valAx", valAxId + 1, catAxId + 1, chart.axesDesign?.y1?.title, chart.fontColor)}
77099
+ ${addAx("b", "c:catAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
77100
+ ${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
77086
77101
  ` : ""}
77087
77102
  `;
77088
77103
  }
@@ -77145,11 +77160,11 @@ function addScatterChart(chart) {
77145
77160
  <c:varyColors val="0"/>
77146
77161
  <c:scatterStyle val="lineMarker"/>
77147
77162
  ${joinXmlNodes(rightDataSetsNodes)}
77148
- <c:axId val="${catAxId + 1}" />
77149
- <c:axId val="${valAxId + 1}" />
77163
+ <c:axId val="${17781238}" />
77164
+ <c:axId val="${88853994}" />
77150
77165
  </c:scatterChart>
77151
- ${addAx("b", "c:valAx", catAxId + 1, valAxId + 1, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
77152
- ${addAx("r", "c:valAx", valAxId + 1, catAxId + 1, chart.axesDesign?.y1?.title, chart.fontColor)}
77166
+ ${addAx("b", "c:valAx", 17781238, 88853994, chart.axesDesign?.x?.title, chart.fontColor, leftDataSetsNodes.length ? 1 : 0)}
77167
+ ${addAx("r", "c:valAx", 88853994, 17781238, chart.axesDesign?.y1?.title, chart.fontColor)}
77153
77168
  ` : ""}`;
77154
77169
  }
77155
77170
  function addRadarChart(chart) {
@@ -79342,6 +79357,6 @@ const chartHelpers = {
79342
79357
  //#endregion
79343
79358
  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 };
79344
79359
 
79345
- __info__.version = "19.0.38";
79346
- __info__.date = "2026-06-17T08:50:59.627Z";
79347
- __info__.hash = "f469250";
79360
+ __info__.version = "19.0.42";
79361
+ __info__.date = "2026-07-13T06:28:58.351Z";
79362
+ __info__.hash = "74cadf3";