@odoo/o-spreadsheet 18.0.14 → 18.0.15

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 18.0.14
6
- * @date 2025-02-05T06:47:33.041Z
7
- * @hash 90f2af4
5
+ * @version 18.0.15
6
+ * @date 2025-02-10T08:59:22.993Z
7
+ * @hash 5b19f88
8
8
  */
9
9
 
10
10
  'use strict';
@@ -767,9 +767,16 @@ function deepEqualsArray(arr1, arr2) {
767
767
  }
768
768
  return true;
769
769
  }
770
- /** Check if the given array contains all the values of the other array. */
770
+ /**
771
+ * Check if the given array contains all the values of the other array.
772
+ * It makes the assumption that both array do not contain duplicates.
773
+ */
771
774
  function includesAll(arr, values) {
772
- return values.every((value) => arr.includes(value));
775
+ if (arr.length < values.length) {
776
+ return false;
777
+ }
778
+ const set = new Set(arr);
779
+ return values.every((value) => set.has(value));
773
780
  }
774
781
  /**
775
782
  * Return an object with all the keys in the object that have a falsy value removed.
@@ -39257,8 +39264,8 @@ function useDragAndDropListItems() {
39257
39264
  document.body.style.cursor = "move";
39258
39265
  state.draggedItemId = args.draggedItemId;
39259
39266
  const container = direction === "horizontal"
39260
- ? new HorizontalContainer(args.containerEl)
39261
- : new VerticalContainer(args.containerEl);
39267
+ ? new HorizontalContainer(args.scrollableContainerEl)
39268
+ : new VerticalContainer(args.scrollableContainerEl);
39262
39269
  dndHelper = new DOMDndHelper({
39263
39270
  ...args,
39264
39271
  container,
@@ -39269,8 +39276,8 @@ function useDragAndDropListItems() {
39269
39276
  const stopListening = startDnd(dndHelper.onMouseMove.bind(dndHelper), dndHelper.onMouseUp.bind(dndHelper));
39270
39277
  cleanupFns.push(stopListening);
39271
39278
  const onScroll = dndHelper.onScroll.bind(dndHelper);
39272
- args.containerEl.addEventListener("scroll", onScroll);
39273
- cleanupFns.push(() => args.containerEl.removeEventListener("scroll", onScroll));
39279
+ args.scrollableContainerEl.addEventListener("scroll", onScroll);
39280
+ cleanupFns.push(() => args.scrollableContainerEl.removeEventListener("scroll", onScroll));
39274
39281
  cleanupFns.push(dndHelper.destroy.bind(dndHelper));
39275
39282
  };
39276
39283
  owl.onWillUnmount(() => {
@@ -39734,7 +39741,7 @@ class ConditionalFormatPreviewList extends owl.Component {
39734
39741
  draggedItemId: cf.id,
39735
39742
  initialMousePosition: event.clientY,
39736
39743
  items: items,
39737
- containerEl: this.cfListRef.el,
39744
+ scrollableContainerEl: this.cfListRef.el,
39738
39745
  onDragEnd: (cfId, finalIndex) => this.onDragEnd(cfId, finalIndex),
39739
39746
  });
39740
39747
  }
@@ -42718,6 +42725,7 @@ class PivotLayoutConfigurator extends owl.Component {
42718
42725
  unusedGranularities: Object,
42719
42726
  dateGranularities: Array,
42720
42727
  datetimeGranularities: Array,
42728
+ getScrollableContainerEl: { type: Function, optional: true },
42721
42729
  pivotId: String,
42722
42730
  };
42723
42731
  dimensionsRef = owl.useRef("pivot-dimensions");
@@ -42751,7 +42759,7 @@ class PivotLayoutConfigurator extends owl.Component {
42751
42759
  draggedItemId: dimension.nameWithGranularity,
42752
42760
  initialMousePosition: event.clientY,
42753
42761
  items: draggableItems,
42754
- containerEl: this.dimensionsRef.el,
42762
+ scrollableContainerEl: this.props.getScrollableContainerEl?.() || this.dimensionsRef.el,
42755
42763
  onDragEnd: (dimensionName, finalIndex) => {
42756
42764
  const originalIndex = draggableIds.findIndex((id) => id === dimensionName);
42757
42765
  if (originalIndex === finalIndex) {
@@ -42800,7 +42808,7 @@ class PivotLayoutConfigurator extends owl.Component {
42800
42808
  draggedItemId: measure.id,
42801
42809
  initialMousePosition: event.clientY,
42802
42810
  items: draggableItems,
42803
- containerEl: this.dimensionsRef.el,
42811
+ scrollableContainerEl: this.props.getScrollableContainerEl?.() || this.dimensionsRef.el,
42804
42812
  onDragEnd: (measureName, finalIndex) => {
42805
42813
  const originalIndex = draggableIds.findIndex((id) => id === measureName);
42806
42814
  if (originalIndex === finalIndex) {
@@ -44428,6 +44436,7 @@ class PivotSpreadsheetSidePanel extends owl.Component {
44428
44436
  };
44429
44437
  store;
44430
44438
  state;
44439
+ pivotSidePanelRef = owl.useRef("pivotSidePanel");
44431
44440
  setup() {
44432
44441
  this.store = useLocalStore(PivotSidePanelStore, this.props.pivotId);
44433
44442
  this.state = owl.useState({
@@ -44456,6 +44465,9 @@ class PivotSpreadsheetSidePanel extends owl.Component {
44456
44465
  get definition() {
44457
44466
  return this.store.definition;
44458
44467
  }
44468
+ getScrollableContainerEl() {
44469
+ return this.pivotSidePanelRef.el;
44470
+ }
44459
44471
  onSelectionChanged(ranges) {
44460
44472
  this.state.rangeHasChanged = true;
44461
44473
  this.state.range = ranges[0];
@@ -67005,7 +67017,7 @@ class BottomBar extends owl.Component {
67005
67017
  draggedItemId: sheetId,
67006
67018
  initialMousePosition: event.clientX,
67007
67019
  items: sheets,
67008
- containerEl: this.sheetListRef.el,
67020
+ scrollableContainerEl: this.sheetListRef.el,
67009
67021
  onDragEnd: (sheetId, finalIndex) => this.onDragEnd(sheetId, finalIndex),
67010
67022
  });
67011
67023
  }
@@ -73170,6 +73182,6 @@ exports.tokenColors = tokenColors;
73170
73182
  exports.tokenize = tokenize;
73171
73183
 
73172
73184
 
73173
- __info__.version = "18.0.14";
73174
- __info__.date = "2025-02-05T06:47:33.041Z";
73175
- __info__.hash = "90f2af4";
73185
+ __info__.version = "18.0.15";
73186
+ __info__.date = "2025-02-10T08:59:22.993Z";
73187
+ __info__.hash = "5b19f88";
@@ -9282,7 +9282,7 @@ interface DndPartialArgs {
9282
9282
  draggedItemId: UID;
9283
9283
  initialMousePosition: Pixel;
9284
9284
  items: DragAndDropItemsPartial[];
9285
- containerEl: HTMLElement;
9285
+ scrollableContainerEl: HTMLElement;
9286
9286
  onChange?: () => void;
9287
9287
  onCancel?: () => void;
9288
9288
  onDragEnd?: (itemId: UID, indexAtEnd: Pixel) => void;
@@ -9795,6 +9795,7 @@ interface Props$d {
9795
9795
  unusedGranularities: Record<string, Set<string>>;
9796
9796
  dateGranularities: string[];
9797
9797
  datetimeGranularities: string[];
9798
+ getScrollableContainerEl?: () => HTMLElement;
9798
9799
  pivotId: UID;
9799
9800
  }
9800
9801
  declare class PivotLayoutConfigurator extends Component<Props$d, SpreadsheetChildEnv> {
@@ -9814,6 +9815,10 @@ declare class PivotLayoutConfigurator extends Component<Props$d, SpreadsheetChil
9814
9815
  unusedGranularities: ObjectConstructor;
9815
9816
  dateGranularities: ArrayConstructor;
9816
9817
  datetimeGranularities: ArrayConstructor;
9818
+ getScrollableContainerEl: {
9819
+ type: FunctionConstructor;
9820
+ optional: boolean;
9821
+ };
9817
9822
  pivotId: StringConstructor;
9818
9823
  };
9819
9824
  private dimensionsRef;
@@ -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 18.0.14
6
- * @date 2025-02-05T06:47:33.041Z
7
- * @hash 90f2af4
5
+ * @version 18.0.15
6
+ * @date 2025-02-10T08:59:22.993Z
7
+ * @hash 5b19f88
8
8
  */
