@odoo/o-spreadsheet 19.3.13 → 19.3.14

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.3.13
6
- * @date 2026-07-23T07:41:06.182Z
7
- * @hash 2059bd0
5
+ * @version 19.3.14
6
+ * @date 2026-07-30T06:55:43.749Z
7
+ * @hash 3dd5632
8
8
  */
9
9
 
10
10
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
@@ -10252,7 +10252,7 @@ function getCalendarChartDatasetAndLabels(definition, args) {
10252
10252
  borderWidth: 1,
10253
10253
  barPercentage: 1,
10254
10254
  categoryPercentage: 1,
10255
- values: dataSetValues.data.map((cell) => isNumberResult(cell) ? cell.value : NaN)
10255
+ values: dataSetValues.data.map((cell) => isNumberResult(cell) ? cell.value : void 0)
10256
10256
  });
10257
10257
  return {
10258
10258
  labels,
@@ -11822,6 +11822,19 @@ function isOtherMobileOS() {
11822
11822
  function isMobileOS() {
11823
11823
  return isAndroid() || isIOS() || isOtherMobileOS();
11824
11824
  }
11825
+ const INTERACTIVE_ELEMENT_SELECTOR = "select, input, textarea, button, .o-select, .os-input, .o-input, .o-button, .o-button-icon, .o-button-link, .o-composer";
11826
+ /** Check if there is an interactive element (input, select, button, ...) between the event.target and event.currentTarget (inclusive)*/
11827
+ function hasInteractiveElementInEventTree(event) {
11828
+ const target = event.target;
11829
+ const root = event.currentTarget;
11830
+ if (!root || !target || !root.contains(target)) return false;
11831
+ let node = target;
11832
+ while (node && node !== root) {
11833
+ if (node.matches(INTERACTIVE_ELEMENT_SELECTOR)) return true;
11834
+ node = node.parentElement;
11835
+ }
11836
+ return root.matches(INTERACTIVE_ELEMENT_SELECTOR);
11837
+ }
11825
11838
 
11826
11839
  //#endregion
11827
11840
  //#region src/components/helpers/zoom.ts
@@ -38041,13 +38054,9 @@ var PivotLayoutConfigurator = class extends _odoo_owl.Component {
38041
38054
  dimensionsRef = (0, _odoo_owl.useRef)("pivot-dimensions");
38042
38055
  dragAndDrop = useDragAndDropListItems();
38043
38056
  AGGREGATORS = AGGREGATORS;
38044
- composerFocus;
38045
38057
  isDateOrDatetimeField = isDateOrDatetimeField;
38046
- setup() {
38047
- this.composerFocus = useStore(ComposerFocusStore);
38048
- }
38049
38058
  startDragAndDrop(dimension, event) {
38050
- if (event.button !== 0 || event.target.tagName === "SELECT") return;
38059
+ if (event.button !== 0 || hasInteractiveElementInEventTree(event)) return;
38051
38060
  const rects = this.getDimensionElementsRects();
38052
38061
  const { columns, rows } = this.props.definition;
38053
38062
  const draggableIds = [
@@ -38087,7 +38096,7 @@ var PivotLayoutConfigurator = class extends _odoo_owl.Component {
38087
38096
  return field.type === "date" ? this.props.dateGranularities : this.props.datetimeGranularities;
38088
38097
  }
38089
38098
  startDragAndDropMeasures(measure, event) {
38090
- if (event.button !== 0 || event.target.tagName === "SELECT" || event.target.tagName === "INPUT" || this.composerFocus.focusMode !== "inactive") return;
38099
+ if (event.button !== 0 || hasInteractiveElementInEventTree(event)) return;
38091
38100
  const rects = this.getDimensionElementsRects();
38092
38101
  const { measures, columns, rows } = this.props.definition;
38093
38102
  const draggableIds = measures.map((m) => m.id);
@@ -62565,7 +62574,7 @@ var SheetUIPlugin = class extends UIPlugin {
62565
62574
  if (contentWidth === 0) return 0;
62566
62575
  contentWidth += 2 * 4;
62567
62576
  if (style.wrapping === "wrap") {
62568
- const colWidth = this.getters.getColSize(this.getters.getActiveSheetId(), position.col);
62577
+ const colWidth = this.getters.getColSize(position.sheetId, position.col);
62569
62578
  return Math.min(colWidth, contentWidth);
62570
62579
  }
62571
62580
  return contentWidth;
@@ -68252,6 +68261,7 @@ var SpreadsheetDashboard = class extends _odoo_owl.Component {
68252
68261
  return (0, _odoo_owl.toRaw)(this.clickableCellsStore.clickableCells);
68253
68262
  }
68254
68263
  selectClickableCell(ev, clickableCell) {
68264
+ if (![0, 1].includes(ev.button)) return;
68255
68265
  const { position, action } = clickableCell;
68256
68266
  action(position, this.env, isMiddleClickOrCtrlClick(ev));
68257
68267
  }
@@ -84851,6 +84861,6 @@ exports.stores = stores;
84851
84861
  exports.tokenColors = tokenColors;
84852
84862
  exports.tokenize = tokenize;
84853
84863
 
84854
- __info__.version = "19.3.13";
84855
- __info__.date = "2026-07-23T07:41:06.182Z";
84856
- __info__.hash = "2059bd0";
84864
+ __info__.version = "19.3.14";
84865
+ __info__.date = "2026-07-30T06:55:43.749Z";
84866
+ __info__.hash = "3dd5632";
@@ -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.13
6
- * @date 2026-07-23T07:41:07.881Z
7
- * @hash 2059bd0
5
+ * @version 19.3.14
6
+ * @date 2026-07-30T06:55:45.398Z
7
+ * @hash 3dd5632
8
8
  */
9
9
  :root {
10
10
  --os-gray-100: light-dark(#f9fafb, #1b1d26);
@@ -2,9 +2,9 @@
2
2
  /**
3
3
  * This file is generated by o-spreadsheet build tools. Do not edit it.
4
4
  * @see https://github.com/odoo/o-spreadsheet
5
- * @version 19.3.13
6
- * @date 2026-07-23T07:41:06.182Z
7
- * @hash 2059bd0
5
+ * @version 19.3.14
6
+ * @date 2026-07-30T06:55:43.749Z
7
+ * @hash 3dd5632
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";
@@ -10251,7 +10251,7 @@ function getCalendarChartDatasetAndLabels(definition, args) {
10251
10251
  borderWidth: 1,
10252
10252
  barPercentage: 1,
10253
10253
  categoryPercentage: 1,
10254
- values: dataSetValues.data.map((cell) => isNumberResult(cell) ? cell.value : NaN)
10254
+ values: dataSetValues.data.map((cell) => isNumberResult(cell) ? cell.value : void 0)
10255
10255
  });
10256
10256
  return {
10257
10257
  labels,
@@ -11821,6 +11821,19 @@ function isOtherMobileOS() {
11821
11821
  function isMobileOS() {
11822
11822
  return isAndroid() || isIOS() || isOtherMobileOS();
11823
11823
  }
11824
+ const INTERACTIVE_ELEMENT_SELECTOR = "select, input, textarea, button, .o-select, .os-input, .o-input, .o-button, .o-button-icon, .o-button-link, .o-composer";
11825
+ /** Check if there is an interactive element (input, select, button, ...) between the event.target and event.currentTarget (inclusive)*/
11826
+ function hasInteractiveElementInEventTree(event) {
11827
+ const target = event.target;
11828
+ const root = event.currentTarget;
11829
+ if (!root || !target || !root.contains(target)) return false;
11830
+ let node = target;
11831
+ while (node && node !== root) {
11832
+ if (node.matches(INTERACTIVE_ELEMENT_SELECTOR)) return true;
11833
+ node = node.parentElement;
11834
+ }
11835
+ return root.matches(INTERACTIVE_ELEMENT_SELECTOR);
11836
+ }
11824
11837
 
11825
11838
  //#endregion
11826
11839
  //#region src/components/helpers/zoom.ts
@@ -38040,13 +38053,9 @@ var PivotLayoutConfigurator = class extends Component {
38040
38053
  dimensionsRef = useRef("pivot-dimensions");
38041
38054
  dragAndDrop = useDragAndDropListItems();
38042
38055
  AGGREGATORS = AGGREGATORS;
38043
- composerFocus;
38044
38056
  isDateOrDatetimeField = isDateOrDatetimeField;
38045
- setup() {
38046
- this.composerFocus = useStore(ComposerFocusStore);
38047
- }
38048
38057
  startDragAndDrop(dimension, event) {
38049
- if (event.button !== 0 || event.target.tagName === "SELECT") return;
38058
+ if (event.button !== 0 || hasInteractiveElementInEventTree(event)) return;
38050
38059
  const rects = this.getDimensionElementsRects();
38051
38060
  const { columns, rows } = this.props.definition;
38052
38061
  const draggableIds = [
@@ -38086,7 +38095,7 @@ var PivotLayoutConfigurator = class extends Component {
38086
38095
  return field.type === "date" ? this.props.dateGranularities : this.props.datetimeGranularities;
38087
38096
  }
38088
38097
  startDragAndDropMeasures(measure, event) {
38089
- if (event.button !== 0 || event.target.tagName === "SELECT" || event.target.tagName === "INPUT" || this.composerFocus.focusMode !== "inactive") return;
38098
+ if (event.button !== 0 || hasInteractiveElementInEventTree(event)) return;
38090
38099
  const rects = this.getDimensionElementsRects();
38091
38100
  const { measures, columns, rows } = this.props.definition;
38092
38101
  const draggableIds = measures.map((m) => m.id);
@@ -62380,7 +62389,7 @@ var SheetUIPlugin = class extends UIPlugin {
62380
62389
  if (contentWidth === 0) return 0;
62381
62390
  contentWidth += 2 * 4;
62382
62391
  if (style.wrapping === "wrap") {
62383
- const colWidth = this.getters.getColSize(this.getters.getActiveSheetId(), position.col);
62392
+ const colWidth = this.getters.getColSize(position.sheetId, position.col);
62384
62393
  return Math.min(colWidth, contentWidth);
62385
62394
  }
62386
62395
  return contentWidth;
@@ -68067,6 +68076,7 @@ var SpreadsheetDashboard = class extends Component {
68067
68076
  return toRaw(this.clickableCellsStore.clickableCells);
68068
68077
  }
68069
68078
  selectClickableCell(ev, clickableCell) {
68079
+ if (![0, 1].includes(ev.button)) return;
68070
68080
  const { position, action } = clickableCell;
68071
68081
  action(position, this.env, isMiddleClickOrCtrlClick(ev));
68072
68082
  }
@@ -84608,6 +84618,6 @@ const chartHelpers = {
84608
84618
  //#endregion
84609
84619
  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 };
84610
84620
 
84611
- __info__.version = "19.3.13";
84612
- __info__.date = "2026-07-23T07:41:06.182Z";
84613
- __info__.hash = "2059bd0";
84621
+ __info__.version = "19.3.14";
84622
+ __info__.date = "2026-07-30T06:55:43.749Z";
84623
+ __info__.hash = "3dd5632";
@@ -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.13
6
- * @date 2026-07-23T07:41:06.182Z
7
- * @hash 2059bd0
5
+ * @version 19.3.14
6
+ * @date 2026-07-30T06:55:43.749Z
7
+ * @hash 3dd5632
8
8
  */
9
9
 
10
10
  (function(exports, _odoo_owl) {
@@ -10253,7 +10253,7 @@ stores.inject(MyMetaStore, storeInstance);
10253
10253
  borderWidth: 1,
10254
10254
  barPercentage: 1,
10255
10255
  categoryPercentage: 1,
10256
- values: dataSetValues.data.map((cell) => isNumberResult(cell) ? cell.value : NaN)
10256
+ values: dataSetValues.data.map((cell) => isNumberResult(cell) ? cell.value : void 0)
10257
10257
  });
10258
10258
  return {
10259
10259
  labels,
@@ -11823,6 +11823,19 @@ stores.inject(MyMetaStore, storeInstance);
11823
11823
  function isMobileOS() {
11824
11824
  return isAndroid() || isIOS() || isOtherMobileOS();
11825
11825
  }
11826
+ const INTERACTIVE_ELEMENT_SELECTOR = "select, input, textarea, button, .o-select, .os-input, .o-input, .o-button, .o-button-icon, .o-button-link, .o-composer";
11827
+ /** Check if there is an interactive element (input, select, button, ...) between the event.target and event.currentTarget (inclusive)*/
11828
+ function hasInteractiveElementInEventTree(event) {
11829
+ const target = event.target;
11830
+ const root = event.currentTarget;
11831
+ if (!root || !target || !root.contains(target)) return false;
11832
+ let node = target;
11833
+ while (node && node !== root) {
11834
+ if (node.matches(INTERACTIVE_ELEMENT_SELECTOR)) return true;
11835
+ node = node.parentElement;
11836
+ }
11837
+ return root.matches(INTERACTIVE_ELEMENT_SELECTOR);
11838
+ }
11826
11839
 
11827
11840
  //#endregion
11828
11841
  //#region src/components/helpers/zoom.ts
@@ -38042,13 +38055,9 @@ stores.inject(MyMetaStore, storeInstance);
38042
38055
  dimensionsRef = (0, _odoo_owl.useRef)("pivot-dimensions");
38043
38056
  dragAndDrop = useDragAndDropListItems();
38044
38057
  AGGREGATORS = AGGREGATORS;
38045
- composerFocus;
38046
38058
  isDateOrDatetimeField = isDateOrDatetimeField;
38047
- setup() {
38048
- this.composerFocus = useStore(ComposerFocusStore);
38049
- }
38050
38059
  startDragAndDrop(dimension, event) {
38051
- if (event.button !== 0 || event.target.tagName === "SELECT") return;
38060
+ if (event.button !== 0 || hasInteractiveElementInEventTree(event)) return;
38052
38061
  const rects = this.getDimensionElementsRects();
38053
38062
  const { columns, rows } = this.props.definition;
38054
38063
  const draggableIds = [
@@ -38088,7 +38097,7 @@ stores.inject(MyMetaStore, storeInstance);
38088
38097
  return field.type === "date" ? this.props.dateGranularities : this.props.datetimeGranularities;
38089
38098
  }
38090
38099
  startDragAndDropMeasures(measure, event) {
38091
- if (event.button !== 0 || event.target.tagName === "SELECT" || event.target.tagName === "INPUT" || this.composerFocus.focusMode !== "inactive") return;
38100
+ if (event.button !== 0 || hasInteractiveElementInEventTree(event)) return;
38092
38101
  const rects = this.getDimensionElementsRects();
38093
38102
  const { measures, columns, rows } = this.props.definition;
38094
38103
  const draggableIds = measures.map((m) => m.id);
@@ -62382,7 +62391,7 @@ stores.inject(MyMetaStore, storeInstance);
62382
62391
  if (contentWidth === 0) return 0;
62383
62392
  contentWidth += 2 * 4;
62384
62393
  if (style.wrapping === "wrap") {
62385
- const colWidth = this.getters.getColSize(this.getters.getActiveSheetId(), position.col);
62394
+ const colWidth = this.getters.getColSize(position.sheetId, position.col);
62386
62395
  return Math.min(colWidth, contentWidth);
62387
62396
  }
62388
62397
  return contentWidth;
@@ -68069,6 +68078,7 @@ stores.inject(MyMetaStore, storeInstance);
68069
68078
  return (0, _odoo_owl.toRaw)(this.clickableCellsStore.clickableCells);
68070
68079
  }
68071
68080
  selectClickableCell(ev, clickableCell) {
68081
+ if (![0, 1].includes(ev.button)) return;
68072
68082
  const { position, action } = clickableCell;
68073
68083
  action(position, this.env, isMiddleClickOrCtrlClick(ev));
68074
68084
  }
@@ -84668,8 +84678,8 @@ exports.stores = stores;
84668
84678
  exports.tokenColors = tokenColors;
84669
84679
  exports.tokenize = tokenize;
84670
84680
 
84671
- __info__.version = "19.3.13";
84672
- __info__.date = "2026-07-23T07:41:06.182Z";
84673
- __info__.hash = "2059bd0";
84681
+ __info__.version = "19.3.14";
84682
+ __info__.date = "2026-07-30T06:55:43.749Z";
84683
+ __info__.hash = "3dd5632";
84674
84684
 
84675
84685
  })(this.o_spreadsheet = this.o_spreadsheet || {}, owl);