@odoo/o-spreadsheet 19.4.2 → 19.4.4

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.4.2
6
- * @date 2026-07-13T06:26:39.071Z
7
- * @hash c83d4aa
5
+ * @version 19.4.4
6
+ * @date 2026-07-23T07:49:22.265Z
7
+ * @hash 6b3c312
8
8
  */
9
9
 
10
10
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
@@ -1247,6 +1247,12 @@ function defaultDict(def) {
1247
1247
  }
1248
1248
  };
1249
1249
  }
1250
+ function repeat(array, times) {
1251
+ const len = array.length;
1252
+ const result = new Array(len * times);
1253
+ for (let t = 0; t < times; t++) for (let i = 0; i < len; i++) result[t * len + i] = array[i];
1254
+ return result;
1255
+ }
1250
1256
 
1251
1257
  //#endregion
1252
1258
  //#region src/helpers/coordinates.ts
@@ -2600,7 +2606,7 @@ function unregisterChartJsExtensions() {
2600
2606
  *
2601
2607
  * The end goal is to eliminate all compatibility shims.
2602
2608
  */
2603
- const { __ODOO_COMPATIBILITY_LAYER_ADDED__, blockDom: blockDom$1, config, onMounted: onMounted$24, onPatched: onPatched$5, onWillUnmount: onWillUnmount$18, App: OwlApp, Component: OwlComponent, EnvPlugin: OwlEnvPlugin, useChildEnv: OwlUseChildEnv, useChildSubEnv: OwlUseChildSubEnv, useComponent: OwlUseComponent, useEnv: OwlUseEnv, useExternalListener: OwlUseExternalListener, useLayoutEffect: OwlUseLayoutEffect, useSubEnv: OwlUseSubEnv, Plugin, plugin, props: props$166, providePlugins, useScope, xml: xml$4 } = _odoo_owl;
2609
+ const { __ODOO_COMPATIBILITY_LAYER_ADDED__, blockDom: blockDom$1, config, onMounted: onMounted$24, onPatched: onPatched$5, onWillUnmount: onWillUnmount$18, App: OwlApp, Component: OwlComponent, EnvPlugin: OwlEnvPlugin, useChildEnv: OwlUseChildEnv, useChildSubEnv: OwlUseChildSubEnv, useComponent: OwlUseComponent, useEnv: OwlUseEnv, useExternalListener: OwlUseExternalListener, useLayoutEffect: OwlUseLayoutEffect, useSubEnv: OwlUseSubEnv, Plugin, usePlugin, useProps: useProps$166, providePlugins, useScope, xml: xml$4 } = _odoo_owl;
2604
2610
  const isOdooCompatLoaded = __ODOO_COMPATIBILITY_LAYER_ADDED__ === true;
2605
2611
  var _Component = class extends OwlComponent {
2606
2612
  static template = "";
@@ -2681,7 +2687,7 @@ function _useChildSubEnv(extension) {
2681
2687
  extendEnv(extension);
2682
2688
  }
2683
2689
  function _useChildEnv() {
2684
- return plugin(_EnvPlugin).env;
2690
+ return usePlugin(_EnvPlugin).env;
2685
2691
  }
2686
2692
  var VPortal = class extends blockDom$1.text("").constructor {
2687
2693
  /**
@@ -2730,7 +2736,7 @@ var Portal = class extends OwlComponent {
2730
2736
  static template = xml$4`<t t-call-slot="default"/>`;
2731
2737
  constructor(node) {
2732
2738
  super(node);
2733
- this.props = props$166();
2739
+ this.props = useProps$166();
2734
2740
  this.__owl__ = node;
2735
2741
  }
2736
2742
  setup() {
@@ -6766,7 +6772,7 @@ function getRangeString(range, forSheetId, getSheetName, options = {
6766
6772
  if (prefixSheet && !sheetName) return CellErrorType.InvalidReference;
6767
6773
  let rangeString = getRangePartString(range, 0, options);
6768
6774
  if (range.parts && range.parts.length === 2) {
6769
- if (range.zone.top !== range.zone.bottom || range.zone.left !== range.zone.right || range.parts[0].rowFixed || range.parts[0].colFixed || range.parts[1].rowFixed || range.parts[1].colFixed) {
6775
+ if (range.zone.top !== range.zone.bottom || range.zone.left !== range.zone.right || range.parts[0].rowFixed || range.parts[0].colFixed || range.parts[1].rowFixed || range.parts[1].colFixed || options.doNotSimplifyRange) {
6770
6776
  rangeString += ":";
6771
6777
  rangeString += getRangePartString(range, 1, options);
6772
6778
  }
@@ -7518,6 +7524,11 @@ var CompiledFormula = class CompiledFormula {
7518
7524
  const params = compileTokens(rangeTokenize(formula));
7519
7525
  return new CompiledFormula(sheetId, params.tokens, params.literalValues, params.symbols, params.dependencies.map((xc) => getters.getRangeFromSheetXC(sheetId, xc)), params.isBadExpression, params.normalizedFormula, params.execute);
7520
7526
  }
7527
+ areRangeShapesInLineWithNormalizedFormula() {
7528
+ return Array.from(this.normalizedFormula.matchAll(/\|C\||\|R\|/g)).every((value, index) => {
7529
+ return this.rangeDependencies[index].parts.length === 1 && value[0] === "|C|" || this.rangeDependencies[index].parts.length === 2 && value[0] === "|R|" || this.rangeDependencies[index].invalidXc || this.rangeDependencies[index].invalidSheetName;
7530
+ });
7531
+ }
7521
7532
  };
7522
7533
  function compileTokens(tokens) {
7523
7534
  try {
@@ -11713,7 +11724,7 @@ chartJsExtensionRegistry.add("chartBackgroundPlugin", {
11713
11724
  });
11714
11725
  var ChartJsComponent = class extends Component {
11715
11726
  static template = "o-spreadsheet-ChartJsComponent";
11716
- props = (0, _odoo_owl.props)({
11727
+ props = (0, _odoo_owl.useProps)({
11717
11728
  chartId: types.string(),
11718
11729
  isFullScreen: types.boolean().optional()
11719
11730
  });
@@ -12416,7 +12427,7 @@ function getZoomTargetPosition(ev, zoom) {
12416
12427
  //#region src/components/figures/chart/scorecard/chart_scorecard.ts
12417
12428
  var ScorecardChart = class extends Component {
12418
12429
  static template = "o-spreadsheet-ScorecardChart";
12419
- props = (0, _odoo_owl.props)({
12430
+ props = (0, _odoo_owl.useProps)({
12420
12431
  chartId: types.string(),
12421
12432
  isFullScreen: types.boolean().optional()
12422
12433
  });
@@ -14156,7 +14167,7 @@ function hasIconLayoutChange(newBox, oldBox) {
14156
14167
  const ANIMATION_DURATION = 1e3;
14157
14168
  var GaugeChartComponent = class extends Component {
14158
14169
  static template = "o-spreadsheet-GaugeChartComponent";
14159
- props = (0, _odoo_owl.props)({
14170
+ props = (0, _odoo_owl.useProps)({
14160
14171
  chartId: types.string(),
14161
14172
  isFullScreen: types.boolean().optional()
14162
14173
  });
@@ -14382,7 +14393,7 @@ function useTimeOut() {
14382
14393
  var Menu = class extends Component {
14383
14394
  static template = "o-spreadsheet-Menu";
14384
14395
  static components = {};
14385
- props = (0, _odoo_owl.props)({
14396
+ props = (0, _odoo_owl.useProps)({
14386
14397
  menuItems: types.ArrayOf(),
14387
14398
  onClose: types.function(),
14388
14399
  onClickMenu: types.function().optional(),
@@ -14535,7 +14546,7 @@ function usePopoverContainer() {
14535
14546
  //#region src/components/popover/popover.ts
14536
14547
  var Popover = class extends Component {
14537
14548
  static template = "o-spreadsheet-Popover";
14538
- props = (0, _odoo_owl.props)({
14549
+ props = (0, _odoo_owl.useProps)({
14539
14550
  anchorRect: types.Rect(),
14540
14551
  containerRect: types.object({}).optional(),
14541
14552
  positioning: types.or([types.literal("top-right"), types.literal("bottom-left")]).optional("bottom-left"),
@@ -14714,7 +14725,7 @@ var MenuPopover = class MenuPopover extends Component {
14714
14725
  Menu,
14715
14726
  Popover
14716
14727
  };
14717
- props = (0, _odoo_owl.props)({
14728
+ props = (0, _odoo_owl.useProps)({
14718
14729
  anchorRect: types.Rect(),
14719
14730
  popoverPositioning: types.or([types.literal("top-right"), types.literal("bottom-left")]).optional("top-right"),
14720
14731
  menuItems: types.ArrayOf(),
@@ -14969,7 +14980,7 @@ var MenuPopover = class MenuPopover extends Component {
14969
14980
  var Select = class extends Component {
14970
14981
  static template = "o-spreadsheet-Select";
14971
14982
  static components = { Popover };
14972
- props = (0, _odoo_owl.props)({
14983
+ props = (0, _odoo_owl.useProps)({
14973
14984
  onChange: types.function(),
14974
14985
  values: types.array(),
14975
14986
  selectedValue: types.string().optional(),
@@ -15079,7 +15090,7 @@ var Select = class extends Component {
15079
15090
  //#region src/components/info_popover/info_popover.ts
15080
15091
  var InfoPopover = class extends Component {
15081
15092
  static template = "o-spreadsheet-Info-Popover";
15082
- props = (0, _odoo_owl.props)({
15093
+ props = (0, _odoo_owl.useProps)({
15083
15094
  anchorRect: types.Rect(),
15084
15095
  onClose: types.function(),
15085
15096
  annotationText: types.string().optional(),
@@ -15119,7 +15130,7 @@ var ChartMenu = class extends Component {
15119
15130
  InfoPopover,
15120
15131
  Select
15121
15132
  };
15122
- props = (0, _odoo_owl.props)({
15133
+ props = (0, _odoo_owl.useProps)({
15123
15134
  chartId: types.UID(),
15124
15135
  hasFullScreenButton: types.boolean().optional(true),
15125
15136
  displayEllipsisButton: types.boolean().optional(true)
@@ -15227,7 +15238,7 @@ var CarouselFigure = class extends Component {
15227
15238
  ChartMenu,
15228
15239
  MenuPopover
15229
15240
  };
15230
- props = (0, _odoo_owl.props)({
15241
+ props = (0, _odoo_owl.useProps)({
15231
15242
  figureUI: types.FigureUI(),
15232
15243
  editFigureStyle: types.function().optional(),
15233
15244
  isFullScreen: types.boolean().optional(),
@@ -15373,7 +15384,7 @@ var CarouselFigure = class extends Component {
15373
15384
  var ChartFigure = class extends Component {
15374
15385
  static template = "o-spreadsheet-ChartFigure";
15375
15386
  static components = { ChartMenu };
15376
- props = (0, _odoo_owl.props)({
15387
+ props = (0, _odoo_owl.useProps)({
15377
15388
  figureUI: types.FigureUI(),
15378
15389
  editFigureStyle: types.function().optional(),
15379
15390
  isFullScreen: types.boolean().optional(),
@@ -15403,7 +15414,7 @@ var ChartFigure = class extends Component {
15403
15414
  //#region src/components/figures/figure_image/figure_image.ts
15404
15415
  var ImageFigure = class extends Component {
15405
15416
  static template = "o-spreadsheet-ImageFigure";
15406
- props = (0, _odoo_owl.props)({
15417
+ props = (0, _odoo_owl.useProps)({
15407
15418
  figureUI: types.FigureUI(),
15408
15419
  editFigureStyle: types.function().optional(),
15409
15420
  openContextMenu: types.function()
@@ -15455,7 +15466,7 @@ const ACTIVE_BORDER_WIDTH = 2;
15455
15466
  var FigureComponent = class extends Component {
15456
15467
  static template = "o-spreadsheet-FigureComponent";
15457
15468
  static components = { MenuPopover };
15458
- props = (0, _odoo_owl.props)({
15469
+ props = (0, _odoo_owl.useProps)({
15459
15470
  figureUI: types.FigureUI(),
15460
15471
  style: types.string(),
15461
15472
  class: types.string(),
@@ -24593,7 +24604,7 @@ const genericInputPropsDefinition = {
24593
24604
  resetOnBlur: types.boolean().optional()
24594
24605
  };
24595
24606
  var GenericInput = class extends Component {
24596
- props = (0, _odoo_owl.props)(genericInputPropsDefinition);
24607
+ props = (0, _odoo_owl.useProps)(genericInputPropsDefinition);
24597
24608
  genericInputRef = _odoo_owl.signal.ref(HTMLInputElement);
24598
24609
  lastOnChangeValue = this.props.value.toString();
24599
24610
  setup() {
@@ -24676,7 +24687,7 @@ var GenericInput = class extends Component {
24676
24687
  var TextInput = class extends GenericInput {
24677
24688
  static template = "o-spreadsheet-TextInput";
24678
24689
  static components = {};
24679
- props = (0, _odoo_owl.props)({
24690
+ props = (0, _odoo_owl.useProps)({
24680
24691
  ...genericInputPropsDefinition,
24681
24692
  value: types.string(),
24682
24693
  errorMessage: types.string().optional(),
@@ -24696,7 +24707,7 @@ var TextInput = class extends GenericInput {
24696
24707
  //#region src/components/action_button/action_button.ts
24697
24708
  var ActionButton = class extends Component {
24698
24709
  static template = "o-spreadsheet-ActionButton";
24699
- props = (0, _odoo_owl.props)({
24710
+ props = (0, _odoo_owl.useProps)({
24700
24711
  action: types.ActionSpec(),
24701
24712
  hasTriangleDownIcon: types.boolean().optional(),
24702
24713
  selectedColor: types.string().optional(),
@@ -24752,7 +24763,7 @@ const INNER_GRADIENT_HEIGHT = CONTENT_WIDTH - 30 - 2 * ITEM_BORDER_WIDTH;
24752
24763
  var ColorPicker = class extends Component {
24753
24764
  static template = "o-spreadsheet-ColorPicker";
24754
24765
  static components = { Popover };
24755
- props = (0, _odoo_owl.props)({
24766
+ props = (0, _odoo_owl.useProps)({
24756
24767
  onColorPicked: types.function(),
24757
24768
  currentColor: types.string().optional(""),
24758
24769
  maxHeight: types.Pixel().optional(),
@@ -24915,7 +24926,7 @@ var ColorPicker = class extends Component {
24915
24926
  var ColorPickerWidget = class extends Component {
24916
24927
  static template = "o-spreadsheet-ColorPickerWidget";
24917
24928
  static components = { ColorPicker };
24918
- props = (0, _odoo_owl.props)({
24929
+ props = (0, _odoo_owl.useProps)({
24919
24930
  currentColor: types.string().optional(),
24920
24931
  toggleColorPicker: types.function(),
24921
24932
  showColorPicker: types.boolean(),
@@ -24940,7 +24951,7 @@ var ColorPickerWidget = class extends Component {
24940
24951
  var NumberEditor = class extends Component {
24941
24952
  static template = "o-spreadsheet-NumberEditor";
24942
24953
  static components = { Popover };
24943
- props = (0, _odoo_owl.props)({
24954
+ props = (0, _odoo_owl.useProps)({
24944
24955
  currentValue: types.number(),
24945
24956
  onValueChange: types.function(),
24946
24957
  onToggle: types.function().optional(),
@@ -25030,7 +25041,7 @@ var NumberEditor = class extends Component {
25030
25041
  var FontSizeEditor = class extends Component {
25031
25042
  static template = "o-spreadsheet-FontSizeEditor";
25032
25043
  static components = { NumberEditor };
25033
- props = (0, _odoo_owl.props)({
25044
+ props = (0, _odoo_owl.useProps)({
25034
25045
  currentFontSize: types.number(),
25035
25046
  onFontSizeChanged: types.function(),
25036
25047
  onToggle: types.function().optional(),
@@ -25049,7 +25060,7 @@ var TextStyler = class extends Component {
25049
25060
  ActionButton,
25050
25061
  FontSizeEditor
25051
25062
  };
25052
- props = (0, _odoo_owl.props)({
25063
+ props = (0, _odoo_owl.useProps)({
25053
25064
  style: types.ChartStyle(),
25054
25065
  updateStyle: types.function(),
25055
25066
  defaultStyle: types.object().optional(),
@@ -25239,7 +25250,7 @@ var TextStyler = class extends Component {
25239
25250
  var CogWheelMenu = class extends Component {
25240
25251
  static template = "o-spreadsheet-CogWheelMenu";
25241
25252
  static components = { MenuPopover };
25242
- props = (0, _odoo_owl.props)({ items: types.array(types.ActionSpec()) });
25253
+ props = (0, _odoo_owl.useProps)({ items: types.array(types.ActionSpec()) });
25243
25254
  buttonRef = (0, _odoo_owl.signal)(null);
25244
25255
  menuState = (0, _odoo_owl.proxy)({
25245
25256
  isOpen: false,
@@ -25259,7 +25270,7 @@ var CogWheelMenu = class extends Component {
25259
25270
  //#region src/components/side_panel/components/section/section.ts
25260
25271
  var Section = class extends Component {
25261
25272
  static template = "o_spreadsheet.Section";
25262
- props = (0, _odoo_owl.props)({
25273
+ props = (0, _odoo_owl.useProps)({
25263
25274
  class: types.string().optional(),
25264
25275
  title: types.string().optional(),
25265
25276
  slots: types.object()
@@ -25276,7 +25287,7 @@ var CarouselPanel = class extends Component {
25276
25287
  TextStyler,
25277
25288
  CogWheelMenu
25278
25289
  };
25279
- props = (0, _odoo_owl.props)({
25290
+ props = (0, _odoo_owl.useProps)({
25280
25291
  onCloseSidePanel: types.function(),
25281
25292
  figureId: types.UID()
25282
25293
  });
@@ -25486,7 +25497,7 @@ const chartDataSourceSidePanelComponentRegistry = new Registry();
25486
25497
  //#region src/components/side_panel/components/checkbox/checkbox.ts
25487
25498
  var Checkbox = class extends Component {
25488
25499
  static template = "o-spreadsheet.Checkbox";
25489
- props = (0, _odoo_owl.props)({
25500
+ props = (0, _odoo_owl.useProps)({
25490
25501
  label: types.string().optional(),
25491
25502
  value: types.boolean().optional(false),
25492
25503
  className: types.string().optional(),
@@ -25995,7 +26006,7 @@ var SelectionInputStore = class extends SpreadsheetStore {
25995
26006
  */
25996
26007
  var SelectionInput = class extends Component {
25997
26008
  static template = "o-spreadsheet-SelectionInput";
25998
- props = (0, _odoo_owl.props)({
26009
+ props = (0, _odoo_owl.useProps)({
25999
26010
  ranges: types.array(types.string()),
26000
26011
  hasSingleRange: types.boolean().optional(),
26001
26012
  required: types.boolean().optional(),
@@ -26174,7 +26185,7 @@ var ChartDataSeries = class extends Component {
26174
26185
  SelectionInput,
26175
26186
  Section
26176
26187
  };
26177
- props = (0, _odoo_owl.props)({
26188
+ props = (0, _odoo_owl.useProps)({
26178
26189
  ranges: types.ArrayOf(),
26179
26190
  dataSetStyles: types.DataSetStyle().optional(),
26180
26191
  hasSingleRange: types.boolean().optional(),
@@ -26215,7 +26226,7 @@ var ChartLabelRange = class extends Component {
26215
26226
  Checkbox,
26216
26227
  Section
26217
26228
  };
26218
- props = (0, _odoo_owl.props)({
26229
+ props = (0, _odoo_owl.useProps)({
26219
26230
  title: types.string().optional(_t("Categories / Labels")),
26220
26231
  range: types.string(),
26221
26232
  class: types.string().optional(),
@@ -26237,7 +26248,7 @@ var ChartDataSourceComponent = class extends Component {
26237
26248
  ChartDataSeries,
26238
26249
  ChartLabelRange
26239
26250
  };
26240
- props = (0, _odoo_owl.props)({
26251
+ props = (0, _odoo_owl.useProps)({
26241
26252
  chartId: types.UID(),
26242
26253
  definition: types.ChartDefinitionWithDataSource(),
26243
26254
  updateChart: types.function(),
@@ -26256,7 +26267,7 @@ var ChartDataSourceComponent = class extends Component {
26256
26267
  //#region src/components/validation_messages/validation_messages.ts
26257
26268
  var ValidationMessages = class extends Component {
26258
26269
  static template = "o-spreadsheet-ValidationMessages";
26259
- props = (0, _odoo_owl.props)({
26270
+ props = (0, _odoo_owl.useProps)({
26260
26271
  messages: types.array(types.string()).optional(),
26261
26272
  msgType: types.or([
26262
26273
  types.literal("warning"),
@@ -26280,7 +26291,7 @@ var ChartErrorSection = class extends Component {
26280
26291
  Section,
26281
26292
  ValidationMessages
26282
26293
  };
26283
- props = (0, _odoo_owl.props)({ messages: types.array(types.string()) });
26294
+ props = (0, _odoo_owl.useProps)({ messages: types.array(types.string()) });
26284
26295
  };
26285
26296
 
26286
26297
  //#endregion
@@ -26293,7 +26304,7 @@ var GenericChartConfigPanel = class extends Component {
26293
26304
  Checkbox,
26294
26305
  ChartErrorSection
26295
26306
  };
26296
- props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
26307
+ props = (0, _odoo_owl.useProps)(chartSidePanelPropsDefinition);
26297
26308
  chartTerms = ChartTerms;
26298
26309
  state = (0, _odoo_owl.proxy)({ errorMessages: [] });
26299
26310
  onErrorMessagesChanged(errorMessages) {
@@ -26340,7 +26351,7 @@ var BarConfigPanel = class extends GenericChartConfigPanel {
26340
26351
  //#region src/components/side_panel/components/collapse/collapse.ts
26341
26352
  var Collapse = class extends Component {
26342
26353
  static template = "o-spreadsheet-Collapse";
26343
- props = (0, _odoo_owl.props)({ isCollapsed: types.boolean() });
26354
+ props = (0, _odoo_owl.useProps)({ isCollapsed: types.boolean() });
26344
26355
  contentRef = (0, _odoo_owl.signal)(null);
26345
26356
  setup() {
26346
26357
  (0, _odoo_owl.onMounted)(() => {
@@ -26373,7 +26384,7 @@ var Collapse = class extends Component {
26373
26384
  var SidePanelCollapsible = class extends Component {
26374
26385
  static template = "o-spreadsheet-SidePanelCollapsible";
26375
26386
  static components = { Collapse };
26376
- props = (0, _odoo_owl.props)({
26387
+ props = (0, _odoo_owl.useProps)({
26377
26388
  title: types.string().optional(),
26378
26389
  isInitiallyCollapsed: types.boolean().optional(),
26379
26390
  class: types.string().optional()
@@ -26393,7 +26404,7 @@ var ChartAnnotation = class extends Component {
26393
26404
  Section,
26394
26405
  TextInput
26395
26406
  };
26396
- props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
26407
+ props = (0, _odoo_owl.useProps)(chartSidePanelPropsDefinition);
26397
26408
  editorRef = (0, _odoo_owl.signal)(null);
26398
26409
  state = (0, _odoo_owl.proxy)({
26399
26410
  annotationTextInput: this.props.definition.annotationText || "",
@@ -26450,7 +26461,7 @@ var ChartAnnotation = class extends Component {
26450
26461
  var NumberInput = class extends GenericInput {
26451
26462
  static template = "o-spreadsheet-NumberInput";
26452
26463
  static components = {};
26453
- props = (0, _odoo_owl.props)({
26464
+ props = (0, _odoo_owl.useProps)({
26454
26465
  ...genericInputPropsDefinition,
26455
26466
  min: types.number().optional(),
26456
26467
  max: types.number().optional()
@@ -26475,7 +26486,7 @@ var DateInput = class extends NumberInput {
26475
26486
  //#region src/components/side_panel/components/badge_selection/badge_selection.ts
26476
26487
  var BadgeSelection = class extends Component {
26477
26488
  static template = "o-spreadsheet.BadgeSelection";
26478
- props = (0, _odoo_owl.props)({
26489
+ props = (0, _odoo_owl.useProps)({
26479
26490
  choices: types.ArrayOf(),
26480
26491
  onChange: types.function(),
26481
26492
  selectedValue: types.string()
@@ -26491,7 +26502,7 @@ var ChartTitle = class extends Component {
26491
26502
  TextStyler,
26492
26503
  TextInput
26493
26504
  };
26494
- props = (0, _odoo_owl.props)({
26505
+ props = (0, _odoo_owl.useProps)({
26495
26506
  title: types.string().optional(""),
26496
26507
  placeholder: types.string().optional(""),
26497
26508
  updateTitle: types.function(),
@@ -26517,7 +26528,7 @@ var AxisDesignEditor = class extends Component {
26517
26528
  NumberInput,
26518
26529
  DateInput
26519
26530
  };
26520
- props = (0, _odoo_owl.props)({
26531
+ props = (0, _odoo_owl.useProps)({
26521
26532
  chartId: types.UID(),
26522
26533
  definition: types.ChartWithAxisDefinition(),
26523
26534
  updateChart: types.function(),
@@ -26692,7 +26703,7 @@ var AxisDesignEditor = class extends Component {
26692
26703
  //#region src/components/side_panel/components/radio_selection/radio_selection.ts
26693
26704
  var RadioSelection = class extends Component {
26694
26705
  static template = "o-spreadsheet.RadioSelection";
26695
- props = (0, _odoo_owl.props)({
26706
+ props = (0, _odoo_owl.useProps)({
26696
26707
  choices: types.ArrayOf(),
26697
26708
  onChange: types.function(),
26698
26709
  selectedValue: types.string(),
@@ -26709,7 +26720,7 @@ var RoundColorPicker = class extends Component {
26709
26720
  Section,
26710
26721
  ColorPicker
26711
26722
  };
26712
- props = (0, _odoo_owl.props)({
26723
+ props = (0, _odoo_owl.useProps)({
26713
26724
  currentColor: types.string().optional(),
26714
26725
  title: types.string().optional(),
26715
26726
  onColorPicked: types.function(),
@@ -26750,7 +26761,7 @@ var GeneralDesignEditor = class extends Component {
26750
26761
  SidePanelCollapsible,
26751
26762
  RadioSelection
26752
26763
  };
26753
- props = (0, _odoo_owl.props)({
26764
+ props = (0, _odoo_owl.useProps)({
26754
26765
  chartId: types.UID(),
26755
26766
  definition: types.ChartDefinition(),
26756
26767
  canUpdateChart: types.function(),
@@ -26793,7 +26804,7 @@ var GeneralDesignEditor = class extends Component {
26793
26804
  var ChartHumanizeNumbers = class extends Component {
26794
26805
  static template = "o-spreadsheet-ChartHumanizeNumbers";
26795
26806
  static components = { Checkbox };
26796
- props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
26807
+ props = (0, _odoo_owl.useProps)(chartSidePanelPropsDefinition);
26797
26808
  get title() {
26798
26809
  const locale = this.env.model.getters.getLocale();
26799
26810
  return _t("E.g. 1234567 -> %(value)s", { value: formatValue(1234567, {
@@ -26811,7 +26822,7 @@ var ChartLegend = class extends Component {
26811
26822
  Section,
26812
26823
  Select
26813
26824
  };
26814
- props = (0, _odoo_owl.props)({
26825
+ props = (0, _odoo_owl.useProps)({
26815
26826
  chartId: types.string(),
26816
26827
  definition: types.ChartDefinitionWithDataSource(),
26817
26828
  canUpdateChart: types.function(),
@@ -26857,7 +26868,7 @@ var SeriesDesignEditor = class extends Component {
26857
26868
  RoundColorPicker,
26858
26869
  Select
26859
26870
  };
26860
- props = (0, _odoo_owl.props)({
26871
+ props = (0, _odoo_owl.useProps)({
26861
26872
  chartId: types.UID(),
26862
26873
  definition: types.ChartDefinitionWithDataSource(),
26863
26874
  updateChart: types.function(),
@@ -26922,7 +26933,7 @@ var SeriesWithAxisDesignEditor = class extends Component {
26922
26933
  NumberInput,
26923
26934
  Select
26924
26935
  };
26925
- props = (0, _odoo_owl.props)({
26936
+ props = (0, _odoo_owl.useProps)({
26926
26937
  chartId: types.UID(),
26927
26938
  definition: types.ChartDefinitionWithDataSource(),
26928
26939
  updateChart: types.function(),
@@ -27062,7 +27073,7 @@ var SeriesWithAxisDesignEditor = class extends Component {
27062
27073
  var ChartShowValues = class extends Component {
27063
27074
  static template = "o-spreadsheet-ChartShowValues";
27064
27075
  static components = { Checkbox };
27065
- props = (0, _odoo_owl.props)({
27076
+ props = (0, _odoo_owl.useProps)({
27066
27077
  chartId: types.UID(),
27067
27078
  definition: types.ChartDefinitionWithDataSource(),
27068
27079
  canUpdateChart: types.function(),
@@ -27086,7 +27097,7 @@ var ChartWithAxisDesignPanel = class extends Component {
27086
27097
  ChartShowValues,
27087
27098
  ChartHumanizeNumbers
27088
27099
  };
27089
- props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
27100
+ props = (0, _odoo_owl.useProps)(chartSidePanelPropsDefinition);
27090
27101
  get axesList() {
27091
27102
  const { useLeftAxis, useRightAxis } = getDefinedAxis(this.props.definition);
27092
27103
  const axes = [{
@@ -27136,7 +27147,7 @@ var BubbleChartConfigPanel = class extends Component {
27136
27147
  ChartLabelRange,
27137
27148
  ChartErrorSection
27138
27149
  };
27139
- props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
27150
+ props = (0, _odoo_owl.useProps)(chartSidePanelPropsDefinition);
27140
27151
  state = (0, _odoo_owl.proxy)({
27141
27152
  datasetDispatchResult: void 0,
27142
27153
  labelsDispatchResult: void 0,
@@ -27273,7 +27284,7 @@ var BubbleChartDesignPanel = class extends Component {
27273
27284
  Checkbox,
27274
27285
  ChartAnnotation
27275
27286
  };
27276
- props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
27287
+ props = (0, _odoo_owl.useProps)(chartSidePanelPropsDefinition);
27277
27288
  get axesList() {
27278
27289
  return [{
27279
27290
  id: "x",
@@ -29728,7 +29739,7 @@ var ChartRangeDataSourceComponent = class extends Component {
29728
29739
  ChartDataSeries,
29729
29740
  ChartLabelRange
29730
29741
  };
29731
- props = (0, _odoo_owl.props)({
29742
+ props = (0, _odoo_owl.useProps)({
29732
29743
  chartId: types.UID(),
29733
29744
  definition: types.ChartDefinitionWithDataSource(),
29734
29745
  dataSource: types.ChartRangeDataSource(),
@@ -30591,7 +30602,7 @@ var ColorScalePicker = class extends Component {
30591
30602
  RoundColorPicker,
30592
30603
  Popover
30593
30604
  };
30594
- props = (0, _odoo_owl.props)({
30605
+ props = (0, _odoo_owl.useProps)({
30595
30606
  definition: types.object({ colorScale: types.ChartColorScale().optional() }),
30596
30607
  onUpdateColorScale: types.function()
30597
30608
  });
@@ -30686,7 +30697,7 @@ var CalendarChartDesignPanel = class extends Component {
30686
30697
  RoundColorPicker,
30687
30698
  Select
30688
30699
  };
30689
- props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
30700
+ props = (0, _odoo_owl.useProps)(chartSidePanelPropsDefinition);
30690
30701
  get axesList() {
30691
30702
  return [{
30692
30703
  id: "x",
@@ -30731,7 +30742,7 @@ var CalendarChartDesignPanel = class extends Component {
30731
30742
  var ChartShowDataMarkers = class extends Component {
30732
30743
  static template = "o-spreadsheet-ChartShowDataMarkers";
30733
30744
  static components = { Checkbox };
30734
- props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
30745
+ props = (0, _odoo_owl.useProps)(chartSidePanelPropsDefinition);
30735
30746
  };
30736
30747
 
30737
30748
  //#endregion
@@ -30796,7 +30807,7 @@ var FunnelChartDesignPanel = class extends Component {
30796
30807
  Section,
30797
30808
  ChartHumanizeNumbers
30798
30809
  };
30799
- props = (0, _odoo_owl.props)({
30810
+ props = (0, _odoo_owl.useProps)({
30800
30811
  ...chartSidePanelPropsDefinition,
30801
30812
  definition: types.FunnelChartDefinition()
30802
30813
  });
@@ -30822,7 +30833,7 @@ var GaugeChartConfigPanel = class extends Component {
30822
30833
  ChartErrorSection,
30823
30834
  ChartDataSeries
30824
30835
  };
30825
- props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
30836
+ props = (0, _odoo_owl.useProps)(chartSidePanelPropsDefinition);
30826
30837
  state = (0, _odoo_owl.proxy)({ dataRangeDispatchResult: void 0 });
30827
30838
  dataRange = this.props.definition.dataRange;
30828
30839
  get configurationErrorMessages() {
@@ -30847,7 +30858,7 @@ var GaugeChartConfigPanel = class extends Component {
30847
30858
  //#region src/components/composer/autocomplete_dropdown/autocomplete_dropdown.ts
30848
30859
  var TextValueProvider = class extends Component {
30849
30860
  static template = "o-spreadsheet-TextValueProvider";
30850
- props = (0, _odoo_owl.props)({
30861
+ props = (0, _odoo_owl.useProps)({
30851
30862
  proposals: types.array(types.AutoCompleteProposal()),
30852
30863
  selectedIndex: types.number().optional(),
30853
30864
  onValueSelected: types.function(),
@@ -31070,7 +31081,7 @@ function isEmptyParagraph(node) {
31070
31081
  var FunctionDescriptionProvider = class extends Component {
31071
31082
  static template = "o-spreadsheet-FunctionDescriptionProvider";
31072
31083
  static components = { Collapse };
31073
- props = (0, _odoo_owl.props)({
31084
+ props = (0, _odoo_owl.useProps)({
31074
31085
  functionDescription: types.FunctionDescription(),
31075
31086
  argsToFocus: types.array(types.number()),
31076
31087
  repeatingArgGroupIndex: types.number().optional()
@@ -31139,7 +31150,7 @@ const BUBBLE_ARROW_SIZE = 7;
31139
31150
  var SpeechBubble = class extends Component {
31140
31151
  static template = "o-spreadsheet-SpeechBubble";
31141
31152
  static components = {};
31142
- props = (0, _odoo_owl.props)({
31153
+ props = (0, _odoo_owl.useProps)({
31143
31154
  content: types.string(),
31144
31155
  anchorRect: types.Rect()
31145
31156
  });
@@ -31174,7 +31185,7 @@ var Composer = class extends Component {
31174
31185
  FunctionDescriptionProvider,
31175
31186
  SpeechBubble
31176
31187
  };
31177
- props = (0, _odoo_owl.props)({
31188
+ props = (0, _odoo_owl.useProps)({
31178
31189
  focus: types.ComposerFocusType(),
31179
31190
  inputStyle: types.string().optional(""),
31180
31191
  rect: types.Rect().optional(),
@@ -32762,7 +32773,7 @@ var StandaloneComposerStore = class extends AbstractComposerStore {
32762
32773
  var StandaloneComposer = class extends Component {
32763
32774
  static template = "o-spreadsheet-StandaloneComposer";
32764
32775
  static components = { Composer };
32765
- props = (0, _odoo_owl.props)({
32776
+ props = (0, _odoo_owl.useProps)({
32766
32777
  onConfirm: types.function(),
32767
32778
  composerContent: types.string().optional(""),
32768
32779
  defaultRangeSheetId: types.UID(),
@@ -32839,7 +32850,7 @@ var GaugeChartDesignPanel = class extends Component {
32839
32850
  ChartHumanizeNumbers,
32840
32851
  Select
32841
32852
  };
32842
- props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
32853
+ props = (0, _odoo_owl.useProps)(chartSidePanelPropsDefinition);
32843
32854
  state;
32844
32855
  setup() {
32845
32856
  this.state = (0, _odoo_owl.proxy)({
@@ -32970,7 +32981,7 @@ var GeoChartRegionSelectSection = class extends Component {
32970
32981
  Section,
32971
32982
  Select
32972
32983
  };
32973
- props = (0, _odoo_owl.props)({
32984
+ props = (0, _odoo_owl.useProps)({
32974
32985
  chartId: types.UID(),
32975
32986
  definition: types.GeoChartDefinition(),
32976
32987
  updateChart: types.function()
@@ -33124,7 +33135,7 @@ var PieHoleSize = class extends Component {
33124
33135
  Section,
33125
33136
  NumberInput
33126
33137
  };
33127
- props = (0, _odoo_owl.props)({
33138
+ props = (0, _odoo_owl.useProps)({
33128
33139
  onValueChange: types.function(),
33129
33140
  value: types.number()
33130
33141
  });
@@ -33150,7 +33161,7 @@ var PieChartDesignPanel = class extends Component {
33150
33161
  RoundColorPicker,
33151
33162
  Select
33152
33163
  };
33153
- props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33164
+ props = (0, _odoo_owl.useProps)(chartSidePanelPropsDefinition);
33154
33165
  state = (0, _odoo_owl.proxy)({ index: 0 });
33155
33166
  get runtime() {
33156
33167
  return this.env.model.getters.getChartRuntime(this.props.chartId);
@@ -33211,7 +33222,7 @@ var RadarChartDesignPanel = class extends Component {
33211
33222
  Checkbox,
33212
33223
  ChartHumanizeNumbers
33213
33224
  };
33214
- props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33225
+ props = (0, _odoo_owl.useProps)(chartSidePanelPropsDefinition);
33215
33226
  };
33216
33227
 
33217
33228
  //#endregion
@@ -33261,7 +33272,7 @@ var ScorecardChartConfigPanel = class extends Component {
33261
33272
  Section,
33262
33273
  Select
33263
33274
  };
33264
- props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33275
+ props = (0, _odoo_owl.useProps)(chartSidePanelPropsDefinition);
33265
33276
  state = (0, _odoo_owl.proxy)({
33266
33277
  keyValueDispatchResult: void 0,
33267
33278
  baselineDispatchResult: void 0
@@ -33275,7 +33286,7 @@ var ScorecardChartConfigPanel = class extends Component {
33275
33286
  return !!this.state.keyValueDispatchResult?.isCancelledBecause("InvalidScorecardKeyValue");
33276
33287
  }
33277
33288
  get isBaselineInvalid() {
33278
- return !!this.state.keyValueDispatchResult?.isCancelledBecause("InvalidScorecardBaseline");
33289
+ return !!this.state.baselineDispatchResult?.isCancelledBecause("InvalidScorecardBaseline");
33279
33290
  }
33280
33291
  onKeyValueRangeChanged(ranges) {
33281
33292
  this.keyValue = ranges[0];
@@ -33336,7 +33347,7 @@ var ScorecardChartDesignPanel = class extends Component {
33336
33347
  ChartTitle,
33337
33348
  ChartHumanizeNumbers
33338
33349
  };
33339
- props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33350
+ props = (0, _odoo_owl.useProps)(chartSidePanelPropsDefinition);
33340
33351
  get colorsSectionTitle() {
33341
33352
  return this.props.definition.baselineMode === "progress" ? _t("Progress bar colors") : _t("Baseline colors");
33342
33353
  }
@@ -33418,7 +33429,7 @@ var SunburstChartDesignPanel = class extends Component {
33418
33429
  PieHoleSize,
33419
33430
  ChartHumanizeNumbers
33420
33431
  };
33421
- props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33432
+ props = (0, _odoo_owl.useProps)(chartSidePanelPropsDefinition);
33422
33433
  defaults = SunburstChartDefaults;
33423
33434
  get showValues() {
33424
33435
  return this.props.definition.showValues ?? SunburstChartDefaults.showValues;
@@ -33451,7 +33462,7 @@ var TreeMapCategoryColors = class extends Component {
33451
33462
  Checkbox,
33452
33463
  RoundColorPicker
33453
33464
  };
33454
- props = (0, _odoo_owl.props)({
33465
+ props = (0, _odoo_owl.useProps)({
33455
33466
  chartId: types.UID(),
33456
33467
  definition: types.TreeMapChartDefinition(),
33457
33468
  onColorChanged: types.function()
@@ -33483,7 +33494,7 @@ var TreeMapCategoryColors = class extends Component {
33483
33494
  var TreeMapColorScale = class extends Component {
33484
33495
  static template = "o-spreadsheet-TreeMapColorScale";
33485
33496
  static components = { RoundColorPicker };
33486
- props = (0, _odoo_owl.props)({
33497
+ props = (0, _odoo_owl.useProps)({
33487
33498
  chartId: types.UID(),
33488
33499
  definition: types.TreeMapChartDefinition(),
33489
33500
  onColorChanged: types.function()
@@ -33530,7 +33541,7 @@ var TreeMapChartDesignPanel = class extends Component {
33530
33541
  TreeMapColorScale,
33531
33542
  ChartHumanizeNumbers
33532
33543
  };
33533
- props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33544
+ props = (0, _odoo_owl.useProps)(chartSidePanelPropsDefinition);
33534
33545
  savedColors = {
33535
33546
  categoryColors: DEFAULT_SOLID_COLOR,
33536
33547
  colorScale: DEFAULT_COLOR_SCALE
@@ -33588,7 +33599,7 @@ var WaterfallChartDesignPanel = class extends Component {
33588
33599
  ChartLegend,
33589
33600
  ChartHumanizeNumbers
33590
33601
  };
33591
- props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33602
+ props = (0, _odoo_owl.useProps)(chartSidePanelPropsDefinition);
33592
33603
  axisChoices = CHART_AXIS_CHOICES;
33593
33604
  onUpdateShowSubTotals(showSubTotals) {
33594
33605
  this.props.updateChart(this.props.chartId, { showSubTotals });
@@ -33702,7 +33713,7 @@ var ChartTypePicker = class extends Component {
33702
33713
  Section,
33703
33714
  Popover
33704
33715
  };
33705
- props = (0, _odoo_owl.props)({
33716
+ props = (0, _odoo_owl.useProps)({
33706
33717
  chartId: types.UID(),
33707
33718
  chartPanelStore: types.Store()
33708
33719
  });
@@ -33880,7 +33891,7 @@ var ChartPanel = class extends Component {
33880
33891
  Section,
33881
33892
  ChartTypePicker
33882
33893
  };
33883
- props = (0, _odoo_owl.props)({
33894
+ props = (0, _odoo_owl.useProps)({
33884
33895
  onCloseSidePanel: types.function(),
33885
33896
  chartId: types.UID()
33886
33897
  });
@@ -34287,7 +34298,7 @@ var ColumnStatsPanel = class extends Component {
34287
34298
  BadgeSelection,
34288
34299
  Section
34289
34300
  };
34290
- props = (0, _odoo_owl.props)({ onCloseSidePanel: types.function() });
34301
+ props = (0, _odoo_owl.useProps)({ onCloseSidePanel: types.function() });
34291
34302
  state = (0, _odoo_owl.proxy)({
34292
34303
  currentChart: "count",
34293
34304
  currentFrequencyOrder: "descending",
@@ -34530,7 +34541,7 @@ var CellIsRuleEditor = class extends Component {
34530
34541
  ColorPickerWidget,
34531
34542
  Select
34532
34543
  };
34533
- props = (0, _odoo_owl.props)({ store: types.Store() });
34544
+ props = (0, _odoo_owl.useProps)({ store: types.Store() });
34534
34545
  getTextDecoration = getTextDecoration;
34535
34546
  get rule() {
34536
34547
  return this.props.store.state.rules.cellIs;
@@ -34540,7 +34551,7 @@ var CellIsRuleEditor = class extends Component {
34540
34551
  //#endregion
34541
34552
  //#region src/components/side_panel/criterion_form/criterion_form.ts
34542
34553
  var CriterionForm = class extends Component {
34543
- props = (0, _odoo_owl.props)({
34554
+ props = (0, _odoo_owl.useProps)({
34544
34555
  criterion: types.object(),
34545
34556
  onCriterionChanged: types.function(),
34546
34557
  disableFormulas: types.boolean().optional(),
@@ -35145,7 +35156,7 @@ function getOccurrencesInRanges(criterionRanges, getters) {
35145
35156
  var CriterionInput = class extends Component {
35146
35157
  static template = "o-spreadsheet-CriterionInput";
35147
35158
  static components = { StandaloneComposer };
35148
- props = (0, _odoo_owl.props)({
35159
+ props = (0, _odoo_owl.useProps)({
35149
35160
  value: types.string().optional(""),
35150
35161
  criterionType: types.DataValidationCriterionType(),
35151
35162
  onValueChanged: types.function(),
@@ -35993,7 +36004,7 @@ var ColorScaleRuleEditorThreshold = class extends Component {
35993
36004
  StandaloneComposer,
35994
36005
  Select
35995
36006
  };
35996
- props = (0, _odoo_owl.props)({
36007
+ props = (0, _odoo_owl.useProps)({
35997
36008
  store: types.Store(),
35998
36009
  thresholdType: types.or([
35999
36010
  types.literal("minimum"),
@@ -36075,7 +36086,7 @@ var ColorScaleRuleEditorThreshold = class extends Component {
36075
36086
  var ColorScaleRuleEditor = class extends Component {
36076
36087
  static template = "o-spreadsheet-ColorScaleRuleEditor";
36077
36088
  static components = { ColorScaleRuleEditorThreshold };
36078
- props = (0, _odoo_owl.props)({ store: types.Store() });
36089
+ props = (0, _odoo_owl.useProps)({ store: types.Store() });
36079
36090
  };
36080
36091
 
36081
36092
  //#endregion
@@ -36086,7 +36097,7 @@ var DataBarRuleEditor = class extends Component {
36086
36097
  SelectionInput,
36087
36098
  RoundColorPicker
36088
36099
  };
36089
- props = (0, _odoo_owl.props)({ store: types.Store() });
36100
+ props = (0, _odoo_owl.useProps)({ store: types.Store() });
36090
36101
  get rule() {
36091
36102
  return this.props.store.state.rules.dataBar;
36092
36103
  }
@@ -36097,7 +36108,7 @@ var DataBarRuleEditor = class extends Component {
36097
36108
  //#region src/components/icon_picker/icon_picker.ts
36098
36109
  var IconPicker = class extends Component {
36099
36110
  static template = "o-spreadsheet-IconPicker";
36100
- props = (0, _odoo_owl.props)({ onIconPicked: types.function() });
36111
+ props = (0, _odoo_owl.useProps)({ onIconPicked: types.function() });
36101
36112
  onIconClick(icon) {
36102
36113
  if (icon) this.props.onIconPicked(icon);
36103
36114
  }
@@ -36118,7 +36129,7 @@ var IconSetRuleEditor = class extends Component {
36118
36129
  StandaloneComposer,
36119
36130
  Select
36120
36131
  };
36121
- props = (0, _odoo_owl.props)({ store: types.Store() });
36132
+ props = (0, _odoo_owl.useProps)({ store: types.Store() });
36122
36133
  get rule() {
36123
36134
  return this.props.store.state.rules.iconSet;
36124
36135
  }
@@ -36201,7 +36212,7 @@ var ConditionalFormattingEditor = class extends Component {
36201
36212
  IconSetRuleEditor,
36202
36213
  DataBarRuleEditor
36203
36214
  };
36204
- props = (0, _odoo_owl.props)({
36215
+ props = (0, _odoo_owl.useProps)({
36205
36216
  cf: types.ConditionalFormat(),
36206
36217
  isNewCf: types.boolean(),
36207
36218
  onCloseSidePanel: types.function()
@@ -36261,7 +36272,7 @@ var ConditionalFormattingEditor = class extends Component {
36261
36272
  //#region src/components/side_panel/conditional_formatting/cf_preview/cf_preview.ts
36262
36273
  var ConditionalFormatPreview = class extends Component {
36263
36274
  static template = "o-spreadsheet-ConditionalFormatPreview";
36264
- props = (0, _odoo_owl.props)({
36275
+ props = (0, _odoo_owl.useProps)({
36265
36276
  conditionalFormat: types.ConditionalFormat(),
36266
36277
  onMouseDown: types.function(),
36267
36278
  class: types.string()
@@ -36322,7 +36333,7 @@ var ConditionalFormatPreview = class extends Component {
36322
36333
  var ConditionalFormatPreviewList = class extends Component {
36323
36334
  static template = "o-spreadsheet-ConditionalFormatPreviewList";
36324
36335
  static components = { ConditionalFormatPreview };
36325
- props = (0, _odoo_owl.props)({ onCloseSidePanel: types.function() });
36336
+ props = (0, _odoo_owl.useProps)({ onCloseSidePanel: types.function() });
36326
36337
  dragAndDrop = useDragAndDropListItems();
36327
36338
  cfListRef = (0, _odoo_owl.signal)(null);
36328
36339
  get conditionalFormats() {
@@ -36388,7 +36399,7 @@ var ConditionalFormatPreviewList = class extends Component {
36388
36399
  //#region src/components/side_panel/data_validation/dv_preview/dv_preview.ts
36389
36400
  var DataValidationPreview = class extends Component {
36390
36401
  static template = "o-spreadsheet-DataValidationPreview";
36391
- props = (0, _odoo_owl.props)({ rule: types.DataValidationRule() });
36402
+ props = (0, _odoo_owl.useProps)({ rule: types.DataValidationRule() });
36392
36403
  dvPreviewRef = (0, _odoo_owl.signal)(null);
36393
36404
  setup() {
36394
36405
  useHighlightsOnHover(this.dvPreviewRef, this);
@@ -36424,7 +36435,7 @@ var DataValidationPreview = class extends Component {
36424
36435
  var DataValidationPanel = class extends Component {
36425
36436
  static template = "o-spreadsheet-DataValidationPanel";
36426
36437
  static components = { DataValidationPreview };
36427
- props = (0, _odoo_owl.props)({ onCloseSidePanel: types.function() });
36438
+ props = (0, _odoo_owl.useProps)({ onCloseSidePanel: types.function() });
36428
36439
  addDataValidationRule() {
36429
36440
  this.env.replaceSidePanel("DataValidationEditor", "DataValidation", { ruleId: UuidGenerator.smallUuid() });
36430
36441
  }
@@ -36474,7 +36485,7 @@ var DataValidationEditor = class extends Component {
36474
36485
  Section,
36475
36486
  ValidationMessages
36476
36487
  };
36477
- props = (0, _odoo_owl.props)({
36488
+ props = (0, _odoo_owl.useProps)({
36478
36489
  ruleId: types.UID(),
36479
36490
  onCancel: types.function().optional(),
36480
36491
  onCloseSidePanel: types.function()
@@ -36963,7 +36974,7 @@ var FindAndReplacePanel = class extends Component {
36963
36974
  ValidationMessages,
36964
36975
  Select
36965
36976
  };
36966
- props = (0, _odoo_owl.props)({ onCloseSidePanel: types.function() });
36977
+ props = (0, _odoo_owl.useProps)({ onCloseSidePanel: types.function() });
36967
36978
  searchInputRef = _odoo_owl.signal.ref(HTMLInputElement);
36968
36979
  store;
36969
36980
  state;
@@ -37818,7 +37829,7 @@ var MoreFormatsPanel = class extends Component {
37818
37829
  Checkbox,
37819
37830
  Select
37820
37831
  };
37821
- props = (0, _odoo_owl.props)({
37832
+ props = (0, _odoo_owl.useProps)({
37822
37833
  onCloseSidePanel: types.function(),
37823
37834
  category: types.or([
37824
37835
  types.literal("number"),
@@ -37885,7 +37896,7 @@ var NamedRangePreview = class extends Component {
37885
37896
  SelectionInput,
37886
37897
  TextInput
37887
37898
  };
37888
- props = (0, _odoo_owl.props)({ namedRange: types.NamedRange() });
37899
+ props = (0, _odoo_owl.useProps)({ namedRange: types.NamedRange() });
37889
37900
  state = (0, _odoo_owl.proxy)({});
37890
37901
  namedRangePreviewRef = (0, _odoo_owl.signal)(null);
37891
37902
  setup() {
@@ -37942,7 +37953,7 @@ var NamedRangesPanel = class extends Component {
37942
37953
  SelectionInput,
37943
37954
  TextInput
37944
37955
  };
37945
- props = (0, _odoo_owl.props)({ onCloseSidePanel: types.function() });
37956
+ props = (0, _odoo_owl.useProps)({ onCloseSidePanel: types.function() });
37946
37957
  get namedRanges() {
37947
37958
  return this.env.model.getters.getNamedRanges();
37948
37959
  }
@@ -37963,7 +37974,7 @@ const HIGHLIGHT_COLOR = "#e28f08";
37963
37974
  var PerfProfilePanel = class extends Component {
37964
37975
  static template = "o-spreadsheet-PerfProfilePanel";
37965
37976
  static components = { Section };
37966
- props = (0, _odoo_owl.props)({ onCloseSidePanel: types.function() });
37977
+ props = (0, _odoo_owl.useProps)({ onCloseSidePanel: types.function() });
37967
37978
  state = (0, _odoo_owl.proxy)({
37968
37979
  selectedIndex: void 0,
37969
37980
  lastProfiledTime: 0
@@ -38179,7 +38190,7 @@ var PivotMeasureDisplayPanelStore = class extends SpreadsheetStore {
38179
38190
  //#region src/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel.ts
38180
38191
  var PivotMeasureDisplayPanel = class extends Component {
38181
38192
  static template = "o-spreadsheet-PivotMeasureDisplayPanel";
38182
- props = (0, _odoo_owl.props)({
38193
+ props = (0, _odoo_owl.useProps)({
38183
38194
  onCloseSidePanel: types.function(),
38184
38195
  pivotId: types.UID(),
38185
38196
  measure: types.PivotCoreMeasure()
@@ -38245,7 +38256,7 @@ function getVisiblePivotCellPositions(getters, pivotId) {
38245
38256
  //#region src/components/side_panel/pivot/pivot_defer_update/pivot_defer_update.ts
38246
38257
  var PivotDeferUpdate = class extends Component {
38247
38258
  static template = "o-spreadsheet-PivotDeferUpdate";
38248
- props = (0, _odoo_owl.props)({
38259
+ props = (0, _odoo_owl.useProps)({
38249
38260
  deferUpdate: types.boolean(),
38250
38261
  isDirty: types.boolean(),
38251
38262
  toggleDeferUpdate: types.function(),
@@ -38474,7 +38485,7 @@ const filterDateCriterionOperators = [
38474
38485
  var FilterMenuCriterion = class extends Component {
38475
38486
  static template = "o-spreadsheet-FilterMenuCriterion";
38476
38487
  static components = { Select };
38477
- props = (0, _odoo_owl.props)({
38488
+ props = (0, _odoo_owl.useProps)({
38478
38489
  criterion: types.CriterionFilter(),
38479
38490
  criterionOperators: types.array(types.GenericCriterionType()),
38480
38491
  onCriterionChanged: types.function()
@@ -38511,7 +38522,7 @@ var FilterMenuCriterion = class extends Component {
38511
38522
  var FilterMenuValueItem = class extends Component {
38512
38523
  static template = "o-spreadsheet-FilterMenuValueItem";
38513
38524
  static components = { Checkbox };
38514
- props = (0, _odoo_owl.props)({
38525
+ props = (0, _odoo_owl.useProps)({
38515
38526
  value: types.string(),
38516
38527
  isChecked: types.boolean(),
38517
38528
  isSelected: types.boolean(),
@@ -38537,7 +38548,7 @@ var FilterMenuValueItem = class extends Component {
38537
38548
  var FilterMenuValueList = class extends Component {
38538
38549
  static template = "o-spreadsheet-FilterMenuValueList";
38539
38550
  static components = { FilterMenuValueItem };
38540
- props = (0, _odoo_owl.props)({
38551
+ props = (0, _odoo_owl.useProps)({
38541
38552
  values: types.array(types.object({
38542
38553
  checked: types.boolean(),
38543
38554
  string: types.string(),
@@ -38652,7 +38663,7 @@ var PivotFilterMenu = class extends Component {
38652
38663
  };
38653
38664
  criterionCategory = "char";
38654
38665
  updatedCriterionValue;
38655
- props = (0, _odoo_owl.props)({
38666
+ props = (0, _odoo_owl.useProps)({
38656
38667
  pivotId: types.UID(),
38657
38668
  definition: types.instanceOf(SpreadsheetPivotRuntimeDefinition),
38658
38669
  filter: types.PivotFilter(),
@@ -38715,7 +38726,7 @@ var PivotFilterMenu = class extends Component {
38715
38726
  //#region src/components/side_panel/pivot/pivot_layout_configurator/pivot_dimension/pivot_dimension.ts
38716
38727
  var PivotDimension = class extends Component {
38717
38728
  static template = "o-spreadsheet-PivotDimension";
38718
- props = (0, _odoo_owl.props)({
38729
+ props = (0, _odoo_owl.useProps)({
38719
38730
  dimension: types.or([
38720
38731
  types.PivotDimension(),
38721
38732
  types.PivotMeasure(),
@@ -38752,7 +38763,7 @@ var PivotFilterEditor = class extends Component {
38752
38763
  Popover,
38753
38764
  PivotFilterMenu
38754
38765
  };
38755
- props = (0, _odoo_owl.props)({
38766
+ props = (0, _odoo_owl.useProps)({
38756
38767
  pivotId: types.UID(),
38757
38768
  definition: types.instanceOf(SpreadsheetPivotRuntimeDefinition),
38758
38769
  filter: types.PivotFilter(),
@@ -38884,7 +38895,7 @@ var AddDimensionButton = class extends Component {
38884
38895
  Popover,
38885
38896
  TextValueProvider
38886
38897
  };
38887
- props = (0, _odoo_owl.props)({
38898
+ props = (0, _odoo_owl.useProps)({
38888
38899
  onFieldPicked: types.function(),
38889
38900
  fields: types.array()
38890
38901
  });
@@ -38979,7 +38990,7 @@ var AddDimensionButton = class extends Component {
38979
38990
  //#region src/components/side_panel/pivot/pivot_custom_groups_collapsible/pivot_custom_groups_collapsible.ts
38980
38991
  var PivotCustomGroupsCollapsible = class extends Component {
38981
38992
  static template = "o-spreadsheet-PivotCustomGroupsCollapsible";
38982
- props = (0, _odoo_owl.props)({
38993
+ props = (0, _odoo_owl.useProps)({
38983
38994
  pivotId: types.UID(),
38984
38995
  customField: types.PivotCustomGroupedField(),
38985
38996
  onCustomFieldUpdated: types.function()
@@ -39043,7 +39054,7 @@ var PivotCustomGroupsCollapsible = class extends Component {
39043
39054
  //#region src/components/side_panel/pivot/pivot_layout_configurator/pivot_dimension_granularity/pivot_dimension_granularity.ts
39044
39055
  var PivotDimensionGranularity = class extends Component {
39045
39056
  static template = "o-spreadsheet-PivotDimensionGranularity";
39046
- props = (0, _odoo_owl.props)({
39057
+ props = (0, _odoo_owl.useProps)({
39047
39058
  dimension: types.PivotDimension(),
39048
39059
  onUpdated: types.function(),
39049
39060
  availableGranularities: types.SetOf(),
@@ -39064,7 +39075,7 @@ var PivotDimensionGranularity = class extends Component {
39064
39075
  //#region src/components/side_panel/pivot/pivot_layout_configurator/pivot_dimension_order/pivot_dimension_order.ts
39065
39076
  var PivotDimensionOrder = class extends Component {
39066
39077
  static template = "o-spreadsheet-PivotDimensionOrder";
39067
- props = (0, _odoo_owl.props)({
39078
+ props = (0, _odoo_owl.useProps)({
39068
39079
  dimension: types.PivotDimension(),
39069
39080
  onUpdated: types.function(),
39070
39081
  isMeasureSorted: types.boolean().optional()
@@ -39146,7 +39157,7 @@ var PivotMeasureEditor = class extends Component {
39146
39157
  StandaloneComposer,
39147
39158
  Select
39148
39159
  };
39149
- props = (0, _odoo_owl.props)({
39160
+ props = (0, _odoo_owl.useProps)({
39150
39161
  pivotId: types.string(),
39151
39162
  definition: types.PivotRuntimeDefinition(),
39152
39163
  measure: types.PivotMeasure(),
@@ -39234,7 +39245,7 @@ var PivotMeasureEditor = class extends Component {
39234
39245
  var PivotSortSection = class extends Component {
39235
39246
  static template = "o-spreadsheet-PivotSortSection";
39236
39247
  static components = { Section };
39237
- props = (0, _odoo_owl.props)({
39248
+ props = (0, _odoo_owl.useProps)({
39238
39249
  definition: types.PivotRuntimeDefinition(),
39239
39250
  pivotId: types.UID()
39240
39251
  });
@@ -39289,7 +39300,7 @@ var PivotLayoutConfigurator = class extends Component {
39289
39300
  PivotCustomGroupsCollapsible,
39290
39301
  SidePanelCollapsible
39291
39302
  };
39292
- props = (0, _odoo_owl.props)({
39303
+ props = (0, _odoo_owl.useProps)({
39293
39304
  definition: types.instanceOf(PivotRuntimeDefinition),
39294
39305
  onDimensionsUpdated: types.function(),
39295
39306
  onFiltersUpdated: types.function(),
@@ -39519,7 +39530,7 @@ var PivotTitleSection = class extends Component {
39519
39530
  Section,
39520
39531
  TextInput
39521
39532
  };
39522
- props = (0, _odoo_owl.props)({
39533
+ props = (0, _odoo_owl.useProps)({
39523
39534
  pivotId: types.UID(),
39524
39535
  flipAxis: types.function()
39525
39536
  });
@@ -41155,7 +41166,7 @@ var PivotSpreadsheetSidePanel = class extends Component {
41155
41166
  AddDimensionButton,
41156
41167
  PivotFilterEditor
41157
41168
  };
41158
- props = (0, _odoo_owl.props)({
41169
+ props = (0, _odoo_owl.useProps)({
41159
41170
  pivotId: types.UID(),
41160
41171
  onCloseSidePanel: types.function()
41161
41172
  });
@@ -42393,7 +42404,7 @@ function drawTexts(ctx, tableStyle, params) {
42393
42404
  var TableStylePreview = class extends Component {
42394
42405
  static template = "o-spreadsheet-TableStylePreview";
42395
42406
  static components = { MenuPopover };
42396
- props = (0, _odoo_owl.props)({
42407
+ props = (0, _odoo_owl.useProps)({
42397
42408
  tableConfig: types.TableConfig(),
42398
42409
  tableStyle: types.TableStyle(),
42399
42410
  type: types.or([types.literal("table"), types.literal("pivot")]),
@@ -42486,7 +42497,7 @@ var TableStylesPopover = class extends Component {
42486
42497
  Popover,
42487
42498
  TableStylePreview
42488
42499
  };
42489
- props = (0, _odoo_owl.props)({
42500
+ props = (0, _odoo_owl.useProps)({
42490
42501
  tableConfig: types.object(),
42491
42502
  popoverProps: types.object().optional(),
42492
42503
  closePopover: types.function(),
@@ -42534,7 +42545,7 @@ var TableStylePicker = class extends Component {
42534
42545
  TableStylesPopover,
42535
42546
  TableStylePreview
42536
42547
  };
42537
- props = (0, _odoo_owl.props)({
42548
+ props = (0, _odoo_owl.useProps)({
42538
42549
  tableConfig: types.TableConfig(),
42539
42550
  onStylePicked: types.function(),
42540
42551
  tableStyles: types.RecordOf(),
@@ -42586,7 +42597,7 @@ var PivotDesignPanel = class extends Component {
42586
42597
  NumberInput,
42587
42598
  TableStylePicker
42588
42599
  };
42589
- props = (0, _odoo_owl.props)({ pivotId: types.UID() });
42600
+ props = (0, _odoo_owl.useProps)({ pivotId: types.UID() });
42590
42601
  store;
42591
42602
  setup() {
42592
42603
  this.store = useLocalStore(PivotSidePanelStore, this.props.pivotId, "neverDefer");
@@ -42640,7 +42651,7 @@ var PivotSidePanel = class extends Component {
42640
42651
  Section,
42641
42652
  PivotDesignPanel
42642
42653
  };
42643
- props = (0, _odoo_owl.props)({
42654
+ props = (0, _odoo_owl.useProps)({
42644
42655
  pivotId: types.UID(),
42645
42656
  onCloseSidePanel: types.function(),
42646
42657
  openTab: types.or([types.literal("configuration"), types.literal("design")]).optional("configuration")
@@ -42674,7 +42685,7 @@ var RemoveDuplicatesPanel = class extends Component {
42674
42685
  Section,
42675
42686
  Checkbox
42676
42687
  };
42677
- props = (0, _odoo_owl.props)({ onCloseSidePanel: types.function() });
42688
+ props = (0, _odoo_owl.useProps)({ onCloseSidePanel: types.function() });
42678
42689
  state = (0, _odoo_owl.proxy)({
42679
42690
  hasHeader: false,
42680
42691
  columns: {}
@@ -42758,7 +42769,7 @@ var SettingsPanel = class extends Component {
42758
42769
  BadgeSelection,
42759
42770
  Select
42760
42771
  };
42761
- props = (0, _odoo_owl.props)({ onCloseSidePanel: types.function() });
42772
+ props = (0, _odoo_owl.useProps)({ onCloseSidePanel: types.function() });
42762
42773
  loadedLocales = [];
42763
42774
  setup() {
42764
42775
  (0, _odoo_owl.onWillStart)(() => this.loadLocales());
@@ -42876,7 +42887,7 @@ var SplitIntoColumnsPanel = class extends Component {
42876
42887
  Checkbox,
42877
42888
  Select
42878
42889
  };
42879
- props = (0, _odoo_owl.props)({ onCloseSidePanel: types.function() });
42890
+ props = (0, _odoo_owl.useProps)({ onCloseSidePanel: types.function() });
42880
42891
  state = (0, _odoo_owl.proxy)({
42881
42892
  separatorValue: "auto",
42882
42893
  addNewColumns: false,
@@ -42952,7 +42963,7 @@ var TablePanel = class extends Component {
42952
42963
  Section,
42953
42964
  NumberInput
42954
42965
  };
42955
- props = (0, _odoo_owl.props)({
42966
+ props = (0, _odoo_owl.useProps)({
42956
42967
  onCloseSidePanel: types.function(),
42957
42968
  table: types.CoreTable()
42958
42969
  });
@@ -43112,7 +43123,7 @@ var TableStyleEditorPanel = class extends Component {
43112
43123
  RoundColorPicker,
43113
43124
  TableStylePreview
43114
43125
  };
43115
- props = (0, _odoo_owl.props)({
43126
+ props = (0, _odoo_owl.useProps)({
43116
43127
  onCloseSidePanel: types.function(),
43117
43128
  onStylePicked: types.function().optional(),
43118
43129
  styleId: types.string().optional()
@@ -45459,7 +45470,7 @@ function adjustIndexWithinBounds(index, position, max) {
45459
45470
  //#region src/components/autofill/autofill.ts
45460
45471
  var Autofill = class extends Component {
45461
45472
  static template = "o-spreadsheet-Autofill";
45462
- props = (0, _odoo_owl.props)({
45473
+ props = (0, _odoo_owl.useProps)({
45463
45474
  position: types.DOMCoordinates(),
45464
45475
  isVisible: types.boolean()
45465
45476
  });
@@ -45483,7 +45494,8 @@ var Autofill = class extends Component {
45483
45494
  const { x, y } = this.state.handler ? this.state.position : this.props.position;
45484
45495
  return cssPropertiesToCss({
45485
45496
  top: `${y}px`,
45486
- left: `${x}px`
45497
+ left: `${x}px`,
45498
+ visibility: this.props.isVisible ? "visible" : "hidden"
45487
45499
  });
45488
45500
  }
45489
45501
  get styleNextValue() {
@@ -45537,7 +45549,7 @@ var Autofill = class extends Component {
45537
45549
  }
45538
45550
  };
45539
45551
  var TooltipComponent = class extends Component {
45540
- props = (0, _odoo_owl.props)({ content: types.string() });
45552
+ props = (0, _odoo_owl.useProps)({ content: types.string() });
45541
45553
  static template = _odoo_owl.xml`
45542
45554
  <div t-out="this.props.content"/>
45543
45555
  `;
@@ -45547,7 +45559,7 @@ var TooltipComponent = class extends Component {
45547
45559
  //#region src/components/collaborative_client_tag/collaborative_client_tag.ts
45548
45560
  var ClientTag = class extends Component {
45549
45561
  static template = "o-spreadsheet-ClientTag";
45550
- props = (0, _odoo_owl.props)({
45562
+ props = (0, _odoo_owl.useProps)({
45551
45563
  active: types.boolean(),
45552
45564
  name: types.string(),
45553
45565
  color: types.Color(),
@@ -45904,7 +45916,7 @@ var CellComposerStore = class extends AbstractComposerStore {
45904
45916
  this._cancelEdition();
45905
45917
  this.resetContent();
45906
45918
  }
45907
- if (cmd.sheetIdFrom !== cmd.sheetIdTo) {
45919
+ if (this.model.selection.isListening(this) && cmd.sheetIdFrom !== cmd.sheetIdTo) {
45908
45920
  const activePosition = this.getters.getActivePosition();
45909
45921
  const { col, row } = this.getters.getNextVisibleCellPosition({
45910
45922
  sheetId: cmd.sheetIdTo,
@@ -46134,7 +46146,7 @@ const GRID_CELL_REFERENCE_TOP_OFFSET = 28;
46134
46146
  var GridComposer = class extends Component {
46135
46147
  static template = "o-spreadsheet-GridComposer";
46136
46148
  static components = { Composer };
46137
- props = (0, _odoo_owl.props)({
46149
+ props = (0, _odoo_owl.useProps)({
46138
46150
  gridDims: types.DOMDimension(),
46139
46151
  onInputContextMenu: types.function()
46140
46152
  });
@@ -47261,7 +47273,7 @@ var GridOverlay = class extends Component {
47261
47273
  FiguresContainer,
47262
47274
  GridAddRowsFooter
47263
47275
  };
47264
- props = (0, _odoo_owl.props)({
47276
+ props = (0, _odoo_owl.useProps)({
47265
47277
  onCellDoubleClicked: types.function().optional(() => () => {}),
47266
47278
  onCellClicked: types.function().optional(() => () => {}),
47267
47279
  onCellRightClicked: types.function().optional(() => () => {}),
@@ -47378,7 +47390,7 @@ var GridOverlay = class extends Component {
47378
47390
  var GridPopover = class extends Component {
47379
47391
  static template = "o-spreadsheet-GridPopover";
47380
47392
  static components = { Popover };
47381
- props = (0, _odoo_owl.props)({
47393
+ props = (0, _odoo_owl.useProps)({
47382
47394
  onClosePopover: types.function(),
47383
47395
  onMouseWheel: types.function(),
47384
47396
  gridRect: types.Rect()
@@ -47406,7 +47418,7 @@ var GridPopover = class extends Component {
47406
47418
  //#region src/components/headers_overlay/unhide_headers.ts
47407
47419
  var UnhideRowHeaders = class extends Component {
47408
47420
  static template = "o-spreadsheet-UnhideRowHeaders";
47409
- props = (0, _odoo_owl.props)({
47421
+ props = (0, _odoo_owl.useProps)({
47410
47422
  headersGroups: types.array(),
47411
47423
  headerRange: types.object({
47412
47424
  start: types.HeaderIndex(),
@@ -47449,7 +47461,7 @@ var UnhideRowHeaders = class extends Component {
47449
47461
  };
47450
47462
  var UnhideColumnHeaders = class extends Component {
47451
47463
  static template = "o-spreadsheet-UnhideColumnHeaders";
47452
- props = (0, _odoo_owl.props)({
47464
+ props = (0, _odoo_owl.useProps)({
47453
47465
  headersGroups: types.array(),
47454
47466
  headerRange: types.object({
47455
47467
  start: types.HeaderIndex(),
@@ -47489,7 +47501,7 @@ var UnhideColumnHeaders = class extends Component {
47489
47501
  //#region src/components/headers_overlay/headers_overlay.ts
47490
47502
  const resizerPropsDefinition = { onOpenContextMenu: types.function() };
47491
47503
  var AbstractResizer = class extends Component {
47492
- props = (0, _odoo_owl.props)(resizerPropsDefinition);
47504
+ props = (0, _odoo_owl.useProps)(resizerPropsDefinition);
47493
47505
  composerFocusStore;
47494
47506
  PADDING = 0;
47495
47507
  MAX_SIZE_MARGIN = 0;
@@ -47952,7 +47964,7 @@ var RowResizer = class extends AbstractResizer {
47952
47964
  };
47953
47965
  var HeadersOverlay = class extends Component {
47954
47966
  static template = "o-spreadsheet-HeadersOverlay";
47955
- props = (0, _odoo_owl.props)(resizerPropsDefinition);
47967
+ props = (0, _odoo_owl.useProps)(resizerPropsDefinition);
47956
47968
  static components = {
47957
47969
  ColResizer,
47958
47970
  RowResizer
@@ -48948,7 +48960,7 @@ function useWheelHandler(handler) {
48948
48960
  //#region src/components/highlight/border/border.ts
48949
48961
  var Border = class extends Component {
48950
48962
  static template = "o-spreadsheet-Border";
48951
- props = (0, _odoo_owl.props)({
48963
+ props = (0, _odoo_owl.useProps)({
48952
48964
  zone: types.Zone(),
48953
48965
  orientation: types.or([
48954
48966
  types.literal("n"),
@@ -49001,7 +49013,7 @@ var Border = class extends Component {
49001
49013
  const MOBILE_HANDLER_WIDTH = 40;
49002
49014
  var Corner = class extends Component {
49003
49015
  static template = "o-spreadsheet-Corner";
49004
- props = (0, _odoo_owl.props)({
49016
+ props = (0, _odoo_owl.useProps)({
49005
49017
  zone: types.Zone(),
49006
49018
  color: types.Color(),
49007
49019
  orientation: types.or([
@@ -49075,7 +49087,7 @@ var Highlight = class extends Component {
49075
49087
  Corner,
49076
49088
  Border
49077
49089
  };
49078
- props = (0, _odoo_owl.props)({
49090
+ props = (0, _odoo_owl.useProps)({
49079
49091
  range: types.Range(),
49080
49092
  color: types.Color()
49081
49093
  });
@@ -49219,7 +49231,7 @@ var ScrollBar = class extends Component {
49219
49231
  <div t-att-style="this.sizeCss"/>
49220
49232
  </div>
49221
49233
  `;
49222
- props = (0, _odoo_owl.props)({
49234
+ props = (0, _odoo_owl.useProps)({
49223
49235
  width: types.Pixel().optional(1),
49224
49236
  height: types.Pixel().optional(1),
49225
49237
  direction: types.customValidator(types.string(), (direction) => ["horizontal", "vertical"].includes(direction)),
@@ -49265,7 +49277,7 @@ var HorizontalScrollBar = class extends Component {
49265
49277
  direction="'horizontal'"
49266
49278
  onScroll.bind="this.onScroll"
49267
49279
  />`;
49268
- props = (0, _odoo_owl.props)({ leftOffset: types.number().optional(0) });
49280
+ props = (0, _odoo_owl.useProps)({ leftOffset: types.number().optional(0) });
49269
49281
  get offset() {
49270
49282
  return this.env.model.getters.getActiveSheetScrollInfo().scrollX;
49271
49283
  }
@@ -49308,7 +49320,7 @@ var VerticalScrollBar = class extends Component {
49308
49320
  direction="'vertical'"
49309
49321
  onScroll.bind="(offset) => this.onScroll(offset)"
49310
49322
  />`;
49311
- props = (0, _odoo_owl.props)({ topOffset: types.number().optional(0) });
49323
+ props = (0, _odoo_owl.useProps)({ topOffset: types.number().optional(0) });
49312
49324
  get offset() {
49313
49325
  return this.env.model.getters.getActiveSheetScrollInfo().scrollY;
49314
49326
  }
@@ -49359,7 +49371,7 @@ const SIZE = 3;
49359
49371
  const COLOR = "#777";
49360
49372
  var TableResizer = class extends Component {
49361
49373
  static template = "o-spreadsheet-TableResizer";
49362
- props = (0, _odoo_owl.props)({ table: types.Table() });
49374
+ props = (0, _odoo_owl.useProps)({ table: types.Table() });
49363
49375
  state = (0, _odoo_owl.proxy)({ highlightZone: void 0 });
49364
49376
  dragNDropGrid = useDragAndDropBeyondTheViewport(this.env);
49365
49377
  setup() {
@@ -49447,7 +49459,7 @@ var Grid = class extends Component {
49447
49459
  TableResizer,
49448
49460
  Selection
49449
49461
  };
49450
- props = (0, _odoo_owl.props)({
49462
+ props = (0, _odoo_owl.useProps)({
49451
49463
  exposeFocus: types.function(),
49452
49464
  getGridSize: types.function()
49453
49465
  });
@@ -50075,6 +50087,10 @@ var Grid = class extends Component {
50075
50087
  get displaySelectionHandler() {
50076
50088
  return this.env.isMobile() && this.composerFocusStore.activeComposer.editionMode === "inactive";
50077
50089
  }
50090
+ get clientsToDisplay() {
50091
+ const sheetId = this.env.model.getters.getActiveSheetId();
50092
+ return this.env.model.getters.getClientsToDisplay(sheetId);
50093
+ }
50078
50094
  };
50079
50095
 
50080
50096
  //#endregion
@@ -50091,7 +50107,7 @@ supportedPivotPositionalFormulaRegistry.add("SPREADSHEET", false);
50091
50107
  //#region src/components/dashboard/clickable_cell_sort_icon/clickable_cell_sort_icon.ts
50092
50108
  var ClickableCellSortIcon = class extends Component {
50093
50109
  static template = "o-spreadsheet-ClickableCellSortIcon";
50094
- props = (0, _odoo_owl.props)({
50110
+ props = (0, _odoo_owl.useProps)({
50095
50111
  position: types.CellPosition(),
50096
50112
  sortDirection: types.or([types.SortDirection, types.literal("none")])
50097
50113
  });
@@ -50166,7 +50182,7 @@ var FullScreenFigure = class extends Component {
50166
50182
  var PivotHTMLRenderer = class extends Component {
50167
50183
  static template = "o_spreadsheet.PivotHTMLRenderer";
50168
50184
  static components = { Checkbox };
50169
- props = (0, _odoo_owl.props)({
50185
+ props = (0, _odoo_owl.useProps)({
50170
50186
  pivotId: types.UID(),
50171
50187
  onCellClicked: types.function()
50172
50188
  });
@@ -51039,6 +51055,7 @@ var Squisher = class {
51039
51055
  alreadyAppliedNumberOffsets = [];
51040
51056
  previousStrings = [];
51041
51057
  baseFormulaWasTransformed = false;
51058
+ rangeToStringOptions = { doNotSimplifyRange: true };
51042
51059
  baseNumber = void 0;
51043
51060
  constructor(getters) {
51044
51061
  this.getters = getters;
@@ -51094,9 +51111,9 @@ var Squisher = class {
51094
51111
  let references = [];
51095
51112
  if (!this.baseFormula || this.baseFormula.normalizedFormula !== cell.compiledFormula.normalizedFormula) {
51096
51113
  this.resetBaseTo(cell.compiledFormula);
51097
- return cell.compiledFormula.toFormulaString(this.getters);
51114
+ return cell.compiledFormula.toFormulaString(this.getters, this.rangeToStringOptions);
51098
51115
  } else {
51099
- if (!this.baseFormulaWasTransformed && deepEquals(cell.compiledFormula.literalValues, this.baseFormula.literalValues) && deepEquals(cell.compiledFormula.rangeDependencies, this.baseFormula.rangeDependencies)) return cell.compiledFormula.toFormulaString(this.getters);
51116
+ if (!this.baseFormulaWasTransformed && deepEquals(cell.compiledFormula.literalValues, this.baseFormula.literalValues) && deepEquals(cell.compiledFormula.rangeDependencies, this.baseFormula.rangeDependencies)) return cell.compiledFormula.toFormulaString(this.getters, this.rangeToStringOptions);
51100
51117
  numbers = this.squishNumbers(cell.compiledFormula.literalValues.numbers);
51101
51118
  strings = this.squishStrings(cell.compiledFormula.literalValues.strings);
51102
51119
  references = this.squishReferences(cell.compiledFormula.rangeDependencies, forSheetId);
@@ -51173,23 +51190,23 @@ var Squisher = class {
51173
51190
  squishOneReference(reference, previousReferences, index, forSheetId) {
51174
51191
  const previousReference = previousReferences[index];
51175
51192
  if (deepEquals(previousReference, reference)) return "=";
51176
- if (previousReference.sheetId !== reference.sheetId || previousReference.prefixSheet !== reference.prefixSheet || previousReference.invalidSheetName !== reference.invalidSheetName || previousReference.invalidXc !== reference.invalidXc) {
51193
+ if (previousReference.sheetId !== reference.sheetId || previousReference.prefixSheet !== reference.prefixSheet || previousReference.invalidSheetName !== reference.invalidSheetName || previousReference.invalidXc !== reference.invalidXc || previousReference.parts.length !== reference.parts.length) {
51177
51194
  previousReferences[index] = deepCopy(reference);
51178
- return getRangeString(reference, forSheetId, this.getters.getSheetName);
51195
+ return getRangeString(reference, forSheetId, this.getters.getSheetName, this.rangeToStringOptions);
51179
51196
  }
51180
51197
  if (previousReference.unboundedZone.bottom === void 0 || previousReference.unboundedZone.right === void 0 || reference.unboundedZone.bottom === void 0 || reference.unboundedZone.right === void 0) {
51181
51198
  previousReferences[index] = deepCopy(reference);
51182
- return getRangeString(reference, forSheetId, this.getters.getSheetName);
51199
+ return getRangeString(reference, forSheetId, this.getters.getSheetName, this.rangeToStringOptions);
51183
51200
  }
51184
51201
  for (let i = 0; i < reference.parts.length; i++) if (previousReference.parts[i].colFixed !== reference.parts[i].colFixed || previousReference.parts[i].rowFixed !== reference.parts[i].rowFixed) {
51185
51202
  previousReferences[index] = deepCopy(reference);
51186
- return getRangeString(reference, forSheetId, this.getters.getSheetName);
51203
+ return getRangeString(reference, forSheetId, this.getters.getSheetName, this.rangeToStringOptions);
51187
51204
  }
51188
51205
  const currentZone = reference.zone;
51189
51206
  const previousZone = previousReference.zone;
51190
51207
  if (currentZone.top !== currentZone.bottom || currentZone.left !== currentZone.right || previousZone.top !== previousZone.bottom || previousZone.left !== previousZone.right) {
51191
51208
  previousReferences[index] = deepCopy(reference);
51192
- return getRangeString(reference, forSheetId, this.getters.getSheetName);
51209
+ return getRangeString(reference, forSheetId, this.getters.getSheetName, this.rangeToStringOptions);
51193
51210
  }
51194
51211
  const diffCol = reference.zone.left - previousReference.zone.left;
51195
51212
  const diffRow = reference.zone.top - previousReference.zone.top;
@@ -51197,7 +51214,7 @@ var Squisher = class {
51197
51214
  previousReference.unboundedZone = deepCopy(reference.unboundedZone);
51198
51215
  if (diffCol !== 0 && diffRow === 0) return `${diffCol > 0 ? "+" : "-"}C${Math.abs(diffCol)}`;
51199
51216
  else if (diffRow !== 0 && diffCol === 0) return `${diffRow > 0 ? "+" : "-"}R${Math.abs(diffRow)}`;
51200
- return getRangeString(reference, forSheetId, this.getters.getSheetName);
51217
+ return getRangeString(reference, forSheetId, this.getters.getSheetName, this.rangeToStringOptions);
51201
51218
  }
51202
51219
  /**
51203
51220
  * Squish the number parameters. Result for each parameter should be compared the previous formula.
@@ -51406,10 +51423,19 @@ var Unsquisher = class {
51406
51423
  case "FIRST_OFFSET": {
51407
51424
  const currentOffset = current;
51408
51425
  this.previousOffset = currentOffset;
51409
- for (const position of targetPositions) yield {
51410
- position,
51411
- compiled: this.unsquishFormula(currentOffset, sheetId, getters)
51412
- };
51426
+ for (const position of targetPositions) {
51427
+ const result = this.unsquishFormula(currentOffset, sheetId, getters);
51428
+ if (!result.areRangeShapesInLineWithNormalizedFormula()) {
51429
+ const formulaString = result.toFormulaString(getters);
51430
+ yield {
51431
+ position,
51432
+ compiled: CompiledFormula.Compile(formulaString, sheetId, getters)
51433
+ };
51434
+ } else yield {
51435
+ position,
51436
+ compiled: result
51437
+ };
51438
+ }
51413
51439
  break;
51414
51440
  }
51415
51441
  case "COMBINE_OFFSET": {
@@ -51418,10 +51444,19 @@ var Unsquisher = class {
51418
51444
  this.previousOffset.N = currentOffset.N ?? this.previousOffset.N;
51419
51445
  this.previousOffset.S = currentOffset.S ?? this.previousOffset.S;
51420
51446
  this.previousOffset.R = currentOffset.R ?? this.previousOffset.R;
51421
- for (const position of targetPositions) yield {
51422
- position,
51423
- compiled: this.unsquishFormula(this.previousOffset, sheetId, getters)
51424
- };
51447
+ for (const position of targetPositions) {
51448
+ const result = this.unsquishFormula(this.previousOffset, sheetId, getters);
51449
+ if (!result.areRangeShapesInLineWithNormalizedFormula()) {
51450
+ const formulaString = result.toFormulaString(getters);
51451
+ yield {
51452
+ position,
51453
+ compiled: CompiledFormula.Compile(formulaString, sheetId, getters)
51454
+ };
51455
+ } else yield {
51456
+ position,
51457
+ compiled: result
51458
+ };
51459
+ }
51425
51460
  break;
51426
51461
  }
51427
51462
  case "NEW_NUMBER":
@@ -53026,11 +53061,16 @@ var DefaultPlugin = class extends CorePlugin {
53026
53061
  const deltaStyle = {};
53027
53062
  let hasDelta = false;
53028
53063
  const styleSheet = this.style[position.sheetId];
53029
- if (!styleSheet) continue;
53030
53064
  for (const key in newDefaultStyle) {
53031
53065
  if (key in cellStyle) continue;
53032
- const defaults = styleSheet[key];
53033
- if (!defaults) continue;
53066
+ const defaults = styleSheet?.[key];
53067
+ if (!defaults) {
53068
+ if (newDefaultStyle[key] !== DEFAULT_STYLE[key]) {
53069
+ deltaStyle[key] = DEFAULT_STYLE[key];
53070
+ hasDelta = true;
53071
+ }
53072
+ continue;
53073
+ }
53034
53074
  const rowDefault = defaults.rowDefault?.[position.row];
53035
53075
  if (rowDefault !== void 0) {
53036
53076
  if (priorities.shouldUseDefaultRow) {
@@ -53072,7 +53112,8 @@ var DefaultPlugin = class extends CorePlugin {
53072
53112
  for (const key in styleSheet) if (!(key in style)) {
53073
53113
  const defaults = styleSheet[key];
53074
53114
  if (!defaults) continue;
53075
- style[key] = defaults.rowDefault?.[position.row] ?? defaults.colDefault?.[position.col] ?? defaults.sheetDefault;
53115
+ const styleValue = defaults.rowDefault?.[position.row] ?? defaults.colDefault?.[position.col] ?? defaults.sheetDefault;
53116
+ if (styleValue !== void 0) style[key] = styleValue;
53076
53117
  }
53077
53118
  return style;
53078
53119
  }
@@ -59822,6 +59863,8 @@ var PivotUIPlugin = class extends CoreViewPlugin {
59822
59863
  pivots = {};
59823
59864
  unusedPivotsInFormulas;
59824
59865
  custom;
59866
+ pivotPositionCache = new PositionMap();
59867
+ shouldInvalidateCache = false;
59825
59868
  constructor(config) {
59826
59869
  super(config);
59827
59870
  this.custom = config.custom;
@@ -59832,7 +59875,11 @@ var PivotUIPlugin = class extends CoreViewPlugin {
59832
59875
  }
59833
59876
  }
59834
59877
  handle(cmd) {
59835
- if (invalidateEvaluationCommands.has(cmd.type)) for (const pivotId of this.getters.getPivotIds()) this.setupPivot(pivotId, { recreate: true });
59878
+ if (invalidateEvaluationCommands.has(cmd.type)) {
59879
+ this.shouldInvalidateCache = true;
59880
+ for (const pivotId of this.getters.getPivotIds()) this.setupPivot(pivotId, { recreate: true });
59881
+ }
59882
+ if (cmd.type === "UPDATE_CELL") this.shouldInvalidateCache = true;
59836
59883
  switch (cmd.type) {
59837
59884
  case "REFRESH_PIVOT":
59838
59885
  this.refreshPivot(cmd.id);
@@ -59872,6 +59919,12 @@ var PivotUIPlugin = class extends CoreViewPlugin {
59872
59919
  break;
59873
59920
  }
59874
59921
  }
59922
+ finalize() {
59923
+ if (this.shouldInvalidateCache) {
59924
+ this.pivotPositionCache = new PositionMap();
59925
+ this.shouldInvalidateCache = false;
59926
+ }
59927
+ }
59875
59928
  /**
59876
59929
  * Get the id of the first pivot in the formula at the given position. Returns undefined if there
59877
59930
  * is no pivot at this position
@@ -59883,9 +59936,14 @@ var PivotUIPlugin = class extends CoreViewPlugin {
59883
59936
  * Get all of the ids of the pivot present in the formula at the given position.
59884
59937
  */
59885
59938
  getPivotIdsFromPosition(position) {
59886
- const cell = this.getters.getCorrespondingFormulaCell(position);
59887
- if (cell && cell.isFormula) return this.getPivotIdsFromFormula(position.sheetId, cell.compiledFormula);
59888
- return [];
59939
+ if (!this.pivotPositionCache.has(position)) {
59940
+ const cell = this.getters.getCorrespondingFormulaCell(position);
59941
+ if (cell && cell.isFormula) {
59942
+ const pivotIds = this.getPivotIdsFromFormula(position.sheetId, cell.compiledFormula);
59943
+ this.pivotPositionCache.set(position, pivotIds);
59944
+ }
59945
+ }
59946
+ return this.pivotPositionCache.get(position) || [];
59889
59947
  }
59890
59948
  getPivotIdsFromFormula(sheetId, formula) {
59891
59949
  return this.getPivotFunctions(sheetId, formula).map((pivotFunction) => {
@@ -61250,17 +61308,32 @@ var TableComputedStylePlugin = class extends UIPlugin {
61250
61308
  getCellTableStyle(position) {
61251
61309
  const table = this.getters.getTable(position);
61252
61310
  if (!table) return;
61253
- return this.tableStyles[position.sheetId][table.id]().styles[position.col]?.[position.row];
61311
+ try {
61312
+ return this.tableStyles[position.sheetId][table.id]().styles[position.col]?.[position.row];
61313
+ } catch (e) {
61314
+ if (isEvaluationError(e) || e instanceof EvaluationError) return;
61315
+ throw e;
61316
+ }
61254
61317
  }
61255
61318
  getCellTableBorder(position) {
61256
61319
  const table = this.getters.getTable(position);
61257
61320
  if (!table) return;
61258
- return this.tableStyles[position.sheetId][table.id]().borders[position.col]?.[position.row];
61321
+ try {
61322
+ return this.tableStyles[position.sheetId][table.id]().borders[position.col]?.[position.row];
61323
+ } catch (e) {
61324
+ if (isEvaluationError(e) || e instanceof EvaluationError) return;
61325
+ throw e;
61326
+ }
61259
61327
  }
61260
61328
  computeTableStyle(sheetId, table) {
61261
61329
  return lazy(() => {
61262
61330
  const style = this.getters.getTableStyle(table.config.styleId);
61263
- const { tableMetaData, config } = this.getTableMetaData(sheetId, table);
61331
+ const tableMetaDataAndConfig = this.getTableMetaData(sheetId, table);
61332
+ if (!tableMetaDataAndConfig) return {
61333
+ borders: {},
61334
+ styles: {}
61335
+ };
61336
+ const { tableMetaData, config } = tableMetaDataAndConfig;
61264
61337
  const relativeTableStyle = getComputedTableStyle(config, style, tableMetaData);
61265
61338
  const mapping = this.getTableMapping(sheetId, table);
61266
61339
  const absoluteTableStyle = {
@@ -61298,6 +61371,7 @@ var TableComputedStylePlugin = class extends UIPlugin {
61298
61371
  const pivotInfo = this.getters.getPivotStyleAtPosition(mainPosition);
61299
61372
  if (!pivotInfo) throw new Error("No dynamic pivot info found at pivot table position");
61300
61373
  const pivot = this.getters.getPivot(pivotInfo.pivotId);
61374
+ if (!pivot.isValid()) return;
61301
61375
  const pivotStyle = pivotInfo.pivotStyle;
61302
61376
  const maxRowDepth = pivot.getExpandedTableStructure().getNumberOfRowGroupBys();
61303
61377
  const pivotTable = pivot.getCollapsedTableStructure();
@@ -62592,14 +62666,13 @@ var CollaborativePlugin = class extends UIPlugin {
62592
62666
  * Get the list of others connected clients which are present in the same sheet
62593
62667
  * and with a valid position
62594
62668
  */
62595
- getClientsToDisplay() {
62669
+ getClientsToDisplay(sheetId) {
62596
62670
  try {
62597
62671
  this.getters.getCurrentClient();
62598
62672
  } catch (e) {
62599
62673
  if (e instanceof ClientDisconnectedError) return [];
62600
62674
  else throw e;
62601
62675
  }
62602
- const sheetId = this.getters.getActiveSheetId();
62603
62676
  const clients = [];
62604
62677
  for (const client of this.getters.getConnectedClients()) if (client.id !== this.getters.getCurrentClient().id && client.position && client.position.sheetId === sheetId && this.isPositionValid(client.position)) clients.push({
62605
62678
  ...client,
@@ -62610,7 +62683,7 @@ var CollaborativePlugin = class extends UIPlugin {
62610
62683
  drawLayer(renderingContext) {
62611
62684
  if (this.getters.isDashboard()) return;
62612
62685
  const { ctx, thinLineWidth, viewports, sheetId } = renderingContext;
62613
- for (const client of this.getClientsToDisplay()) {
62686
+ for (const client of this.getClientsToDisplay(sheetId)) {
62614
62687
  const { row, col } = client.position;
62615
62688
  const zone = this.getters.expandZone(sheetId, {
62616
62689
  top: row,
@@ -63418,8 +63491,8 @@ var HeaderVisibilityUIPlugin = class extends UIPlugin {
63418
63491
  getNextVisibleCellPosition({ sheetId, col, row }) {
63419
63492
  return {
63420
63493
  sheetId,
63421
- col: this.findVisibleHeader(sheetId, "COL", col, this.getters.getNumberCols(sheetId) - 1),
63422
- row: this.findVisibleHeader(sheetId, "ROW", row, this.getters.getNumberRows(sheetId) - 1)
63494
+ col: this.findVisibleHeader(sheetId, "COL", col, this.getters.getNumberCols(sheetId) - 1) || this.findVisibleHeader(sheetId, "COL", col, 0) || 0,
63495
+ row: this.findVisibleHeader(sheetId, "ROW", row, this.getters.getNumberRows(sheetId) - 1) || this.findVisibleHeader(sheetId, "ROW", row, 0) || 0
63423
63496
  };
63424
63497
  }
63425
63498
  /**
@@ -68646,7 +68719,7 @@ const RIPPLE_KEY_FRAMES = [
68646
68719
  ];
68647
68720
  var RippleEffect = class extends Component {
68648
68721
  static template = "o-spreadsheet-RippleEffect";
68649
- props = (0, _odoo_owl.props)({
68722
+ props = (0, _odoo_owl.useProps)({
68650
68723
  x: types.string(),
68651
68724
  y: types.string(),
68652
68725
  color: types.string(),
@@ -68699,7 +68772,7 @@ var RippleEffect = class extends Component {
68699
68772
  var Ripple = class extends Component {
68700
68773
  static template = "o-spreadsheet-Ripple";
68701
68774
  static components = { RippleEffect };
68702
- props = (0, _odoo_owl.props)({
68775
+ props = (0, _odoo_owl.useProps)({
68703
68776
  color: types.string().optional("#aaaaaa"),
68704
68777
  opacity: types.number().optional(.4),
68705
68778
  duration: types.number().optional(800),
@@ -68977,7 +69050,7 @@ var BottomBarSheet = class extends Component {
68977
69050
  Ripple,
68978
69051
  ColorPicker
68979
69052
  };
68980
- props = (0, _odoo_owl.props)({
69053
+ props = (0, _odoo_owl.useProps)({
68981
69054
  sheetId: types.string(),
68982
69055
  openContextMenu: types.function(),
68983
69056
  style: types.string().optional(""),
@@ -69267,7 +69340,7 @@ var AggregateStatisticsStore = class extends SpreadsheetStore {
69267
69340
  var BottomBarStatistic = class extends Component {
69268
69341
  static template = "o-spreadsheet-BottomBarStatistic";
69269
69342
  static components = { Ripple };
69270
- props = (0, _odoo_owl.props)({
69343
+ props = (0, _odoo_owl.useProps)({
69271
69344
  openContextMenu: types.function(),
69272
69345
  closeContextMenu: types.function()
69273
69346
  });
@@ -69321,7 +69394,7 @@ var BottomBarStatistic = class extends Component {
69321
69394
  const SHEET_LIST_MENU_MAX_HEIGHT = 250;
69322
69395
  var BottomBar = class extends Component {
69323
69396
  static template = "o-spreadsheet-BottomBar";
69324
- props = (0, _odoo_owl.props)({ onClick: types.function() });
69397
+ props = (0, _odoo_owl.useProps)({ onClick: types.function() });
69325
69398
  static components = {
69326
69399
  MenuPopover,
69327
69400
  Ripple,
@@ -69604,7 +69677,7 @@ var SpreadsheetDashboard = class extends Component {
69604
69677
  VerticalScrollBar,
69605
69678
  HorizontalScrollBar
69606
69679
  };
69607
- props = (0, _odoo_owl.props)({ getGridSize: types.function() });
69680
+ props = (0, _odoo_owl.useProps)({ getGridSize: types.function() });
69608
69681
  cellPopovers;
69609
69682
  onMouseWheel;
69610
69683
  canvasPosition;
@@ -69723,7 +69796,7 @@ var SpreadsheetDashboard = class extends Component {
69723
69796
  //#region src/components/header_group/header_group.ts
69724
69797
  var AbstractHeaderGroup = class extends Component {
69725
69798
  static template = "o-spreadsheet-HeaderGroup";
69726
- props = (0, _odoo_owl.props)({
69799
+ props = (0, _odoo_owl.useProps)({
69727
69800
  group: types.HeaderGroup(),
69728
69801
  layerOffset: types.number(),
69729
69802
  openContextMenu: types.function()
@@ -69877,7 +69950,7 @@ var HeaderGroupContainer = class extends Component {
69877
69950
  ColGroup,
69878
69951
  MenuPopover
69879
69952
  };
69880
- props = (0, _odoo_owl.props)({
69953
+ props = (0, _odoo_owl.useProps)({
69881
69954
  dimension: types.Dimension(),
69882
69955
  layers: types.array()
69883
69956
  });
@@ -69953,7 +70026,7 @@ function useScreenWidth() {
69953
70026
  //#region src/components/side_panel/side_panel/side_panel.ts
69954
70027
  var SidePanel = class extends Component {
69955
70028
  static template = "o-spreadsheet-SidePanel";
69956
- props = (0, _odoo_owl.props)({
70029
+ props = (0, _odoo_owl.useProps)({
69957
70030
  panelContent: types.SidePanelContent(),
69958
70031
  panelProps: types.SidePanelComponentProps(),
69959
70032
  onCloseSidePanel: types.function(),
@@ -70047,7 +70120,7 @@ var SidePanels = class extends Component {
70047
70120
  var RibbonMenu = class extends Component {
70048
70121
  static template = "o-spreadsheet-RibbonMenu";
70049
70122
  static components = { Menu };
70050
- props = (0, _odoo_owl.props)({ onClose: types.function() });
70123
+ props = (0, _odoo_owl.useProps)({ onClose: types.function() });
70051
70124
  rootItems = topbarMenuRegistry.getMenuItems();
70052
70125
  menuRef = (0, _odoo_owl.signal)(null);
70053
70126
  containerRef = (0, _odoo_owl.signal)(null);
@@ -70118,7 +70191,7 @@ var SmallBottomBar = class extends Component {
70118
70191
  RibbonMenu
70119
70192
  };
70120
70193
  static template = "o-spreadsheet-SmallBottomBar";
70121
- props = (0, _odoo_owl.props)({ onClick: types.function() });
70194
+ props = (0, _odoo_owl.useProps)({ onClick: types.function() });
70122
70195
  composerFocusStore;
70123
70196
  composerStore;
70124
70197
  composerInterface;
@@ -70319,7 +70392,7 @@ var FigureRendererStore = class extends DisposableStore {
70319
70392
  //#region src/components/standalone_grid_canvas/standalone_grid_canvas.ts
70320
70393
  var StandaloneGridCanvas = class extends Component {
70321
70394
  static template = "o-spreadsheet-StandaloneGridCanvas";
70322
- props = (0, _odoo_owl.props)({
70395
+ props = (0, _odoo_owl.useProps)({
70323
70396
  sheetId: types.UID(),
70324
70397
  zone: types.Zone(),
70325
70398
  renderingCtx: types.object()
@@ -70644,7 +70717,7 @@ var SpreadsheetPrintStore = class extends SpreadsheetStore {
70644
70717
  //#region src/components/spreadsheet_print/spreadsheet_print.ts
70645
70718
  var SpreadsheetPrint = class extends Component {
70646
70719
  static template = "o-spreadsheet-SpreadsheetPrint";
70647
- props = (0, _odoo_owl.props)({ onExitPrintMode: types.function() });
70720
+ props = (0, _odoo_owl.useProps)({ onExitPrintMode: types.function() });
70648
70721
  static components = {
70649
70722
  StandaloneGridCanvas,
70650
70723
  Section,
@@ -70986,7 +71059,7 @@ var BorderEditor = class extends Component {
70986
71059
  ColorPickerWidget,
70987
71060
  Popover
70988
71061
  };
70989
- props = (0, _odoo_owl.props)({
71062
+ props = (0, _odoo_owl.useProps)({
70990
71063
  class: types.string().optional(),
70991
71064
  currentBorderColor: types.Color(),
70992
71065
  currentBorderStyle: types.BorderStyle(),
@@ -71058,7 +71131,7 @@ var BorderEditor = class extends Component {
71058
71131
  var BorderEditorWidget = class extends Component {
71059
71132
  static template = "o-spreadsheet-BorderEditorWidget";
71060
71133
  static components = { BorderEditor };
71061
- props = (0, _odoo_owl.props)({
71134
+ props = (0, _odoo_owl.useProps)({
71062
71135
  disabled: types.boolean().optional(),
71063
71136
  dropdownMaxHeight: types.Pixel().optional(),
71064
71137
  class: types.string().optional()
@@ -71119,7 +71192,7 @@ var BorderEditorWidget = class extends Component {
71119
71192
  //#region src/components/paint_format_button/paint_format_button.ts
71120
71193
  var PaintFormatButton = class extends Component {
71121
71194
  static template = "o-spreadsheet-PaintFormatButton";
71122
- props = (0, _odoo_owl.props)({ class: types.string().optional() });
71195
+ props = (0, _odoo_owl.useProps)({ class: types.string().optional() });
71123
71196
  paintFormatStore;
71124
71197
  setup() {
71125
71198
  this.paintFormatStore = useStore(PaintFormatStore);
@@ -71144,7 +71217,7 @@ var TableDropdownButton = class extends Component {
71144
71217
  TableStylesPopover,
71145
71218
  ActionButton
71146
71219
  };
71147
- props = (0, _odoo_owl.props)({ class: types.string().optional() });
71220
+ props = (0, _odoo_owl.useProps)({ class: types.string().optional() });
71148
71221
  topBarToolStore;
71149
71222
  state = (0, _odoo_owl.proxy)({ popoverProps: void 0 });
71150
71223
  setup() {
@@ -71238,7 +71311,7 @@ var TableDropdownButton = class extends Component {
71238
71311
  var TopBarColorEditor = class extends Component {
71239
71312
  static components = { ColorPickerWidget };
71240
71313
  static template = "o-spreadsheet-ColorEditor";
71241
- props = (0, _odoo_owl.props)({
71314
+ props = (0, _odoo_owl.useProps)({
71242
71315
  class: types.string(),
71243
71316
  style: types.or([types.literal("textColor"), types.literal("fillColor")]),
71244
71317
  icon: types.string(),
@@ -71286,7 +71359,7 @@ var DropdownAction = class extends Component {
71286
71359
  ActionButton,
71287
71360
  Popover
71288
71361
  };
71289
- props = (0, _odoo_owl.props)({
71362
+ props = (0, _odoo_owl.useProps)({
71290
71363
  parentAction: types.ActionSpec(),
71291
71364
  childActions: types.array(types.ActionSpec()),
71292
71365
  class: types.string(),
@@ -71319,7 +71392,7 @@ var DropdownAction = class extends Component {
71319
71392
  var TopBarFontSizeEditor = class extends Component {
71320
71393
  static components = { FontSizeEditor };
71321
71394
  static template = "o-spreadsheet-TopBarFontSizeEditor";
71322
- props = (0, _odoo_owl.props)({ class: types.string() });
71395
+ props = (0, _odoo_owl.useProps)({ class: types.string() });
71323
71396
  topBarToolStore;
71324
71397
  setup() {
71325
71398
  this.topBarToolStore = useToolBarDropdownStore();
@@ -71353,7 +71426,7 @@ var NumberFormatsTool = class extends Component {
71353
71426
  MenuPopover,
71354
71427
  ActionButton
71355
71428
  };
71356
- props = (0, _odoo_owl.props)({ class: types.string() });
71429
+ props = (0, _odoo_owl.useProps)({ class: types.string() });
71357
71430
  formatNumberMenuItemSpec = formatNumberMenuItemSpec;
71358
71431
  topBarToolStore;
71359
71432
  buttonRef = (0, _odoo_owl.signal)(null);
@@ -71388,7 +71461,7 @@ var NumberFormatsTool = class extends Component {
71388
71461
  var ToolBarZoom = class extends Component {
71389
71462
  static template = "o-spreadsheet-TopBarZoom";
71390
71463
  static components = { NumberEditor };
71391
- props = (0, _odoo_owl.props)({ class: types.string() });
71464
+ props = (0, _odoo_owl.useProps)({ class: types.string() });
71392
71465
  topBarToolStore;
71393
71466
  valueList = ZOOM_VALUES;
71394
71467
  setup() {
@@ -71614,7 +71687,7 @@ topBarToolBarRegistry.add("edit").addChild("edit", {
71614
71687
  //#region src/components/top_bar/top_bar.ts
71615
71688
  var TopBar = class extends Component {
71616
71689
  static template = "o-spreadsheet-TopBar";
71617
- props = (0, _odoo_owl.props)({
71690
+ props = (0, _odoo_owl.useProps)({
71618
71691
  onClick: types.function(),
71619
71692
  dropdownMaxHeight: types.Pixel()
71620
71693
  });
@@ -71892,7 +71965,7 @@ var WebClipboardWrapper = class {
71892
71965
  //#region src/components/spreadsheet/spreadsheet.ts
71893
71966
  var Spreadsheet = class extends Component {
71894
71967
  static template = "o-spreadsheet-Spreadsheet";
71895
- props = (0, _odoo_owl.props)({
71968
+ props = (0, _odoo_owl.useProps)({
71896
71969
  model: types.Model(),
71897
71970
  notifyUser: types.function().optional(),
71898
71971
  raiseError: types.function().optional(),
@@ -77194,8 +77267,8 @@ var DefaultClipboardHandler = class extends AbstractCellClipboardHandler {
77194
77267
  for (const key in DEFAULT_STYLE) {
77195
77268
  content.style[key] = {
77196
77269
  sheetDefault: this.getters.getDefaultStyle(data.sheetId, key, "SHEET", void 0) ?? DEFAULT_STYLE[key],
77197
- colDefault: {},
77198
- rowDefault: {}
77270
+ colDefault: [],
77271
+ rowDefault: []
77199
77272
  };
77200
77273
  let colIndex = 0;
77201
77274
  for (const col of data.columnsIndexes) {
@@ -77212,20 +77285,41 @@ var DefaultClipboardHandler = class extends AbstractCellClipboardHandler {
77212
77285
  }
77213
77286
  return content;
77214
77287
  }
77215
- clearStyleFormat(sheetId, zone) {
77216
- this.dispatch("SET_FORMATTING", {
77217
- sheetId,
77218
- target: [zone],
77219
- format: ""
77220
- });
77288
+ adaptContentToZone(zone, content) {
77289
+ const colRepetition = Math.max(Math.floor((zone.right - zone.left + 1) / content.width), 1);
77290
+ const rowRepetition = Math.max(Math.floor((zone.bottom - zone.top + 1) / content.height), 1);
77291
+ if (colRepetition === 1 && rowRepetition === 1) return content;
77292
+ const newContent = deepCopy(content);
77293
+ newContent.height *= rowRepetition;
77294
+ newContent.width *= colRepetition;
77295
+ if (rowRepetition > 1 && newContent.format.rowDefault) {
77296
+ newContent.format.rowDefault.length = content.height;
77297
+ newContent.format.rowDefault = repeat(newContent.format.rowDefault, rowRepetition);
77298
+ }
77299
+ if (colRepetition > 1 && newContent.format.colDefault) {
77300
+ newContent.format.colDefault.length = content.width;
77301
+ newContent.format.colDefault = repeat(newContent.format.colDefault, colRepetition);
77302
+ }
77303
+ for (const key in content.style) {
77304
+ if (rowRepetition > 1 && newContent.style[key].rowDefault) {
77305
+ newContent.style[key].rowDefault.length = content.height;
77306
+ newContent.style[key].rowDefault = repeat(newContent.style[key].rowDefault, rowRepetition);
77307
+ }
77308
+ if (colRepetition > 1 && newContent.style[key].colDefault) {
77309
+ newContent.style[key].colDefault.length = content.width;
77310
+ newContent.style[key].colDefault = repeat(newContent.style[key].colDefault, colRepetition);
77311
+ }
77312
+ }
77313
+ return newContent;
77221
77314
  }
77222
77315
  paste(target, content, options) {
77223
77316
  const sheetId = target.sheetId;
77224
77317
  if (options.pasteOption === "asValue") return;
77225
77318
  const zones = target.zones;
77226
- if (!options.isCutOperation) for (const zone of zones) for (const pasteZone of splitZoneForPaste(zone, content.width, content.height)) {
77227
- this.pasteStyle(sheetId, pasteZone.left, pasteZone.top, content.width, content.height, content.style);
77228
- this.pasteFormat(sheetId, pasteZone.left, pasteZone.top, content.width, content.height, content.format);
77319
+ if (!options.isCutOperation) for (const zone of zones) {
77320
+ const newContent = this.adaptContentToZone(zone, content);
77321
+ this.pasteStyle(sheetId, zone.left, zone.top, newContent.width, newContent.height, newContent.style);
77322
+ this.pasteFormat(sheetId, zone.left, zone.top, newContent.width, newContent.height, newContent.format);
77229
77323
  }
77230
77324
  else {
77231
77325
  this.clearClippedZones(content);
@@ -77338,7 +77432,7 @@ var DefaultClipboardHandler = class extends AbstractCellClipboardHandler {
77338
77432
  const commands = [];
77339
77433
  for (const [zoneStr, [zone, priority]] of Object.entries(zones)) {
77340
77434
  const format = updateCells[zoneStr];
77341
- commands.push([
77435
+ if (format !== void 0) commands.push([
77342
77436
  priority,
77343
77437
  zone,
77344
77438
  format
@@ -77688,7 +77782,7 @@ const ERROR_TOOLTIP_MAX_HEIGHT = 80;
77688
77782
  var ErrorToolTip = class extends Component {
77689
77783
  static maxSize = { maxHeight: ERROR_TOOLTIP_MAX_HEIGHT };
77690
77784
  static template = "o-spreadsheet-ErrorToolTip";
77691
- props = (0, _odoo_owl.props)({
77785
+ props = (0, _odoo_owl.useProps)({
77692
77786
  cellPosition: types.CellPosition(),
77693
77787
  onClosed: types.function().optional()
77694
77788
  });
@@ -77772,7 +77866,7 @@ var FilterMenu = class extends Component {
77772
77866
  SidePanelCollapsible,
77773
77867
  FilterMenuCriterion
77774
77868
  };
77775
- props = (0, _odoo_owl.props)({
77869
+ props = (0, _odoo_owl.useProps)({
77776
77870
  filterPosition: types.Position(),
77777
77871
  onClosed: types.function().optional()
77778
77872
  });
@@ -77952,7 +78046,7 @@ const FilterMenuPopoverBuilder = { onOpen: (position, getters) => {
77952
78046
  //#region src/components/link/link_display/link_display.ts
77953
78047
  var LinkDisplay = class extends Component {
77954
78048
  static template = "o-spreadsheet-LinkDisplay";
77955
- props = (0, _odoo_owl.props)({
78049
+ props = (0, _odoo_owl.useProps)({
77956
78050
  cellPosition: types.CellPosition(),
77957
78051
  onClosed: types.function().optional()
77958
78052
  });
@@ -78026,7 +78120,7 @@ const LinkCellPopoverBuilder = { onHover: (position, getters) => {
78026
78120
  var LinkEditor = class extends Component {
78027
78121
  static template = "o-spreadsheet-LinkEditor";
78028
78122
  static components = { MenuPopover };
78029
- props = (0, _odoo_owl.props)({
78123
+ props = (0, _odoo_owl.useProps)({
78030
78124
  cellPosition: types.CellPosition(),
78031
78125
  onClosed: types.function().optional()
78032
78126
  });
@@ -87540,6 +87634,7 @@ const helpers = {
87540
87634
  collapseHierarchicalDisplayName,
87541
87635
  getCanonicalSymbolName,
87542
87636
  fuzzyLookup,
87637
+ PositionMap,
87543
87638
  replaceSymbolInFormula
87544
87639
  };
87545
87640
  const links = {
@@ -87764,6 +87859,6 @@ exports.stores = stores;
87764
87859
  exports.tokenColors = tokenColors;
87765
87860
  exports.tokenize = tokenize;
87766
87861
 
87767
- __info__.version = "19.4.2";
87768
- __info__.date = "2026-07-13T06:26:39.071Z";
87769
- __info__.hash = "c83d4aa";
87862
+ __info__.version = "19.4.4";
87863
+ __info__.date = "2026-07-23T07:49:22.265Z";
87864
+ __info__.hash = "6b3c312";