9
9
 
10
10
  import { useEnv, useSubEnv, onWillUnmount, useComponent, status, Component, useRef, onMounted, useEffect, useState, onPatched, onWillPatch, onWillUpdateProps, useExternalListener, onWillStart, xml, useChildSubEnv, markRaw, toRaw } from '@odoo/owl';
@@ -765,9 +765,16 @@ function deepEqualsArray(arr1, arr2) {
765
765
  }
766
766
  return true;
767
767
  }
768
- /** Check if the given array contains all the values of the other array. */
768
+ /**
769
+ * Check if the given array contains all the values of the other array.
770
+ * It makes the assumption that both array do not contain duplicates.
771
+ */
769
772
  function includesAll(arr, values) {
770
- return values.every((value) => arr.includes(value));
773
+ if (arr.length < values.length) {
774
+ return false;
775
+ }
776
+ const set = new Set(arr);
777
+ return values.every((value) => set.has(value));
771
778
  }
772
779
  /**
773
780
  * Return an object with all the keys in the object that have a falsy value removed.
@@ -39255,8 +39262,8 @@ function useDragAndDropListItems() {
39255
39262
  document.body.style.cursor = "move";
39256
39263
  state.draggedItemId = args.draggedItemId;
39257
39264
  const container = direction === "horizontal"
39258
- ? new HorizontalContainer(args.containerEl)
39259
- : new VerticalContainer(args.containerEl);
39265
+ ? new HorizontalContainer(args.scrollableContainerEl)
39266
+ : new VerticalContainer(args.scrollableContainerEl);
39260
39267
  dndHelper = new DOMDndHelper({
39261
39268
  ...args,
39262
39269
  container,
@@ -39267,8 +39274,8 @@ function useDragAndDropListItems() {
39267
39274
  const stopListening = startDnd(dndHelper.onMouseMove.bind(dndHelper), dndHelper.onMouseUp.bind(dndHelper));
39268
39275
  cleanupFns.push(stopListening);
39269
39276
  const onScroll = dndHelper.onScroll.bind(dndHelper);
39270
- args.containerEl.addEventListener("scroll", onScroll);
39271
- cleanupFns.push(() => args.containerEl.removeEventListener("scroll", onScroll));
39277
+ args.scrollableContainerEl.addEventListener("scroll", onScroll);
39278
+ cleanupFns.push(() => args.scrollableContainerEl.removeEventListener("scroll", onScroll));
39272
39279
  cleanupFns.push(dndHelper.destroy.bind(dndHelper));
39273
39280
  };
39274
39281
  onWillUnmount(() => {
@@ -39732,7 +39739,7 @@ class ConditionalFormatPreviewList extends Component {
39732
39739
  draggedItemId: cf.id,
39733
39740
  initialMousePosition: event.clientY,
39734
39741
  items: items,
39735
- containerEl: this.cfListRef.el,
39742
+ scrollableContainerEl: this.cfListRef.el,
39736
39743
  onDragEnd: (cfId, finalIndex) => this.onDragEnd(cfId, finalIndex),
39737
39744
  });
39738
39745
  }
@@ -42716,6 +42723,7 @@ class PivotLayoutConfigurator extends Component {
42716
42723
  unusedGranularities: Object,
42717
42724
  dateGranularities: Array,
42718
42725
  datetimeGranularities: Array,
42726
+ getScrollableContainerEl: { type: Function, optional: true },
42719
42727
  pivotId: String,
42720
42728
  };
42721
42729
  dimensionsRef = useRef("pivot-dimensions");
@@ -42749,7 +42757,7 @@ class PivotLayoutConfigurator extends Component {
42749
42757
  draggedItemId: dimension.nameWithGranularity,
42750
42758
  initialMousePosition: event.clientY,
42751
42759
  items: draggableItems,
42752
- containerEl: this.dimensionsRef.el,
42760
+ scrollableContainerEl: this.props.getScrollableContainerEl?.() || this.dimensionsRef.el,
42753
42761
  onDragEnd: (dimensionName, finalIndex) => {
42754
42762
  const originalIndex = draggableIds.findIndex((id) => id === dimensionName);
42755
42763
  if (originalIndex === finalIndex) {
@@ -42798,7 +42806,7 @@ class PivotLayoutConfigurator extends Component {
42798
42806
  draggedItemId: measure.id,
42799
42807
  initialMousePosition: event.clientY,
42800
42808
  items: draggableItems,
42801
- containerEl: this.dimensionsRef.el,
42809
+ scrollableContainerEl: this.props.getScrollableContainerEl?.() || this.dimensionsRef.el,
42802
42810
  onDragEnd: (measureName, finalIndex) => {
42803
42811
  const originalIndex = draggableIds.findIndex((id) => id === measureName);
42804
42812
  if (originalIndex === finalIndex) {
@@ -44426,6 +44434,7 @@ class PivotSpreadsheetSidePanel extends Component {
44426
44434
  };
44427
44435
  store;
44428
44436
  state;
44437
+ pivotSidePanelRef = useRef("pivotSidePanel");
44429
44438
  setup() {
44430
44439
  this.store = useLocalStore(PivotSidePanelStore, this.props.pivotId);
44431
44440
  this.state = useState({
@@ -44454,6 +44463,9 @@ class PivotSpreadsheetSidePanel extends Component {
44454
44463
  get definition() {
44455
44464
  return this.store.definition;
44456
44465
  }
44466
+ getScrollableContainerEl() {
44467
+ return this.pivotSidePanelRef.el;
44468
+ }
44457
44469
  onSelectionChanged(ranges) {
44458
44470
  this.state.rangeHasChanged = true;
44459
44471
  this.state.range = ranges[0];
@@ -67003,7 +67015,7 @@ class BottomBar extends Component {
67003
67015
  draggedItemId: sheetId,
67004
67016
  initialMousePosition: event.clientX,
67005
67017
  items: sheets,
67006
- containerEl: this.sheetListRef.el,
67018
+ scrollableContainerEl: this.sheetListRef.el,
67007
67019
  onDragEnd: (sheetId, finalIndex) => this.onDragEnd(sheetId, finalIndex),
67008
67020
  });
67009
67021
  }
@@ -73125,6 +73137,6 @@ const constants = {
73125
73137
  export { AbstractCellClipboardHandler, AbstractChart, AbstractFigureClipboardHandler, CellErrorType, CommandResult, CorePlugin, DispatchResult, EvaluationError, Model, PivotRuntimeDefinition, Registry, Revision, SPREADSHEET_DIMENSIONS, Spreadsheet, SpreadsheetPivotTable, UIPlugin, __info__, addFunction, addRenderingLayer, astToFormula, compile, compileTokens, components, constants, convertAstNodes, coreTypes, findCellInNewZone, functionCache, helpers, hooks, invalidateCFEvaluationCommands, invalidateDependenciesCommands, invalidateEvaluationCommands, iterateAstNodes, links, load, parse, parseTokens, readonlyAllowedCommands, registries, setDefaultSheetViewSize, setTranslationMethod, stores, tokenColors, tokenize };
73126
73138
 
73127
73139
 
73128
- __info__.version = "18.0.14";
73129
- __info__.date = "2025-02-05T06:47:33.041Z";
73130
- __info__.hash = "90f2af4";
73140
+ __info__.version = "18.0.15";
73141
+ __info__.date = "2025-02-10T08:59:22.993Z";
73142
+ __info__.hash = "5b19f88";
@@ -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 18.0.14
6
- * @date 2025-02-05T06:47:33.041Z
7
- * @hash 90f2af4
5
+ * @version 18.0.15
6
+ * @date 2025-02-10T08:59:22.993Z
7
+ * @hash 5b19f88
8
8
  */
