@odoo/o-spreadsheet 19.4.1 → 19.4.3

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.1
6
- * @date 2026-07-01T05:05:19.248Z
7
- * @hash e359501
5
+ * @version 19.4.3
6
+ * @date 2026-07-20T11:02:36.941Z
7
+ * @hash d32e61b
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",
@@ -28056,7 +28067,7 @@ function filterInvalidCalendarDataPoints(labels, datasets) {
28056
28067
  */
28057
28068
  function filterInvalidHierarchicalPoints(values, hierarchy) {
28058
28069
  const numberOfDataPoints = Math.max(values.length, ...hierarchy.map((dataset) => dataset.data?.length || 0));
28059
- const isEmpty = (value) => value === null || value === "";
28070
+ const isEmpty = (value) => value === void 0 || value === null || value === "";
28060
28071
  const dataPointsIndexes = range(0, numberOfDataPoints).filter((dataPointIndex) => {
28061
28072
  const groups = hierarchy.map((dataset) => dataset.data?.[dataPointIndex]);
28062
28073
  if (isEmpty(groups[0]?.value)) return false;
@@ -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
  });
@@ -45537,7 +45548,7 @@ var Autofill = class extends Component {
45537
45548
  }
45538
45549
  };
45539
45550
  var TooltipComponent = class extends Component {
45540
- props = (0, _odoo_owl.props)({ content: types.string() });
45551
+ props = (0, _odoo_owl.useProps)({ content: types.string() });
45541
45552
  static template = _odoo_owl.xml`
45542
45553
  <div t-out="this.props.content"/>
45543
45554
  `;
@@ -45547,7 +45558,7 @@ var TooltipComponent = class extends Component {
45547
45558
  //#region src/components/collaborative_client_tag/collaborative_client_tag.ts
45548
45559
  var ClientTag = class extends Component {
45549
45560
  static template = "o-spreadsheet-ClientTag";
45550
- props = (0, _odoo_owl.props)({
45561
+ props = (0, _odoo_owl.useProps)({
45551
45562
  active: types.boolean(),
45552
45563
  name: types.string(),
45553
45564
  color: types.Color(),
@@ -46134,7 +46145,7 @@ const GRID_CELL_REFERENCE_TOP_OFFSET = 28;
46134
46145
  var GridComposer = class extends Component {
46135
46146
  static template = "o-spreadsheet-GridComposer";
46136
46147
  static components = { Composer };
46137
- props = (0, _odoo_owl.props)({
46148
+ props = (0, _odoo_owl.useProps)({
46138
46149
  gridDims: types.DOMDimension(),
46139
46150
  onInputContextMenu: types.function()
46140
46151
  });
@@ -47261,7 +47272,7 @@ var GridOverlay = class extends Component {
47261
47272
  FiguresContainer,
47262
47273
  GridAddRowsFooter
47263
47274
  };
47264
- props = (0, _odoo_owl.props)({
47275
+ props = (0, _odoo_owl.useProps)({
47265
47276
  onCellDoubleClicked: types.function().optional(() => () => {}),
47266
47277
  onCellClicked: types.function().optional(() => () => {}),
47267
47278
  onCellRightClicked: types.function().optional(() => () => {}),
@@ -47378,7 +47389,7 @@ var GridOverlay = class extends Component {
47378
47389
  var GridPopover = class extends Component {
47379
47390
  static template = "o-spreadsheet-GridPopover";
47380
47391
  static components = { Popover };
47381
- props = (0, _odoo_owl.props)({
47392
+ props = (0, _odoo_owl.useProps)({
47382
47393
  onClosePopover: types.function(),
47383
47394
  onMouseWheel: types.function(),
47384
47395
  gridRect: types.Rect()
@@ -47406,7 +47417,7 @@ var GridPopover = class extends Component {
47406
47417
  //#region src/components/headers_overlay/unhide_headers.ts
47407
47418
  var UnhideRowHeaders = class extends Component {
47408
47419
  static template = "o-spreadsheet-UnhideRowHeaders";
47409
- props = (0, _odoo_owl.props)({
47420
+ props = (0, _odoo_owl.useProps)({
47410
47421
  headersGroups: types.array(),
47411
47422
  headerRange: types.object({
47412
47423
  start: types.HeaderIndex(),
@@ -47449,7 +47460,7 @@ var UnhideRowHeaders = class extends Component {
47449
47460
  };
47450
47461
  var UnhideColumnHeaders = class extends Component {
47451
47462
  static template = "o-spreadsheet-UnhideColumnHeaders";
47452
- props = (0, _odoo_owl.props)({
47463
+ props = (0, _odoo_owl.useProps)({
47453
47464
  headersGroups: types.array(),
47454
47465
  headerRange: types.object({
47455
47466
  start: types.HeaderIndex(),
@@ -47489,7 +47500,7 @@ var UnhideColumnHeaders = class extends Component {
47489
47500
  //#region src/components/headers_overlay/headers_overlay.ts
47490
47501
  const resizerPropsDefinition = { onOpenContextMenu: types.function() };
47491
47502
  var AbstractResizer = class extends Component {
47492
- props = (0, _odoo_owl.props)(resizerPropsDefinition);
47503
+ props = (0, _odoo_owl.useProps)(resizerPropsDefinition);
47493
47504
  composerFocusStore;
47494
47505
  PADDING = 0;
47495
47506
  MAX_SIZE_MARGIN = 0;
@@ -47952,7 +47963,7 @@ var RowResizer = class extends AbstractResizer {
47952
47963
  };
47953
47964
  var HeadersOverlay = class extends Component {
47954
47965
  static template = "o-spreadsheet-HeadersOverlay";
47955
- props = (0, _odoo_owl.props)(resizerPropsDefinition);
47966
+ props = (0, _odoo_owl.useProps)(resizerPropsDefinition);
47956
47967
  static components = {
47957
47968
  ColResizer,
47958
47969
  RowResizer
@@ -48948,7 +48959,7 @@ function useWheelHandler(handler) {
48948
48959
  //#region src/components/highlight/border/border.ts
48949
48960
  var Border = class extends Component {
48950
48961
  static template = "o-spreadsheet-Border";
48951
- props = (0, _odoo_owl.props)({
48962
+ props = (0, _odoo_owl.useProps)({
48952
48963
  zone: types.Zone(),
48953
48964
  orientation: types.or([
48954
48965
  types.literal("n"),
@@ -49001,7 +49012,7 @@ var Border = class extends Component {
49001
49012
  const MOBILE_HANDLER_WIDTH = 40;
49002
49013
  var Corner = class extends Component {
49003
49014
  static template = "o-spreadsheet-Corner";
49004
- props = (0, _odoo_owl.props)({
49015
+ props = (0, _odoo_owl.useProps)({
49005
49016
  zone: types.Zone(),
49006
49017
  color: types.Color(),
49007
49018
  orientation: types.or([
@@ -49075,7 +49086,7 @@ var Highlight = class extends Component {
49075
49086
  Corner,
49076
49087
  Border
49077
49088
  };
49078
- props = (0, _odoo_owl.props)({
49089
+ props = (0, _odoo_owl.useProps)({
49079
49090
  range: types.Range(),
49080
49091
  color: types.Color()
49081
49092
  });
@@ -49219,7 +49230,7 @@ var ScrollBar = class extends Component {
49219
49230
  <div t-att-style="this.sizeCss"/>
49220
49231
  </div>
49221
49232
  `;
49222
- props = (0, _odoo_owl.props)({
49233
+ props = (0, _odoo_owl.useProps)({
49223
49234
  width: types.Pixel().optional(1),
49224
49235
  height: types.Pixel().optional(1),
49225
49236
  direction: types.customValidator(types.string(), (direction) => ["horizontal", "vertical"].includes(direction)),
@@ -49265,7 +49276,7 @@ var HorizontalScrollBar = class extends Component {
49265
49276
  direction="'horizontal'"
49266
49277
  onScroll.bind="this.onScroll"
49267
49278
  />`;
49268
- props = (0, _odoo_owl.props)({ leftOffset: types.number().optional(0) });
49279
+ props = (0, _odoo_owl.useProps)({ leftOffset: types.number().optional(0) });
49269
49280
  get offset() {
49270
49281
  return this.env.model.getters.getActiveSheetScrollInfo().scrollX;
49271
49282
  }
@@ -49308,7 +49319,7 @@ var VerticalScrollBar = class extends Component {
49308
49319
  direction="'vertical'"
49309
49320
  onScroll.bind="(offset) => this.onScroll(offset)"
49310
49321
  />`;
49311
- props = (0, _odoo_owl.props)({ topOffset: types.number().optional(0) });
49322
+ props = (0, _odoo_owl.useProps)({ topOffset: types.number().optional(0) });
49312
49323
  get offset() {
49313
49324
  return this.env.model.getters.getActiveSheetScrollInfo().scrollY;
49314
49325
  }
@@ -49359,7 +49370,7 @@ const SIZE = 3;
49359
49370
  const COLOR = "#777";
49360
49371
  var TableResizer = class extends Component {
49361
49372
  static template = "o-spreadsheet-TableResizer";
49362
- props = (0, _odoo_owl.props)({ table: types.Table() });
49373
+ props = (0, _odoo_owl.useProps)({ table: types.Table() });
49363
49374
  state = (0, _odoo_owl.proxy)({ highlightZone: void 0 });
49364
49375
  dragNDropGrid = useDragAndDropBeyondTheViewport(this.env);
49365
49376
  setup() {
@@ -49447,7 +49458,7 @@ var Grid = class extends Component {
49447
49458
  TableResizer,
49448
49459
  Selection
49449
49460
  };
49450
- props = (0, _odoo_owl.props)({
49461
+ props = (0, _odoo_owl.useProps)({
49451
49462
  exposeFocus: types.function(),
49452
49463
  getGridSize: types.function()
49453
49464
  });
@@ -50091,7 +50102,7 @@ supportedPivotPositionalFormulaRegistry.add("SPREADSHEET", false);
50091
50102
  //#region src/components/dashboard/clickable_cell_sort_icon/clickable_cell_sort_icon.ts
50092
50103
  var ClickableCellSortIcon = class extends Component {
50093
50104
  static template = "o-spreadsheet-ClickableCellSortIcon";
50094
- props = (0, _odoo_owl.props)({
50105
+ props = (0, _odoo_owl.useProps)({
50095
50106
  position: types.CellPosition(),
50096
50107
  sortDirection: types.or([types.SortDirection, types.literal("none")])
50097
50108
  });
@@ -50166,7 +50177,7 @@ var FullScreenFigure = class extends Component {
50166
50177
  var PivotHTMLRenderer = class extends Component {
50167
50178
  static template = "o_spreadsheet.PivotHTMLRenderer";
50168
50179
  static components = { Checkbox };
50169
- props = (0, _odoo_owl.props)({
50180
+ props = (0, _odoo_owl.useProps)({
50170
50181
  pivotId: types.UID(),
50171
50182
  onCellClicked: types.function()
50172
50183
  });
@@ -51039,6 +51050,7 @@ var Squisher = class {
51039
51050
  alreadyAppliedNumberOffsets = [];
51040
51051
  previousStrings = [];
51041
51052
  baseFormulaWasTransformed = false;
51053
+ rangeToStringOptions = { doNotSimplifyRange: true };
51042
51054
  baseNumber = void 0;
51043
51055
  constructor(getters) {
51044
51056
  this.getters = getters;
@@ -51094,9 +51106,9 @@ var Squisher = class {
51094
51106
  let references = [];
51095
51107
  if (!this.baseFormula || this.baseFormula.normalizedFormula !== cell.compiledFormula.normalizedFormula) {
51096
51108
  this.resetBaseTo(cell.compiledFormula);
51097
- return cell.compiledFormula.toFormulaString(this.getters);
51109
+ return cell.compiledFormula.toFormulaString(this.getters, this.rangeToStringOptions);
51098
51110
  } 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);
51111
+ 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
51112
  numbers = this.squishNumbers(cell.compiledFormula.literalValues.numbers);
51101
51113
  strings = this.squishStrings(cell.compiledFormula.literalValues.strings);
51102
51114
  references = this.squishReferences(cell.compiledFormula.rangeDependencies, forSheetId);
@@ -51173,23 +51185,23 @@ var Squisher = class {
51173
51185
  squishOneReference(reference, previousReferences, index, forSheetId) {
51174
51186
  const previousReference = previousReferences[index];
51175
51187
  if (deepEquals(previousReference, reference)) return "=";
51176
- if (previousReference.sheetId !== reference.sheetId || previousReference.prefixSheet !== reference.prefixSheet || previousReference.invalidSheetName !== reference.invalidSheetName || previousReference.invalidXc !== reference.invalidXc) {
51188
+ if (previousReference.sheetId !== reference.sheetId || previousReference.prefixSheet !== reference.prefixSheet || previousReference.invalidSheetName !== reference.invalidSheetName || previousReference.invalidXc !== reference.invalidXc || previousReference.parts.length !== reference.parts.length) {
51177
51189
  previousReferences[index] = deepCopy(reference);
51178
- return getRangeString(reference, forSheetId, this.getters.getSheetName);
51190
+ return getRangeString(reference, forSheetId, this.getters.getSheetName, this.rangeToStringOptions);
51179
51191
  }
51180
51192
  if (previousReference.unboundedZone.bottom === void 0 || previousReference.unboundedZone.right === void 0 || reference.unboundedZone.bottom === void 0 || reference.unboundedZone.right === void 0) {
51181
51193
  previousReferences[index] = deepCopy(reference);
51182
- return getRangeString(reference, forSheetId, this.getters.getSheetName);
51194
+ return getRangeString(reference, forSheetId, this.getters.getSheetName, this.rangeToStringOptions);
51183
51195
  }
51184
51196
  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
51197
  previousReferences[index] = deepCopy(reference);
51186
- return getRangeString(reference, forSheetId, this.getters.getSheetName);
51198
+ return getRangeString(reference, forSheetId, this.getters.getSheetName, this.rangeToStringOptions);
51187
51199
  }
51188
51200
  const currentZone = reference.zone;
51189
51201
  const previousZone = previousReference.zone;
51190
51202
  if (currentZone.top !== currentZone.bottom || currentZone.left !== currentZone.right || previousZone.top !== previousZone.bottom || previousZone.left !== previousZone.right) {
51191
51203
  previousReferences[index] = deepCopy(reference);
51192
- return getRangeString(reference, forSheetId, this.getters.getSheetName);
51204
+ return getRangeString(reference, forSheetId, this.getters.getSheetName, this.rangeToStringOptions);
51193
51205
  }
51194
51206
  const diffCol = reference.zone.left - previousReference.zone.left;
51195
51207
  const diffRow = reference.zone.top - previousReference.zone.top;
@@ -51197,7 +51209,7 @@ var Squisher = class {
51197
51209
  previousReference.unboundedZone = deepCopy(reference.unboundedZone);
51198
51210
  if (diffCol !== 0 && diffRow === 0) return `${diffCol > 0 ? "+" : "-"}C${Math.abs(diffCol)}`;
51199
51211
  else if (diffRow !== 0 && diffCol === 0) return `${diffRow > 0 ? "+" : "-"}R${Math.abs(diffRow)}`;
51200
- return getRangeString(reference, forSheetId, this.getters.getSheetName);
51212
+ return getRangeString(reference, forSheetId, this.getters.getSheetName, this.rangeToStringOptions);
51201
51213
  }
51202
51214
  /**
51203
51215
  * Squish the number parameters. Result for each parameter should be compared the previous formula.
@@ -51406,10 +51418,19 @@ var Unsquisher = class {
51406
51418
  case "FIRST_OFFSET": {
51407
51419
  const currentOffset = current;
51408
51420
  this.previousOffset = currentOffset;
51409
- for (const position of targetPositions) yield {
51410
- position,
51411
- compiled: this.unsquishFormula(currentOffset, sheetId, getters)
51412
- };
51421
+ for (const position of targetPositions) {
51422
+ const result = this.unsquishFormula(currentOffset, sheetId, getters);
51423
+ if (!result.areRangeShapesInLineWithNormalizedFormula()) {
51424
+ const formulaString = result.toFormulaString(getters);
51425
+ yield {
51426
+ position,
51427
+ compiled: CompiledFormula.Compile(formulaString, sheetId, getters)
51428
+ };
51429
+ } else yield {
51430
+ position,
51431
+ compiled: result
51432
+ };
51433
+ }
51413
51434
  break;
51414
51435
  }
51415
51436
  case "COMBINE_OFFSET": {
@@ -51418,10 +51439,19 @@ var Unsquisher = class {
51418
51439
  this.previousOffset.N = currentOffset.N ?? this.previousOffset.N;
51419
51440
  this.previousOffset.S = currentOffset.S ?? this.previousOffset.S;
51420
51441
  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
- };
51442
+ for (const position of targetPositions) {
51443
+ const result = this.unsquishFormula(this.previousOffset, sheetId, getters);
51444
+ if (!result.areRangeShapesInLineWithNormalizedFormula()) {
51445
+ const formulaString = result.toFormulaString(getters);
51446
+ yield {
51447
+ position,
51448
+ compiled: CompiledFormula.Compile(formulaString, sheetId, getters)
51449
+ };
51450
+ } else yield {
51451
+ position,
51452
+ compiled: result
51453
+ };
51454
+ }
51425
51455
  break;
51426
51456
  }
51427
51457
  case "NEW_NUMBER":
@@ -53026,11 +53056,16 @@ var DefaultPlugin = class extends CorePlugin {
53026
53056
  const deltaStyle = {};
53027
53057
  let hasDelta = false;
53028
53058
  const styleSheet = this.style[position.sheetId];
53029
- if (!styleSheet) continue;
53030
53059
  for (const key in newDefaultStyle) {
53031
53060
  if (key in cellStyle) continue;
53032
- const defaults = styleSheet[key];
53033
- if (!defaults) continue;
53061
+ const defaults = styleSheet?.[key];
53062
+ if (!defaults) {
53063
+ if (newDefaultStyle[key] !== DEFAULT_STYLE[key]) {
53064
+ deltaStyle[key] = DEFAULT_STYLE[key];
53065
+ hasDelta = true;
53066
+ }
53067
+ continue;
53068
+ }
53034
53069
  const rowDefault = defaults.rowDefault?.[position.row];
53035
53070
  if (rowDefault !== void 0) {
53036
53071
  if (priorities.shouldUseDefaultRow) {
@@ -53072,7 +53107,8 @@ var DefaultPlugin = class extends CorePlugin {
53072
53107
  for (const key in styleSheet) if (!(key in style)) {
53073
53108
  const defaults = styleSheet[key];
53074
53109
  if (!defaults) continue;
53075
- style[key] = defaults.rowDefault?.[position.row] ?? defaults.colDefault?.[position.col] ?? defaults.sheetDefault;
53110
+ const styleValue = defaults.rowDefault?.[position.row] ?? defaults.colDefault?.[position.col] ?? defaults.sheetDefault;
53111
+ if (styleValue !== void 0) style[key] = styleValue;
53076
53112
  }
53077
53113
  return style;
53078
53114
  }
@@ -58904,13 +58940,13 @@ var EvaluationConditionalFormatPlugin = class extends CoreViewPlugin {
58904
58940
  const minValue = this.parsePoint(sheetId, range, rule.minimum, "min");
58905
58941
  const midValue = rule.midpoint ? this.parsePoint(sheetId, range, rule.midpoint) : null;
58906
58942
  const maxValue = this.parsePoint(sheetId, range, rule.maximum, "max");
58907
- if (minValue === null || maxValue === null || minValue >= maxValue || midValue && (minValue >= midValue || midValue >= maxValue)) return;
58943
+ if (minValue === null || maxValue === null || minValue >= maxValue || midValue !== null && (minValue >= midValue || midValue >= maxValue)) return;
58908
58944
  const zone = this.getters.getRangeFromSheetXC(sheetId, range).zone;
58909
58945
  const colorThresholds = [{
58910
58946
  value: minValue,
58911
58947
  color: rule.minimum.color
58912
58948
  }];
58913
- if (rule.midpoint && midValue) colorThresholds.push({
58949
+ if (rule.midpoint && midValue !== null) colorThresholds.push({
58914
58950
  value: midValue,
58915
58951
  color: rule.midpoint.color
58916
58952
  });
@@ -61260,7 +61296,12 @@ var TableComputedStylePlugin = class extends UIPlugin {
61260
61296
  computeTableStyle(sheetId, table) {
61261
61297
  return lazy(() => {
61262
61298
  const style = this.getters.getTableStyle(table.config.styleId);
61263
- const { tableMetaData, config } = this.getTableMetaData(sheetId, table);
61299
+ const tableMetaDataAndConfig = this.getTableMetaData(sheetId, table);
61300
+ if (!tableMetaDataAndConfig) return {
61301
+ borders: {},
61302
+ styles: {}
61303
+ };
61304
+ const { tableMetaData, config } = tableMetaDataAndConfig;
61264
61305
  const relativeTableStyle = getComputedTableStyle(config, style, tableMetaData);
61265
61306
  const mapping = this.getTableMapping(sheetId, table);
61266
61307
  const absoluteTableStyle = {
@@ -61298,6 +61339,7 @@ var TableComputedStylePlugin = class extends UIPlugin {
61298
61339
  const pivotInfo = this.getters.getPivotStyleAtPosition(mainPosition);
61299
61340
  if (!pivotInfo) throw new Error("No dynamic pivot info found at pivot table position");
61300
61341
  const pivot = this.getters.getPivot(pivotInfo.pivotId);
61342
+ if (!pivot.isValid()) return;
61301
61343
  const pivotStyle = pivotInfo.pivotStyle;
61302
61344
  const maxRowDepth = pivot.getExpandedTableStructure().getNumberOfRowGroupBys();
61303
61345
  const pivotTable = pivot.getCollapsedTableStructure();
@@ -66369,7 +66411,9 @@ var GridSelectionPlugin = class extends UIPlugin {
66369
66411
  ctx.lineWidth = 1.5 * thinLineWidth;
66370
66412
  const isDarkMode = this.getters.isDarkMode();
66371
66413
  for (const zone of zones) {
66414
+ if (!viewports.isZoneVisibleInViewport(sheetId, zone)) continue;
66372
66415
  const { x, y, width, height } = viewports.getVisibleRect(sheetId, zone);
66416
+ const currentLineWidth = ctx.lineWidth;
66373
66417
  if (!isDarkMode) ctx.globalCompositeOperation = "multiply";
66374
66418
  if (height === 0 || width === 0) ctx.lineWidth = 3 * thinLineWidth;
66375
66419
  if (height === 0 && width === 0) {
@@ -66383,6 +66427,7 @@ var GridSelectionPlugin = class extends UIPlugin {
66383
66427
  ctx.globalCompositeOperation = "source-over";
66384
66428
  ctx.strokeRect(x, y, width, height);
66385
66429
  }
66430
+ ctx.lineWidth = currentLineWidth;
66386
66431
  }
66387
66432
  ctx.globalCompositeOperation = "source-over";
66388
66433
  const position = renderingContext.activePosition;
@@ -66529,6 +66574,9 @@ var InternalViewport = class {
66529
66574
  this.adjustViewportZoneX();
66530
66575
  this.adjustViewportZoneY();
66531
66576
  }
66577
+ isZoneVisible(zone) {
66578
+ return intersection(zone, this) !== void 0;
66579
+ }
66532
66580
  /**
66533
66581
  *
66534
66582
  * Computes the visible coordinates & dimensions of a given zone inside the viewport
@@ -66809,6 +66857,9 @@ var ViewportCollection = class {
66809
66857
  isVisibleInViewport({ sheetId, col, row }) {
66810
66858
  return this.getSubViewports(sheetId).some((pane) => pane.isVisible(col, row));
66811
66859
  }
66860
+ isZoneVisibleInViewport(sheetId, zone) {
66861
+ return this.getSubViewports(sheetId).some((pane) => pane.isZoneVisible(zone));
66862
+ }
66812
66863
  getScrollBarWidth() {
66813
66864
  return 15 / this.zoomLevel;
66814
66865
  }
@@ -68637,7 +68688,7 @@ const RIPPLE_KEY_FRAMES = [
68637
68688
  ];
68638
68689
  var RippleEffect = class extends Component {
68639
68690
  static template = "o-spreadsheet-RippleEffect";
68640
- props = (0, _odoo_owl.props)({
68691
+ props = (0, _odoo_owl.useProps)({
68641
68692
  x: types.string(),
68642
68693
  y: types.string(),
68643
68694
  color: types.string(),
@@ -68690,7 +68741,7 @@ var RippleEffect = class extends Component {
68690
68741
  var Ripple = class extends Component {
68691
68742
  static template = "o-spreadsheet-Ripple";
68692
68743
  static components = { RippleEffect };
68693
- props = (0, _odoo_owl.props)({
68744
+ props = (0, _odoo_owl.useProps)({
68694
68745
  color: types.string().optional("#aaaaaa"),
68695
68746
  opacity: types.number().optional(.4),
68696
68747
  duration: types.number().optional(800),
@@ -68968,7 +69019,7 @@ var BottomBarSheet = class extends Component {
68968
69019
  Ripple,
68969
69020
  ColorPicker
68970
69021
  };
68971
- props = (0, _odoo_owl.props)({
69022
+ props = (0, _odoo_owl.useProps)({
68972
69023
  sheetId: types.string(),
68973
69024
  openContextMenu: types.function(),
68974
69025
  style: types.string().optional(""),
@@ -69258,7 +69309,7 @@ var AggregateStatisticsStore = class extends SpreadsheetStore {
69258
69309
  var BottomBarStatistic = class extends Component {
69259
69310
  static template = "o-spreadsheet-BottomBarStatistic";
69260
69311
  static components = { Ripple };
69261
- props = (0, _odoo_owl.props)({
69312
+ props = (0, _odoo_owl.useProps)({
69262
69313
  openContextMenu: types.function(),
69263
69314
  closeContextMenu: types.function()
69264
69315
  });
@@ -69312,7 +69363,7 @@ var BottomBarStatistic = class extends Component {
69312
69363
  const SHEET_LIST_MENU_MAX_HEIGHT = 250;
69313
69364
  var BottomBar = class extends Component {
69314
69365
  static template = "o-spreadsheet-BottomBar";
69315
- props = (0, _odoo_owl.props)({ onClick: types.function() });
69366
+ props = (0, _odoo_owl.useProps)({ onClick: types.function() });
69316
69367
  static components = {
69317
69368
  MenuPopover,
69318
69369
  Ripple,
@@ -69595,7 +69646,7 @@ var SpreadsheetDashboard = class extends Component {
69595
69646
  VerticalScrollBar,
69596
69647
  HorizontalScrollBar
69597
69648
  };
69598
- props = (0, _odoo_owl.props)({ getGridSize: types.function() });
69649
+ props = (0, _odoo_owl.useProps)({ getGridSize: types.function() });
69599
69650
  cellPopovers;
69600
69651
  onMouseWheel;
69601
69652
  canvasPosition;
@@ -69700,10 +69751,13 @@ var SpreadsheetDashboard = class extends Component {
69700
69751
  return this.env.model.getters.getColDimensions(sheetId, right).end;
69701
69752
  }
69702
69753
  get dashboardStyle() {
69703
- return cssPropertiesToCss({ zoom: `${this.env.model.getters.getViewportZoomLevel()}` });
69754
+ const style = { zoom: `${this.env.model.getters.getViewportZoomLevel()}` };
69755
+ if (this.env.model.getters.getActiveSheet().backgroundColor) style["background-color"] = "transparent";
69756
+ return cssPropertiesToCss(style);
69704
69757
  }
69705
69758
  get backgroundStyle() {
69706
- return cssPropertiesToCss({ "background-color": this.env.model.getters.getActiveSheet().backgroundColor || "var(--os-white-bg)" });
69759
+ const sheet = this.env.model.getters.getActiveSheet();
69760
+ return sheet.backgroundColor ? cssPropertiesToCss({ "background-color": sheet.backgroundColor }) : "";
69707
69761
  }
69708
69762
  };
69709
69763
 
@@ -69711,7 +69765,7 @@ var SpreadsheetDashboard = class extends Component {
69711
69765
  //#region src/components/header_group/header_group.ts
69712
69766
  var AbstractHeaderGroup = class extends Component {
69713
69767
  static template = "o-spreadsheet-HeaderGroup";
69714
- props = (0, _odoo_owl.props)({
69768
+ props = (0, _odoo_owl.useProps)({
69715
69769
  group: types.HeaderGroup(),
69716
69770
  layerOffset: types.number(),
69717
69771
  openContextMenu: types.function()
@@ -69865,7 +69919,7 @@ var HeaderGroupContainer = class extends Component {
69865
69919
  ColGroup,
69866
69920
  MenuPopover
69867
69921
  };
69868
- props = (0, _odoo_owl.props)({
69922
+ props = (0, _odoo_owl.useProps)({
69869
69923
  dimension: types.Dimension(),
69870
69924
  layers: types.array()
69871
69925
  });
@@ -69941,7 +69995,7 @@ function useScreenWidth() {
69941
69995
  //#region src/components/side_panel/side_panel/side_panel.ts
69942
69996
  var SidePanel = class extends Component {
69943
69997
  static template = "o-spreadsheet-SidePanel";
69944
- props = (0, _odoo_owl.props)({
69998
+ props = (0, _odoo_owl.useProps)({
69945
69999
  panelContent: types.SidePanelContent(),
69946
70000
  panelProps: types.SidePanelComponentProps(),
69947
70001
  onCloseSidePanel: types.function(),
@@ -70035,7 +70089,7 @@ var SidePanels = class extends Component {
70035
70089
  var RibbonMenu = class extends Component {
70036
70090
  static template = "o-spreadsheet-RibbonMenu";
70037
70091
  static components = { Menu };
70038
- props = (0, _odoo_owl.props)({ onClose: types.function() });
70092
+ props = (0, _odoo_owl.useProps)({ onClose: types.function() });
70039
70093
  rootItems = topbarMenuRegistry.getMenuItems();
70040
70094
  menuRef = (0, _odoo_owl.signal)(null);
70041
70095
  containerRef = (0, _odoo_owl.signal)(null);
@@ -70106,7 +70160,7 @@ var SmallBottomBar = class extends Component {
70106
70160
  RibbonMenu
70107
70161
  };
70108
70162
  static template = "o-spreadsheet-SmallBottomBar";
70109
- props = (0, _odoo_owl.props)({ onClick: types.function() });
70163
+ props = (0, _odoo_owl.useProps)({ onClick: types.function() });
70110
70164
  composerFocusStore;
70111
70165
  composerStore;
70112
70166
  composerInterface;
@@ -70307,7 +70361,7 @@ var FigureRendererStore = class extends DisposableStore {
70307
70361
  //#region src/components/standalone_grid_canvas/standalone_grid_canvas.ts
70308
70362
  var StandaloneGridCanvas = class extends Component {
70309
70363
  static template = "o-spreadsheet-StandaloneGridCanvas";
70310
- props = (0, _odoo_owl.props)({
70364
+ props = (0, _odoo_owl.useProps)({
70311
70365
  sheetId: types.UID(),
70312
70366
  zone: types.Zone(),
70313
70367
  renderingCtx: types.object()
@@ -70632,7 +70686,7 @@ var SpreadsheetPrintStore = class extends SpreadsheetStore {
70632
70686
  //#region src/components/spreadsheet_print/spreadsheet_print.ts
70633
70687
  var SpreadsheetPrint = class extends Component {
70634
70688
  static template = "o-spreadsheet-SpreadsheetPrint";
70635
- props = (0, _odoo_owl.props)({ onExitPrintMode: types.function() });
70689
+ props = (0, _odoo_owl.useProps)({ onExitPrintMode: types.function() });
70636
70690
  static components = {
70637
70691
  StandaloneGridCanvas,
70638
70692
  Section,
@@ -70882,18 +70936,28 @@ var NamedRangeSelector = class extends Component {
70882
70936
  return;
70883
70937
  }
70884
70938
  const activeSheetId = this.env.model.getters.getActiveSheetId();
70885
- if (activeSheetId !== sheetId) this.env.model.dispatch("ACTIVATE_SHEET", {
70886
- sheetIdFrom: activeSheetId,
70887
- sheetIdTo: sheetId
70888
- });
70889
- this.env.model.selection.selectCell(zone.right, zone.bottom);
70939
+ if (activeSheetId !== sheetId) {
70940
+ if (!this.env.model.getters.getSheet(sheetId).isVisible) {
70941
+ this.env.notifyUser({
70942
+ text: _t("The sheet on which the range is defined is hidden."),
70943
+ type: "info",
70944
+ sticky: false
70945
+ });
70946
+ return;
70947
+ }
70948
+ this.env.model.dispatch("ACTIVATE_SHEET", {
70949
+ sheetIdFrom: activeSheetId,
70950
+ sheetIdTo: sheetId
70951
+ });
70952
+ }
70953
+ this.env.model.selection.selectCell(zone.right, zone.bottom, { allowsHiddenSelection: true });
70890
70954
  this.env.model.selection.selectZone({
70891
70955
  cell: {
70892
70956
  col: zone.left,
70893
70957
  row: zone.top
70894
70958
  },
70895
70959
  zone
70896
- });
70960
+ }, { allowsHiddenSelection: true });
70897
70961
  }
70898
70962
  get selectionKey() {
70899
70963
  return `${this.env.model.getters.getActiveSheetId()}-${zoneToXc(this.selectedZone)}`;
@@ -70964,7 +71028,7 @@ var BorderEditor = class extends Component {
70964
71028
  ColorPickerWidget,
70965
71029
  Popover
70966
71030
  };
70967
- props = (0, _odoo_owl.props)({
71031
+ props = (0, _odoo_owl.useProps)({
70968
71032
  class: types.string().optional(),
70969
71033
  currentBorderColor: types.Color(),
70970
71034
  currentBorderStyle: types.BorderStyle(),
@@ -71036,7 +71100,7 @@ var BorderEditor = class extends Component {
71036
71100
  var BorderEditorWidget = class extends Component {
71037
71101
  static template = "o-spreadsheet-BorderEditorWidget";
71038
71102
  static components = { BorderEditor };
71039
- props = (0, _odoo_owl.props)({
71103
+ props = (0, _odoo_owl.useProps)({
71040
71104
  disabled: types.boolean().optional(),
71041
71105
  dropdownMaxHeight: types.Pixel().optional(),
71042
71106
  class: types.string().optional()
@@ -71097,7 +71161,7 @@ var BorderEditorWidget = class extends Component {
71097
71161
  //#region src/components/paint_format_button/paint_format_button.ts
71098
71162
  var PaintFormatButton = class extends Component {
71099
71163
  static template = "o-spreadsheet-PaintFormatButton";
71100
- props = (0, _odoo_owl.props)({ class: types.string().optional() });
71164
+ props = (0, _odoo_owl.useProps)({ class: types.string().optional() });
71101
71165
  paintFormatStore;
71102
71166
  setup() {
71103
71167
  this.paintFormatStore = useStore(PaintFormatStore);
@@ -71122,7 +71186,7 @@ var TableDropdownButton = class extends Component {
71122
71186
  TableStylesPopover,
71123
71187
  ActionButton
71124
71188
  };
71125
- props = (0, _odoo_owl.props)({ class: types.string().optional() });
71189
+ props = (0, _odoo_owl.useProps)({ class: types.string().optional() });
71126
71190
  topBarToolStore;
71127
71191
  state = (0, _odoo_owl.proxy)({ popoverProps: void 0 });
71128
71192
  setup() {
@@ -71216,7 +71280,7 @@ var TableDropdownButton = class extends Component {
71216
71280
  var TopBarColorEditor = class extends Component {
71217
71281
  static components = { ColorPickerWidget };
71218
71282
  static template = "o-spreadsheet-ColorEditor";
71219
- props = (0, _odoo_owl.props)({
71283
+ props = (0, _odoo_owl.useProps)({
71220
71284
  class: types.string(),
71221
71285
  style: types.or([types.literal("textColor"), types.literal("fillColor")]),
71222
71286
  icon: types.string(),
@@ -71264,7 +71328,7 @@ var DropdownAction = class extends Component {
71264
71328
  ActionButton,
71265
71329
  Popover
71266
71330
  };
71267
- props = (0, _odoo_owl.props)({
71331
+ props = (0, _odoo_owl.useProps)({
71268
71332
  parentAction: types.ActionSpec(),
71269
71333
  childActions: types.array(types.ActionSpec()),
71270
71334
  class: types.string(),
@@ -71297,7 +71361,7 @@ var DropdownAction = class extends Component {
71297
71361
  var TopBarFontSizeEditor = class extends Component {
71298
71362
  static components = { FontSizeEditor };
71299
71363
  static template = "o-spreadsheet-TopBarFontSizeEditor";
71300
- props = (0, _odoo_owl.props)({ class: types.string() });
71364
+ props = (0, _odoo_owl.useProps)({ class: types.string() });
71301
71365
  topBarToolStore;
71302
71366
  setup() {
71303
71367
  this.topBarToolStore = useToolBarDropdownStore();
@@ -71331,7 +71395,7 @@ var NumberFormatsTool = class extends Component {
71331
71395
  MenuPopover,
71332
71396
  ActionButton
71333
71397
  };
71334
- props = (0, _odoo_owl.props)({ class: types.string() });
71398
+ props = (0, _odoo_owl.useProps)({ class: types.string() });
71335
71399
  formatNumberMenuItemSpec = formatNumberMenuItemSpec;
71336
71400
  topBarToolStore;
71337
71401
  buttonRef = (0, _odoo_owl.signal)(null);
@@ -71366,7 +71430,7 @@ var NumberFormatsTool = class extends Component {
71366
71430
  var ToolBarZoom = class extends Component {
71367
71431
  static template = "o-spreadsheet-TopBarZoom";
71368
71432
  static components = { NumberEditor };
71369
- props = (0, _odoo_owl.props)({ class: types.string() });
71433
+ props = (0, _odoo_owl.useProps)({ class: types.string() });
71370
71434
  topBarToolStore;
71371
71435
  valueList = ZOOM_VALUES;
71372
71436
  setup() {
@@ -71592,7 +71656,7 @@ topBarToolBarRegistry.add("edit").addChild("edit", {
71592
71656
  //#region src/components/top_bar/top_bar.ts
71593
71657
  var TopBar = class extends Component {
71594
71658
  static template = "o-spreadsheet-TopBar";
71595
- props = (0, _odoo_owl.props)({
71659
+ props = (0, _odoo_owl.useProps)({
71596
71660
  onClick: types.function(),
71597
71661
  dropdownMaxHeight: types.Pixel()
71598
71662
  });
@@ -71870,7 +71934,7 @@ var WebClipboardWrapper = class {
71870
71934
  //#region src/components/spreadsheet/spreadsheet.ts
71871
71935
  var Spreadsheet = class extends Component {
71872
71936
  static template = "o-spreadsheet-Spreadsheet";
71873
- props = (0, _odoo_owl.props)({
71937
+ props = (0, _odoo_owl.useProps)({
71874
71938
  model: types.Model(),
71875
71939
  notifyUser: types.function().optional(),
71876
71940
  raiseError: types.function().optional(),
@@ -77172,8 +77236,8 @@ var DefaultClipboardHandler = class extends AbstractCellClipboardHandler {
77172
77236
  for (const key in DEFAULT_STYLE) {
77173
77237
  content.style[key] = {
77174
77238
  sheetDefault: this.getters.getDefaultStyle(data.sheetId, key, "SHEET", void 0) ?? DEFAULT_STYLE[key],
77175
- colDefault: {},
77176
- rowDefault: {}
77239
+ colDefault: [],
77240
+ rowDefault: []
77177
77241
  };
77178
77242
  let colIndex = 0;
77179
77243
  for (const col of data.columnsIndexes) {
@@ -77190,20 +77254,41 @@ var DefaultClipboardHandler = class extends AbstractCellClipboardHandler {
77190
77254
  }
77191
77255
  return content;
77192
77256
  }
77193
- clearStyleFormat(sheetId, zone) {
77194
- this.dispatch("SET_FORMATTING", {
77195
- sheetId,
77196
- target: [zone],
77197
- format: ""
77198
- });
77257
+ adaptContentToZone(zone, content) {
77258
+ const colRepetition = Math.max(Math.floor((zone.right - zone.left + 1) / content.width), 1);
77259
+ const rowRepetition = Math.max(Math.floor((zone.bottom - zone.top + 1) / content.height), 1);
77260
+ if (colRepetition === 1 && rowRepetition === 1) return content;
77261
+ const newContent = deepCopy(content);
77262
+ newContent.height *= rowRepetition;
77263
+ newContent.width *= colRepetition;
77264
+ if (rowRepetition > 1 && newContent.format.rowDefault) {
77265
+ newContent.format.rowDefault.length = content.height;
77266
+ newContent.format.rowDefault = repeat(newContent.format.rowDefault, rowRepetition);
77267
+ }
77268
+ if (colRepetition > 1 && newContent.format.colDefault) {
77269
+ newContent.format.colDefault.length = content.width;
77270
+ newContent.format.colDefault = repeat(newContent.format.colDefault, colRepetition);
77271
+ }
77272
+ for (const key in content.style) {
77273
+ if (rowRepetition > 1 && newContent.style[key].rowDefault) {
77274
+ newContent.style[key].rowDefault.length = content.height;
77275
+ newContent.style[key].rowDefault = repeat(newContent.style[key].rowDefault, rowRepetition);
77276
+ }
77277
+ if (colRepetition > 1 && newContent.style[key].colDefault) {
77278
+ newContent.style[key].colDefault.length = content.width;
77279
+ newContent.style[key].colDefault = repeat(newContent.style[key].colDefault, colRepetition);
77280
+ }
77281
+ }
77282
+ return newContent;
77199
77283
  }
77200
77284
  paste(target, content, options) {
77201
77285
  const sheetId = target.sheetId;
77202
77286
  if (options.pasteOption === "asValue") return;
77203
77287
  const zones = target.zones;
77204
- if (!options.isCutOperation) for (const zone of zones) for (const pasteZone of splitZoneForPaste(zone, content.width, content.height)) {
77205
- this.pasteStyle(sheetId, pasteZone.left, pasteZone.top, content.width, content.height, content.style);
77206
- this.pasteFormat(sheetId, pasteZone.left, pasteZone.top, content.width, content.height, content.format);
77288
+ if (!options.isCutOperation) for (const zone of zones) {
77289
+ const newContent = this.adaptContentToZone(zone, content);
77290
+ this.pasteStyle(sheetId, zone.left, zone.top, newContent.width, newContent.height, newContent.style);
77291
+ this.pasteFormat(sheetId, zone.left, zone.top, newContent.width, newContent.height, newContent.format);
77207
77292
  }
77208
77293
  else {
77209
77294
  this.clearClippedZones(content);
@@ -77316,7 +77401,7 @@ var DefaultClipboardHandler = class extends AbstractCellClipboardHandler {
77316
77401
  const commands = [];
77317
77402
  for (const [zoneStr, [zone, priority]] of Object.entries(zones)) {
77318
77403
  const format = updateCells[zoneStr];
77319
- commands.push([
77404
+ if (format !== void 0) commands.push([
77320
77405
  priority,
77321
77406
  zone,
77322
77407
  format
@@ -77666,7 +77751,7 @@ const ERROR_TOOLTIP_MAX_HEIGHT = 80;
77666
77751
  var ErrorToolTip = class extends Component {
77667
77752
  static maxSize = { maxHeight: ERROR_TOOLTIP_MAX_HEIGHT };
77668
77753
  static template = "o-spreadsheet-ErrorToolTip";
77669
- props = (0, _odoo_owl.props)({
77754
+ props = (0, _odoo_owl.useProps)({
77670
77755
  cellPosition: types.CellPosition(),
77671
77756
  onClosed: types.function().optional()
77672
77757
  });
@@ -77750,7 +77835,7 @@ var FilterMenu = class extends Component {
77750
77835
  SidePanelCollapsible,
77751
77836
  FilterMenuCriterion
77752
77837
  };
77753
- props = (0, _odoo_owl.props)({
77838
+ props = (0, _odoo_owl.useProps)({
77754
77839
  filterPosition: types.Position(),
77755
77840
  onClosed: types.function().optional()
77756
77841
  });
@@ -77930,7 +78015,7 @@ const FilterMenuPopoverBuilder = { onOpen: (position, getters) => {
77930
78015
  //#region src/components/link/link_display/link_display.ts
77931
78016
  var LinkDisplay = class extends Component {
77932
78017
  static template = "o-spreadsheet-LinkDisplay";
77933
- props = (0, _odoo_owl.props)({
78018
+ props = (0, _odoo_owl.useProps)({
77934
78019
  cellPosition: types.CellPosition(),
77935
78020
  onClosed: types.function().optional()
77936
78021
  });
@@ -78004,7 +78089,7 @@ const LinkCellPopoverBuilder = { onHover: (position, getters) => {
78004
78089
  var LinkEditor = class extends Component {
78005
78090
  static template = "o-spreadsheet-LinkEditor";
78006
78091
  static components = { MenuPopover };
78007
- props = (0, _odoo_owl.props)({
78092
+ props = (0, _odoo_owl.useProps)({
78008
78093
  cellPosition: types.CellPosition(),
78009
78094
  onClosed: types.function().optional()
78010
78095
  });
@@ -87742,6 +87827,6 @@ exports.stores = stores;
87742
87827
  exports.tokenColors = tokenColors;
87743
87828
  exports.tokenize = tokenize;
87744
87829
 
87745
- __info__.version = "19.4.1";
87746
- __info__.date = "2026-07-01T05:05:19.248Z";
87747
- __info__.hash = "e359501";
87830
+ __info__.version = "19.4.3";
87831
+ __info__.date = "2026-07-20T11:02:36.941Z";
87832
+ __info__.hash = "d32e61b";