9
9
 
10
10
  (function (exports, owl) {
@@ -766,9 +766,16 @@
766
766
  }
767
767
  return true;
768
768
  }
769
- /** Check if the given array contains all the values of the other array. */
769
+ /**
770
+ * Check if the given array contains all the values of the other array.
771
+ * It makes the assumption that both array do not contain duplicates.
772
+ */
770
773
  function includesAll(arr, values) {
771
- return values.every((value) => arr.includes(value));
774
+ if (arr.length < values.length) {
775
+ return false;
776
+ }
777
+ const set = new Set(arr);
778
+ return values.every((value) => set.has(value));
772
779
  }
773
780
  /**
774
781
  * Return an object with all the keys in the object that have a falsy value removed.
@@ -39256,8 +39263,8 @@ stores.inject(MyMetaStore, storeInstance);
39256
39263
  document.body.style.cursor = "move";
39257
39264
  state.draggedItemId = args.draggedItemId;
39258
39265
  const container = direction === "horizontal"
39259
- ? new HorizontalContainer(args.containerEl)
39260
- : new VerticalContainer(args.containerEl);
39266
+ ? new HorizontalContainer(args.scrollableContainerEl)
39267
+ : new VerticalContainer(args.scrollableContainerEl);
39261
39268
  dndHelper = new DOMDndHelper({
39262
39269
  ...args,
39263
39270
  container,
@@ -39268,8 +39275,8 @@ stores.inject(MyMetaStore, storeInstance);
39268
39275
  const stopListening = startDnd(dndHelper.onMouseMove.bind(dndHelper), dndHelper.onMouseUp.bind(dndHelper));
39269
39276
  cleanupFns.push(stopListening);
39270
39277
  const onScroll = dndHelper.onScroll.bind(dndHelper);
39271
- args.containerEl.addEventListener("scroll", onScroll);
39272
- cleanupFns.push(() => args.containerEl.removeEventListener("scroll", onScroll));
39278
+ args.scrollableContainerEl.addEventListener("scroll", onScroll);
39279
+ cleanupFns.push(() => args.scrollableContainerEl.removeEventListener("scroll", onScroll));
39273
39280
  cleanupFns.push(dndHelper.destroy.bind(dndHelper));
39274
39281
  };
39275
39282
  owl.onWillUnmount(() => {
@@ -39733,7 +39740,7 @@ stores.inject(MyMetaStore, storeInstance);
39733
39740
  draggedItemId: cf.id,
39734
39741
  initialMousePosition: event.clientY,
39735
39742
  items: items,
39736
- containerEl: this.cfListRef.el,
39743
+ scrollableContainerEl: this.cfListRef.el,
39737
39744
  onDragEnd: (cfId, finalIndex) => this.onDragEnd(cfId, finalIndex),
39738
39745
  });
39739
39746
  }
@@ -42717,6 +42724,7 @@ stores.inject(MyMetaStore, storeInstance);
42717
42724
  unusedGranularities: Object,
42718
42725
  dateGranularities: Array,
42719
42726
  datetimeGranularities: Array,
42727
+ getScrollableContainerEl: { type: Function, optional: true },
42720
42728
  pivotId: String,
42721
42729
  };
42722
42730
  dimensionsRef = owl.useRef("pivot-dimensions");
@@ -42750,7 +42758,7 @@ stores.inject(MyMetaStore, storeInstance);
42750
42758
  draggedItemId: dimension.nameWithGranularity,
42751
42759
  initialMousePosition: event.clientY,
42752
42760
  items: draggableItems,
42753
- containerEl: this.dimensionsRef.el,
42761
+ scrollableContainerEl: this.props.getScrollableContainerEl?.() || this.dimensionsRef.el,
42754
42762
  onDragEnd: (dimensionName, finalIndex) => {
42755
42763
  const originalIndex = draggableIds.findIndex((id) => id === dimensionName);
42756
42764
  if (originalIndex === finalIndex) {
@@ -42799,7 +42807,7 @@ stores.inject(MyMetaStore, storeInstance);
42799
42807
  draggedItemId: measure.id,
42800
42808
  initialMousePosition: event.clientY,
42801
42809
  items: draggableItems,
42802
- containerEl: this.dimensionsRef.el,
42810
+ scrollableContainerEl: this.props.getScrollableContainerEl?.() || this.dimensionsRef.el,
42803
42811
  onDragEnd: (measureName, finalIndex) => {
42804
42812
  const originalIndex = draggableIds.findIndex((id) => id === measureName);
42805
42813
  if (originalIndex === finalIndex) {
@@ -44427,6 +44435,7 @@ stores.inject(MyMetaStore, storeInstance);
44427
44435
  };
44428
44436
  store;
44429
44437
  state;
44438
+ pivotSidePanelRef = owl.useRef("pivotSidePanel");
44430
44439
  setup() {
44431
44440
  this.store = useLocalStore(PivotSidePanelStore, this.props.pivotId);
44432
44441
  this.state = owl.useState({
@@ -44455,6 +44464,9 @@ stores.inject(MyMetaStore, storeInstance);
44455
44464
  get definition() {
44456
44465
  return this.store.definition;
44457
44466
  }
44467
+ getScrollableContainerEl() {
44468
+ return this.pivotSidePanelRef.el;
44469
+ }
44458
44470
  onSelectionChanged(ranges) {
44459
44471
  this.state.rangeHasChanged = true;
44460
44472
  this.state.range = ranges[0];
@@ -67004,7 +67016,7 @@ stores.inject(MyMetaStore, storeInstance);
67004
67016
  draggedItemId: sheetId,
67005
67017
  initialMousePosition: event.clientX,
67006
67018
  items: sheets,
67007
- containerEl: this.sheetListRef.el,
67019
+ scrollableContainerEl: this.sheetListRef.el,
67008
67020
  onDragEnd: (sheetId, finalIndex) => this.onDragEnd(sheetId, finalIndex),
67009
67021
  });
67010
67022
  }
@@ -73169,9 +73181,9 @@ stores.inject(MyMetaStore, storeInstance);
73169
73181
  exports.tokenize = tokenize;
73170
73182
 
73171
73183
 
73172
- __info__.version = "18.0.14";
73173
- __info__.date = "2025-02-05T06:47:33.041Z";
73174
- __info__.hash = "90f2af4";
73184
+ __info__.version = "18.0.15";
73185
+ __info__.date = "2025-02-10T08:59:22.993Z";
73186
+ __info__.hash = "5b19f88";
73175
73187
 
73176
73188
 
73177
73189
  })(this.o_spreadsheet = this.o_spreadsheet || {}, owl);