@odoo/o-spreadsheet 19.4.0-alpha.10 → 19.4.0-alpha.11

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.
Files changed (191) hide show
  1. package/dist/o_spreadsheet.cjs +1341 -1754
  2. package/dist/o_spreadsheet.css +3 -3
  3. package/dist/o_spreadsheet.esm.js +1340 -1755
  4. package/dist/o_spreadsheet.iife.js +1341 -1754
  5. package/dist/o_spreadsheet.min.iife.js +276 -276
  6. package/dist/o_spreadsheet.xml +10 -3
  7. package/dist/types/components/action_button/action_button.d.ts +8 -29
  8. package/dist/types/components/animation/ripple.d.ts +33 -92
  9. package/dist/types/components/autofill/autofill.d.ts +5 -9
  10. package/dist/types/components/border_editor/border_editor.d.ts +18 -43
  11. package/dist/types/components/border_editor/border_editor_widget.d.ts +6 -20
  12. package/dist/types/components/bottom_bar/bottom_bar.d.ts +4 -7
  13. package/dist/types/components/bottom_bar/bottom_bar_sheet/bottom_bar_sheet.d.ts +8 -22
  14. package/dist/types/components/bottom_bar/bottom_bar_statistic/bottom_bar_statistic.d.ts +5 -10
  15. package/dist/types/components/collaborative_client_tag/collaborative_client_tag.d.ts +8 -17
  16. package/dist/types/components/color_picker/color_picker.d.ts +13 -30
  17. package/dist/types/components/color_picker/color_picker_widget.d.ts +12 -40
  18. package/dist/types/components/composer/autocomplete_dropdown/autocomplete_dropdown.d.ts +7 -17
  19. package/dist/types/components/composer/composer/composer.d.ts +18 -63
  20. package/dist/types/components/composer/formula_assistant/formula_assistant.d.ts +8 -17
  21. package/dist/types/components/composer/grid_composer/grid_composer.d.ts +8 -13
  22. package/dist/types/components/composer/speech_bubble/speech_bubble.d.ts +5 -10
  23. package/dist/types/components/composer/standalone_composer/standalone_composer.d.ts +16 -62
  24. package/dist/types/components/composer/top_bar_composer/top_bar_composer.d.ts +1 -2
  25. package/dist/types/components/dashboard/clickable_cell_sort_icon/clickable_cell_sort_icon.d.ts +5 -11
  26. package/dist/types/components/dashboard/dashboard.d.ts +4 -8
  27. package/dist/types/components/error_tooltip/error_tooltip.d.ts +5 -14
  28. package/dist/types/components/figures/chart/chartJs/chartjs.d.ts +5 -14
  29. package/dist/types/components/figures/chart/chart_dashboard_menu/chart_dashboard_menu.d.ts +7 -15
  30. package/dist/types/components/figures/chart/gauge/gauge_chart_component.d.ts +5 -13
  31. package/dist/types/components/figures/chart/scorecard/chart_scorecard.d.ts +5 -14
  32. package/dist/types/components/figures/figure/figure.d.ts +10 -30
  33. package/dist/types/components/figures/figure_carousel/figure_carousel.d.ts +8 -24
  34. package/dist/types/components/figures/figure_chart/figure_chart.d.ts +7 -24
  35. package/dist/types/components/figures/figure_container/figure_container.d.ts +1 -4
  36. package/dist/types/components/figures/figure_image/figure_image.d.ts +6 -19
  37. package/dist/types/components/filters/filter_menu/filter_menu.d.ts +2 -13
  38. package/dist/types/components/filters/filter_menu_criterion/filter_menu_criterion.d.ts +6 -13
  39. package/dist/types/components/filters/filter_menu_item/filter_menu_value_item.d.ts +9 -21
  40. package/dist/types/components/filters/filter_menu_value_list/filter_menu_value_list.d.ts +12 -11
  41. package/dist/types/components/filters/pivot_filter_menu/pivot_filter_menu.d.ts +13 -28
  42. package/dist/types/components/font_size_editor/font_size_editor.d.ts +10 -25
  43. package/dist/types/components/full_screen_figure/full_screen_figure.d.ts +1 -2
  44. package/dist/types/components/generic_input/generic_input.d.ts +16 -45
  45. package/dist/types/components/grid/grid.d.ts +5 -10
  46. package/dist/types/components/grid_add_rows_footer/grid_add_rows_footer.d.ts +1 -5
  47. package/dist/types/components/grid_overlay/grid_overlay.d.ts +11 -37
  48. package/dist/types/components/grid_popover/grid_popover.d.ts +6 -13
  49. package/dist/types/components/header_group/header_group.d.ts +7 -12
  50. package/dist/types/components/header_group/header_group_container.d.ts +6 -11
  51. package/dist/types/components/headers_overlay/headers_overlay.d.ts +10 -16
  52. package/dist/types/components/headers_overlay/unhide_headers.d.ts +19 -30
  53. package/dist/types/components/highlight/border/border.d.ts +7 -16
  54. package/dist/types/components/highlight/corner/corner.d.ts +8 -18
  55. package/dist/types/components/highlight/highlight/highlight.d.ts +6 -11
  56. package/dist/types/components/icon_picker/icon_picker.d.ts +4 -8
  57. package/dist/types/components/link/link_display/link_display.d.ts +6 -13
  58. package/dist/types/components/link/link_editor/link_editor.d.ts +6 -13
  59. package/dist/types/components/menu/menu.d.ts +14 -55
  60. package/dist/types/components/menu_popover/menu_popover.d.ts +22 -69
  61. package/dist/types/components/named_range_selector/named_range_selector.d.ts +1 -4
  62. package/dist/types/components/number_editor/number_editor.d.ts +18 -54
  63. package/dist/types/components/number_input/number_input.d.ts +1 -52
  64. package/dist/types/components/paint_format_button/paint_format_button.d.ts +4 -11
  65. package/dist/types/components/pivot_html_renderer/pivot_html_renderer.d.ts +5 -9
  66. package/dist/types/components/popover/popover.d.ts +18 -69
  67. package/dist/types/components/props_validation.d.ts +181 -0
  68. package/dist/types/components/scrollbar/scrollbar.d.ts +13 -11
  69. package/dist/types/components/scrollbar/scrollbar_horizontal.d.ts +5 -13
  70. package/dist/types/components/scrollbar/scrollbar_vertical.d.ts +5 -13
  71. package/dist/types/components/select/select.d.ts +13 -36
  72. package/dist/types/components/selection/selection.d.ts +4 -4
  73. package/dist/types/components/selection_input/selection_input.d.ts +20 -74
  74. package/dist/types/components/side_panel/carousel_panel/carousel_panel.d.ts +5 -10
  75. package/dist/types/components/side_panel/chart/bar_chart/bar_chart_design_panel.d.ts +2 -10
  76. package/dist/types/components/side_panel/chart/bubble_chart/bubble_chart_config_panel.d.ts +2 -7
  77. package/dist/types/components/side_panel/chart/bubble_chart/bubble_chart_design_panel.d.ts +4 -16
  78. package/dist/types/components/side_panel/chart/building_blocks/axis_design/axis_design_editor.d.ts +7 -14
  79. package/dist/types/components/side_panel/chart/building_blocks/chart_title/chart_title.d.ts +11 -33
  80. package/dist/types/components/side_panel/chart/building_blocks/color_scale/color_scale_picker.d.ts +10 -13
  81. package/dist/types/components/side_panel/chart/building_blocks/data_series/data_series.d.ts +18 -61
  82. package/dist/types/components/side_panel/chart/building_blocks/data_source/data_source.d.ts +16 -42
  83. package/dist/types/components/side_panel/chart/building_blocks/error_section/error_section.d.ts +4 -11
  84. package/dist/types/components/side_panel/chart/building_blocks/general_design/general_design_editor.d.ts +11 -24
  85. package/dist/types/components/side_panel/chart/building_blocks/generic_side_panel/config_panel.d.ts +2 -7
  86. package/dist/types/components/side_panel/chart/building_blocks/humanize_numbers/humanize_numbers.d.ts +2 -7
  87. package/dist/types/components/side_panel/chart/building_blocks/label_range/label_range.d.ts +18 -35
  88. package/dist/types/components/side_panel/chart/building_blocks/legend/legend.d.ts +9 -17
  89. package/dist/types/components/side_panel/chart/building_blocks/pie_hole_size/pie_hole_size.d.ts +5 -10
  90. package/dist/types/components/side_panel/chart/building_blocks/range_data_source/range_data_source.d.ts +17 -41
  91. package/dist/types/components/side_panel/chart/building_blocks/series_design/series_design_editor.d.ts +9 -17
  92. package/dist/types/components/side_panel/chart/building_blocks/series_design/series_with_axis_design_editor.d.ts +8 -16
  93. package/dist/types/components/side_panel/chart/building_blocks/show_data_markers/show_data_markers.d.ts +2 -7
  94. package/dist/types/components/side_panel/chart/building_blocks/show_values/show_values.d.ts +8 -17
  95. package/dist/types/components/side_panel/chart/building_blocks/text_styler/text_styler.d.ts +10 -38
  96. package/dist/types/components/side_panel/chart/calendar_chart/calendar_chart_design_panel.d.ts +2 -7
  97. package/dist/types/components/side_panel/chart/chart_type_picker/chart_type_picker.d.ts +8 -11
  98. package/dist/types/components/side_panel/chart/chart_with_axis/design_panel.d.ts +2 -7
  99. package/dist/types/components/side_panel/chart/common.d.ts +5 -5
  100. package/dist/types/components/side_panel/chart/funnel_chart_panel/funnel_chart_design_panel.d.ts +4 -7
  101. package/dist/types/components/side_panel/chart/gauge_chart_panel/gauge_chart_config_panel.d.ts +2 -7
  102. package/dist/types/components/side_panel/chart/gauge_chart_panel/gauge_chart_design_panel.d.ts +4 -8
  103. package/dist/types/components/side_panel/chart/geo_chart_panel/geo_chart_region_select_section.d.ts +6 -12
  104. package/dist/types/components/side_panel/chart/main_chart_panel/main_chart_panel.d.ts +5 -10
  105. package/dist/types/components/side_panel/chart/pie_chart/pie_chart_design_panel.d.ts +2 -7
  106. package/dist/types/components/side_panel/chart/radar_chart/radar_chart_design_panel.d.ts +2 -7
  107. package/dist/types/components/side_panel/chart/scorecard_chart_panel/scorecard_chart_config_panel.d.ts +2 -7
  108. package/dist/types/components/side_panel/chart/scorecard_chart_panel/scorecard_chart_design_panel.d.ts +2 -7
  109. package/dist/types/components/side_panel/chart/sunburst_chart/sunburst_chart_design_panel.d.ts +2 -7
  110. package/dist/types/components/side_panel/chart/treemap_chart/treemap_category_color/treemap_category_color.d.ts +8 -14
  111. package/dist/types/components/side_panel/chart/treemap_chart/treemap_chart_design_panel.d.ts +2 -7
  112. package/dist/types/components/side_panel/chart/treemap_chart/treemap_color_scale/treemap_color_scale.d.ts +7 -14
  113. package/dist/types/components/side_panel/chart/waterfall_chart/waterfall_chart_design_panel.d.ts +2 -7
  114. package/dist/types/components/side_panel/chart/zoomable_chart/design_panel.d.ts +1 -3
  115. package/dist/types/components/side_panel/column_stats/column_stats_panel.d.ts +4 -8
  116. package/dist/types/components/side_panel/components/badge_selection/badge_selection.d.ts +6 -11
  117. package/dist/types/components/side_panel/components/checkbox/checkbox.d.ts +11 -40
  118. package/dist/types/components/side_panel/components/cog_wheel_menu/cog_wheel_menu.d.ts +4 -9
  119. package/dist/types/components/side_panel/components/collapse/collapse.d.ts +4 -10
  120. package/dist/types/components/side_panel/components/collapsible/side_panel_collapsible.d.ts +6 -16
  121. package/dist/types/components/side_panel/components/radio_selection/radio_selection.d.ts +9 -22
  122. package/dist/types/components/side_panel/components/round_color_picker/round_color_picker.d.ts +7 -23
  123. package/dist/types/components/side_panel/components/section/section.d.ts +6 -16
  124. package/dist/types/components/side_panel/conditional_formatting/cf_editor/cell_is_rule_editor.d.ts +4 -9
  125. package/dist/types/components/side_panel/conditional_formatting/cf_editor/cf_editor.d.ts +6 -13
  126. package/dist/types/components/side_panel/conditional_formatting/cf_editor/color_scale_rule_editor.d.ts +4 -9
  127. package/dist/types/components/side_panel/conditional_formatting/cf_editor/color_scale_rule_editor_threshold.d.ts +7 -12
  128. package/dist/types/components/side_panel/conditional_formatting/cf_editor/data_bar_rule_editor.d.ts +4 -9
  129. package/dist/types/components/side_panel/conditional_formatting/cf_editor/icon_set_rule_editor.d.ts +6 -10
  130. package/dist/types/components/side_panel/conditional_formatting/cf_preview/cf_preview.d.ts +6 -13
  131. package/dist/types/components/side_panel/conditional_formatting/cf_preview_list/cf_preview_list.d.ts +4 -8
  132. package/dist/types/components/side_panel/criterion_form/criterion_form.d.ts +7 -20
  133. package/dist/types/components/side_panel/criterion_form/criterion_input/criterion_input.d.ts +17 -46
  134. package/dist/types/components/side_panel/data_validation/data_validation_panel.d.ts +4 -8
  135. package/dist/types/components/side_panel/data_validation/dv_editor/dv_editor.d.ts +6 -14
  136. package/dist/types/components/side_panel/data_validation/dv_preview/dv_preview.d.ts +4 -9
  137. package/dist/types/components/side_panel/find_and_replace/find_and_replace.d.ts +4 -8
  138. package/dist/types/components/side_panel/more_formats/more_formats.d.ts +6 -14
  139. package/dist/types/components/side_panel/named_ranges_panel/named_range_preview/named_range_preview.d.ts +5 -8
  140. package/dist/types/components/side_panel/named_ranges_panel/named_ranges_panel.d.ts +4 -8
  141. package/dist/types/components/side_panel/perf_profile/perf_profile_panel.d.ts +4 -8
  142. package/dist/types/components/side_panel/pivot/pivot_custom_groups_collapsible/pivot_custom_groups_collapsible.d.ts +7 -13
  143. package/dist/types/components/side_panel/pivot/pivot_defer_update/pivot_defer_update.d.ts +10 -18
  144. package/dist/types/components/side_panel/pivot/pivot_filter/pivot_filter.d.ts +8 -15
  145. package/dist/types/components/side_panel/pivot/pivot_layout_configurator/add_dimension_button/add_dimension_button.d.ts +5 -14
  146. package/dist/types/components/side_panel/pivot/pivot_layout_configurator/pivot_dimension/pivot_dimension.d.ts +7 -23
  147. package/dist/types/components/side_panel/pivot/pivot_layout_configurator/pivot_dimension_granularity/pivot_dimension_granularity.d.ts +9 -16
  148. package/dist/types/components/side_panel/pivot/pivot_layout_configurator/pivot_dimension_order/pivot_dimension_order.d.ts +7 -12
  149. package/dist/types/components/side_panel/pivot/pivot_layout_configurator/pivot_layout_configurator.d.ts +14 -30
  150. package/dist/types/components/side_panel/pivot/pivot_layout_configurator/pivot_measure/pivot_measure.d.ts +12 -22
  151. package/dist/types/components/side_panel/pivot/pivot_layout_configurator/pivot_sort_section/pivot_sort_section.d.ts +6 -13
  152. package/dist/types/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel.d.ts +8 -15
  153. package/dist/types/components/side_panel/pivot/pivot_side_panel/pivot_design_panel/pivot_design_panel.d.ts +5 -10
  154. package/dist/types/components/side_panel/pivot/pivot_side_panel/pivot_side_panel.d.ts +8 -18
  155. package/dist/types/components/side_panel/pivot/pivot_side_panel/pivot_spreadsheet_side_panel/pivot_spreadsheet_side_panel.d.ts +5 -11
  156. package/dist/types/components/side_panel/pivot/pivot_title_section/pivot_title_section.d.ts +6 -12
  157. package/dist/types/components/side_panel/remove_duplicates/remove_duplicates.d.ts +4 -7
  158. package/dist/types/components/side_panel/settings/settings_panel.d.ts +4 -8
  159. package/dist/types/components/side_panel/side_panel/side_panel.d.ts +12 -37
  160. package/dist/types/components/side_panel/side_panels/side_panels.d.ts +16 -6
  161. package/dist/types/components/side_panel/split_to_columns_panel/split_to_columns_panel.d.ts +4 -7
  162. package/dist/types/components/side_panel/table_panel/table_panel.d.ts +6 -10
  163. package/dist/types/components/side_panel/table_style_editor_panel/table_style_editor_panel.d.ts +6 -17
  164. package/dist/types/components/small_bottom_bar/ribbon_menu/ribbon_menu.d.ts +7 -11
  165. package/dist/types/components/small_bottom_bar/small_bottom_bar.d.ts +7 -10
  166. package/dist/types/components/spreadsheet/spreadsheet.d.ts +8 -20
  167. package/dist/types/components/spreadsheet_print/spreadsheet_print.d.ts +4 -8
  168. package/dist/types/components/standalone_grid_canvas/standalone_grid_canvas.d.ts +6 -13
  169. package/dist/types/components/tables/table_dropdown_button/table_dropdown_button.d.ts +7 -12
  170. package/dist/types/components/tables/table_resizer/table_resizer.d.ts +4 -8
  171. package/dist/types/components/tables/table_style_picker/table_style_picker.d.ts +11 -16
  172. package/dist/types/components/tables/table_style_preview/table_style_preview.d.ts +9 -28
  173. package/dist/types/components/tables/table_styles_popover/table_styles_popover.d.ts +23 -26
  174. package/dist/types/components/text_input/text_input.d.ts +1 -48
  175. package/dist/types/components/top_bar/color_editor/color_editor.d.ts +7 -14
  176. package/dist/types/components/top_bar/dropdown_action/dropdown_action.d.ts +10 -17
  177. package/dist/types/components/top_bar/font_size_editor/font_size_editor.d.ts +4 -8
  178. package/dist/types/components/top_bar/number_formats_tool/number_formats_tool.d.ts +4 -7
  179. package/dist/types/components/top_bar/top_bar.d.ts +9 -12
  180. package/dist/types/components/top_bar/zoom_editor/zoom_editor.d.ts +4 -8
  181. package/dist/types/components/validation_messages/validation_messages.d.ts +6 -15
  182. package/dist/types/helpers/formulas.d.ts +1 -0
  183. package/dist/types/index.d.ts +9 -1
  184. package/dist/types/owl3_compatibility_layer.d.ts +3 -6
  185. package/dist/types/plugins/ui_feature/table_computed_style.d.ts +1 -1
  186. package/dist/types/types/cell_popovers.d.ts +2 -2
  187. package/dist/types/types/chart/bar_chart.d.ts +1 -0
  188. package/dist/types/types/chart/chart.d.ts +1 -0
  189. package/dist/types/types/misc.d.ts +4 -2
  190. package/dist/types/types/props_of.d.ts +7 -3
  191. package/package.json +1 -1
@@ -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.0-alpha.10
6
- * @date 2026-06-02T12:07:58.355Z
7
- * @hash 41144f9
5
+ * @version 19.4.0-alpha.11
6
+ * @date 2026-06-03T11:42:34.595Z
7
+ * @hash 6f35bc7
8
8
  */
9
9
 
10
10
  (function(exports, _odoo_owl) {
@@ -671,6 +671,18 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
671
671
  function isMatrix(x) {
672
672
  return Array.isArray(x) && Array.isArray(x[0]);
673
673
  }
674
+ const borderPositions = [
675
+ "all",
676
+ "hv",
677
+ "h",
678
+ "v",
679
+ "external",
680
+ "left",
681
+ "top",
682
+ "right",
683
+ "bottom",
684
+ "clear"
685
+ ];
674
686
  let DIRECTION = /* @__PURE__ */ function(DIRECTION) {
675
687
  DIRECTION["UP"] = "up";
676
688
  DIRECTION["DOWN"] = "down";
@@ -678,6 +690,11 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
678
690
  DIRECTION["RIGHT"] = "right";
679
691
  return DIRECTION;
680
692
  }({});
693
+ const composerFocusTypes = [
694
+ "inactive",
695
+ "cellFocus",
696
+ "contentFocus"
697
+ ];
681
698
 
682
699
  //#endregion
683
700
  //#region src/helpers/misc.ts
@@ -2579,13 +2596,9 @@ stores.inject(MyMetaStore, storeInstance);
2579
2596
  const isOdooCompatLoaded = _odoo_owl.__ODOO_COMPATIBILITY_LAYER_ADDED__ === true;
2580
2597
  var _Component = class extends _odoo_owl.Component {
2581
2598
  static template = "";
2582
- static props = {};
2583
- static defaultProps = {};
2584
- props;
2585
2599
  env;
2586
2600
  constructor(node) {
2587
2601
  super(node);
2588
- this.props = (0, _odoo_owl.props)(null, this.constructor.defaultProps);
2589
2602
  this.env = useChildEnv();
2590
2603
  this.__owl__ = node;
2591
2604
  }
@@ -2707,10 +2720,11 @@ stores.inject(MyMetaStore, storeInstance);
2707
2720
  };
2708
2721
  var Portal = class extends _odoo_owl.Component {
2709
2722
  static template = _odoo_owl.xml`<t t-call-slot="default"/>`;
2710
- static props = {
2711
- selector: String,
2712
- slots: true
2713
- };
2723
+ constructor(node) {
2724
+ super(node);
2725
+ this.props = (0, _odoo_owl.props)();
2726
+ this.__owl__ = node;
2727
+ }
2714
2728
  setup() {
2715
2729
  const node = this.__owl__;
2716
2730
  const renderContent = node.renderFn;
@@ -7025,6 +7039,11 @@ set(value) {
7025
7039
  sheetId
7026
7040
  }, defaultGetSheetSize);
7027
7041
  }
7042
+ function replaceSymbolInFormula(formula, oldSymbol, newSymbol) {
7043
+ const oldCanonicalSymbol = getCanonicalSymbolName(oldSymbol);
7044
+ const newCanonicalSymbol = getCanonicalSymbolName(newSymbol);
7045
+ return tokenize(formula).map((token) => token.type === "SYMBOL" && token.value === oldCanonicalSymbol ? newCanonicalSymbol : token.value).join("");
7046
+ }
7028
7047
 
7029
7048
  //#endregion
7030
7049
  //#region src/formulas/code_builder.ts
@@ -9918,6 +9937,9 @@ set(value) {
9918
9937
  //#endregion
9919
9938
  //#region src/components/figures/chart/chartJs/chartjs_show_values_plugin.ts
9920
9939
  const MINIMAL_VERTICAL_DISTANCE = 13;
9940
+ function isLineOverlayOnBarChart(options, dataset) {
9941
+ return options.type === "bar" && dataset.type === "line";
9942
+ }
9921
9943
  /** This is a chartJS plugin that will draw the values of each data next to the point/bar/pie slice */
9922
9944
  const chartShowValuesPlugin = {
9923
9945
  id: "chartShowValuesPlugin",
@@ -9968,7 +9990,7 @@ set(value) {
9968
9990
  function drawLineOrBarOrRadarChartValues(chart, options, ctx) {
9969
9991
  const textsPositions = {};
9970
9992
  for (const dataset of chart._metasets) {
9971
- if (isTrendLineAxis(dataset.xAxisID) || dataset.hidden) continue;
9993
+ if (isTrendLineAxis(dataset.xAxisID) || dataset.hidden || isLineOverlayOnBarChart(options, dataset)) continue;
9972
9994
  const yAxisScale = chart.scales[dataset.yAxisID];
9973
9995
  for (let i = 0; i < dataset._parsed.length; i++) {
9974
9996
  const parsedValue = dataset._parsed[i];
@@ -10047,7 +10069,7 @@ set(value) {
10047
10069
  function drawHorizontalBarChartValues(chart, options, ctx) {
10048
10070
  const textsPositions = {};
10049
10071
  for (const dataset of chart._metasets) {
10050
- if (isTrendLineAxis(dataset.xAxisID)) return;
10072
+ if (isTrendLineAxis(dataset.xAxisID) || isLineOverlayOnBarChart(options, dataset)) continue;
10051
10073
  const xZeroLine = chart.scales[dataset.xAxisID].getPixelForValue(0);
10052
10074
  for (let i = 0; i < dataset._parsed.length; i++) {
10053
10075
  const value = Number(dataset._parsed[i].x);
@@ -10692,8 +10714,38 @@ set(value) {
10692
10714
  trendDatasets.push(getTrendingLineDataSet(dataset, trendConfig, trendData));
10693
10715
  }
10694
10716
  dataSets.push(...trendDatasets);
10717
+ const totalLineDataset = getBarChartTotalLineDataset(definition, dataSetsValues);
10718
+ if (totalLineDataset) dataSets.push(totalLineDataset);
10695
10719
  return dataSets;
10696
10720
  }
10721
+ function getBarChartTotalLineDataset(definition, dataSetsValues) {
10722
+ const visibleDataSetsValues = dataSetsValues.filter((dataSet) => !dataSet.hidden);
10723
+ if (!definition.stacked || !definition.showTotalLine || visibleDataSetsValues.length < 2) return;
10724
+ const data = range(0, Math.max(...visibleDataSetsValues.map((dataSet) => dataSet.data.length))).map((index) => {
10725
+ let total;
10726
+ for (const dataSet of visibleDataSetsValues) {
10727
+ const cell = dataSet.data[index];
10728
+ if (isNumberResult(cell)) total = (total ?? 0) + cell.value;
10729
+ }
10730
+ return total ?? NaN;
10731
+ });
10732
+ const color = relativeLuminance(definition.background || "#FFFFFF") < .3 ? "#e9ecef" : "#343a40";
10733
+ return {
10734
+ type: "line",
10735
+ label: _t("Sum"),
10736
+ data,
10737
+ order: -1,
10738
+ tension: 0,
10739
+ fill: false,
10740
+ pointRadius: 3,
10741
+ borderWidth: 2,
10742
+ backgroundColor: color,
10743
+ borderColor: color,
10744
+ pointBackgroundColor: color,
10745
+ xAxisID: "x",
10746
+ yAxisID: "y"
10747
+ };
10748
+ }
10697
10749
  function getCalendarChartDatasetAndLabels(definition, args) {
10698
10750
  const { labels, dataSetsValues, background } = args;
10699
10751
  const values = dataSetsValues.map((ds) => ds.data).flat().filter(isNumberResult).map((cell) => cell.value);
@@ -11471,13 +11523,10 @@ set(value) {
11471
11523
  });
11472
11524
  var ChartJsComponent = class extends Component {
11473
11525
  static template = "o-spreadsheet-ChartJsComponent";
11474
- static props = {
11475
- chartId: String,
11476
- isFullScreen: {
11477
- type: Boolean,
11478
- optional: true
11479
- }
11480
- };
11526
+ props = (0, _odoo_owl.props)({
11527
+ chartId: _odoo_owl.types.string(),
11528
+ "isFullScreen?": _odoo_owl.types.boolean()
11529
+ });
11481
11530
  canvas = (0, _odoo_owl.signal)(null);
11482
11531
  chart;
11483
11532
  currentRuntime;
@@ -12173,13 +12222,10 @@ set(value) {
12173
12222
  //#region src/components/figures/chart/scorecard/chart_scorecard.ts
12174
12223
  var ScorecardChart = class extends Component {
12175
12224
  static template = "o-spreadsheet-ScorecardChart";
12176
- static props = {
12177
- chartId: String,
12178
- isFullScreen: {
12179
- type: Boolean,
12180
- optional: true
12181
- }
12182
- };
12225
+ props = (0, _odoo_owl.props)({
12226
+ chartId: _odoo_owl.types.string(),
12227
+ "isFullScreen?": _odoo_owl.types.boolean()
12228
+ });
12183
12229
  canvas = (0, _odoo_owl.signal)(null);
12184
12230
  get runtime() {
12185
12231
  return this.env.model.getters.getChartRuntime(this.props.chartId);
@@ -13865,13 +13911,10 @@ set(value) {
13865
13911
  const ANIMATION_DURATION = 1e3;
13866
13912
  var GaugeChartComponent = class extends Component {
13867
13913
  static template = "o-spreadsheet-GaugeChartComponent";
13868
- static props = {
13869
- chartId: String,
13870
- isFullScreen: {
13871
- type: Boolean,
13872
- optional: true
13873
- }
13874
- };
13914
+ props = (0, _odoo_owl.props)({
13915
+ chartId: _odoo_owl.types.string(),
13916
+ "isFullScreen?": _odoo_owl.types.boolean()
13917
+ });
13875
13918
  canvas = (0, _odoo_owl.signal)(null);
13876
13919
  animationStore;
13877
13920
  get runtime() {
@@ -14142,52 +14185,201 @@ set(value) {
14142
14185
  };
14143
14186
  }
14144
14187
 
14188
+ //#endregion
14189
+ //#region src/components/props_validation.ts
14190
+ /**
14191
+ * Validate that a prop is a number, but with a more specific type than just `number` (e.g. `Pixel`).
14192
+ */
14193
+ function validateNumber() {
14194
+ return _odoo_owl.types.number();
14195
+ }
14196
+ /**
14197
+ * Validate that a prop is a string, but with a more specific type than just `string` (e.g. `Color`).
14198
+ */
14199
+ function validateString() {
14200
+ return _odoo_owl.types.string();
14201
+ }
14202
+ /**
14203
+ * Validate that a prop is an object, but with a more specific type than just `object` (e.g. `ActionSpec`).
14204
+ */
14205
+ function validateObject() {
14206
+ return _odoo_owl.types.object();
14207
+ }
14208
+ /**
14209
+ * Validate that a prop is an array, but with a more specific element type than `any[]`.
14210
+ */
14211
+ function validateArrayOf() {
14212
+ return _odoo_owl.types.array();
14213
+ }
14214
+ /**
14215
+ * Validate that a prop is a record (string-keyed dictionary), but with a more
14216
+ * specific value type than `any`.
14217
+ */
14218
+ function validateRecordOf() {
14219
+ return _odoo_owl.types.record();
14220
+ }
14221
+ /**
14222
+ * Validate that a prop is a `Set`, typed with a specific element type.
14223
+ */
14224
+ function validateSetOf() {
14225
+ return _odoo_owl.types.instanceOf(Set);
14226
+ }
14227
+ function validateRect() {
14228
+ return _odoo_owl.types.object({
14229
+ x: _odoo_owl.types.number(),
14230
+ y: _odoo_owl.types.number(),
14231
+ width: _odoo_owl.types.number(),
14232
+ height: _odoo_owl.types.number()
14233
+ });
14234
+ }
14235
+ function validateBorderPosition() {
14236
+ return _odoo_owl.types.customValidator(validateString(), (position) => borderPositions.includes(position));
14237
+ }
14238
+ function validateBorderStyle() {
14239
+ return _odoo_owl.types.customValidator(validateString(), (style) => borderStyles.includes(style));
14240
+ }
14241
+ function validateDOMCoordinates() {
14242
+ return _odoo_owl.types.object({
14243
+ x: _odoo_owl.types.number(),
14244
+ y: _odoo_owl.types.number()
14245
+ });
14246
+ }
14247
+ function validateDOMDimension() {
14248
+ return _odoo_owl.types.object({
14249
+ width: _odoo_owl.types.number(),
14250
+ height: _odoo_owl.types.number()
14251
+ });
14252
+ }
14253
+ function validateSortDirection() {
14254
+ return _odoo_owl.types.customValidator(validateString(), (direction) => ["asc", "desc"].includes(direction));
14255
+ }
14256
+ function validateResizeDirection() {
14257
+ return _odoo_owl.types.customValidator(validateNumber(), (direction) => [
14258
+ -1,
14259
+ 0,
14260
+ 1
14261
+ ].includes(direction));
14262
+ }
14263
+ function validateComposerFocusType() {
14264
+ return _odoo_owl.types.customValidator(validateString(), (value) => composerFocusTypes.includes(value));
14265
+ }
14266
+ function validateDimension() {
14267
+ return _odoo_owl.types.customValidator(validateString(), (value) => ["COL", "ROW"].includes(value));
14268
+ }
14269
+ function validateContextMenuType() {
14270
+ return _odoo_owl.types.customValidator(validateString(), (value) => [
14271
+ "ROW",
14272
+ "COL",
14273
+ "CELL",
14274
+ "FILTER",
14275
+ "GROUP_HEADERS",
14276
+ "UNGROUP_HEADERS"
14277
+ ].includes(value));
14278
+ }
14279
+ /**
14280
+ * Validate that a prop is a store. Typed as the CQS-wrapped `Store<T>` to
14281
+ * match what `useStore(...)` returns at the call site.
14282
+ */
14283
+ function validateStore() {
14284
+ return _odoo_owl.types.object();
14285
+ }
14286
+ const types$6 = {
14287
+ ..._odoo_owl.types,
14288
+ ArrayOf: validateArrayOf,
14289
+ RecordOf: validateRecordOf,
14290
+ SetOf: validateSetOf,
14291
+ GenericCriterionType: validateString,
14292
+ UID: validateString,
14293
+ CriterionFilter: validateObject,
14294
+ CSSProperties: validateObject,
14295
+ ResizeDirection: validateResizeDirection,
14296
+ FigureUI: validateObject,
14297
+ Token: validateObject,
14298
+ CellPosition: validateObject,
14299
+ AutoCompleteProviderDefinition: validateObject,
14300
+ AutoCompleteProposal: validateObject,
14301
+ FunctionDescription: validateObject,
14302
+ Rect: validateRect,
14303
+ Pixel: validateNumber,
14304
+ HeaderIndex: validateNumber,
14305
+ BorderPosition: validateBorderPosition,
14306
+ BorderStyle: validateBorderStyle,
14307
+ Color: validateString,
14308
+ ActionSpec: validateObject,
14309
+ DOMCoordinates: validateDOMCoordinates,
14310
+ DOMDimension: validateDOMDimension,
14311
+ ComposerFocusType: validateComposerFocusType,
14312
+ SortDirection: validateSortDirection,
14313
+ Store: validateStore,
14314
+ Position: validateObject,
14315
+ PivotCoreDefinition: validateObject,
14316
+ PivotField: validateObject,
14317
+ PivotDimension: validateObject,
14318
+ PivotMeasure: validateObject,
14319
+ PivotCoreMeasure: validateObject,
14320
+ PivotCustomGroupedField: validateObject,
14321
+ PivotRuntimeDefinition: validateObject,
14322
+ PivotFilter: validateObject,
14323
+ DataFilterValue: validateObject,
14324
+ SpreadsheetPivotCoreDefinition: validateObject,
14325
+ ComposerSelection: validateObject,
14326
+ Action: validateObject,
14327
+ MenuItemOrSeparator: validateObject,
14328
+ Model: validateObject,
14329
+ DispatchResult: validateObject,
14330
+ Zone: validateObject,
14331
+ Range: validateObject,
14332
+ HeaderGroup: validateObject,
14333
+ GridClickModifiers: validateObject,
14334
+ ZoomedMouseEvent: validateObject,
14335
+ ConditionalFormat: validateObject,
14336
+ ColorScaleThreshold: validateObject,
14337
+ Table: validateObject,
14338
+ CoreTable: validateObject,
14339
+ TableConfig: validateObject,
14340
+ TableStyle: validateObject,
14341
+ TitleDesign: validateObject,
14342
+ ChartDefinition: validateObject,
14343
+ ChartDefinitionWithDataSource: validateObject,
14344
+ ChartWithAxisDefinition: validateObject,
14345
+ ChartStyle: validateObject,
14346
+ ChartColorScale: validateObject,
14347
+ ChartRangeDataSource: validateObject,
14348
+ DataSetStyle: validateObject,
14349
+ GeoChartDefinition: validateObject,
14350
+ FunnelChartDefinition: validateObject,
14351
+ TreeMapChartDefinition: validateObject,
14352
+ TreeMapCategoryColorOptions: validateObject,
14353
+ TreeMapColorScaleOptions: validateObject,
14354
+ NamedRange: validateObject,
14355
+ DataValidationRule: validateObject,
14356
+ InformationNotification: validateObject,
14357
+ NotificationStoreMethods: validateObject,
14358
+ SidePanelContent: validateObject,
14359
+ SidePanelComponentProps: validateObject,
14360
+ DataValidationCriterionType: validateString,
14361
+ Dimension: validateDimension,
14362
+ ContextMenuType: validateContextMenuType
14363
+ };
14364
+
14145
14365
  //#endregion
14146
14366
  //#region src/components/menu/menu.ts
14147
14367
  var Menu = class extends Component {
14148
14368
  static template = "o-spreadsheet-Menu";
14149
- static props = {
14150
- menuItems: Array,
14151
- onClose: Function,
14152
- onClickMenu: {
14153
- type: Function,
14154
- optional: true
14155
- },
14156
- onMouseEnter: {
14157
- type: Function,
14158
- optional: true
14159
- },
14160
- onMouseLeave: {
14161
- type: Function,
14162
- optional: true
14163
- },
14164
- width: {
14165
- type: Number,
14166
- optional: true
14167
- },
14168
- hoveredMenuId: {
14169
- type: String,
14170
- optional: true
14171
- },
14172
- isHoveredMenuFocused: {
14173
- type: Boolean,
14174
- optional: true
14175
- },
14176
- onScroll: {
14177
- type: Function,
14178
- optional: true
14179
- },
14180
- onKeyDown: {
14181
- type: Function,
14182
- optional: true
14183
- },
14184
- disableKeyboardNavigation: {
14185
- type: Boolean,
14186
- optional: true
14187
- }
14188
- };
14189
14369
  static components = {};
14190
- static defaultProps = {};
14370
+ props = (0, _odoo_owl.props)({
14371
+ menuItems: types$6.ArrayOf(),
14372
+ onClose: types$6.function([]),
14373
+ "onClickMenu?": types$6.function([types$6.Action(), types$6.instanceOf(PointerEvent)]),
14374
+ "onMouseEnter?": types$6.function([types$6.Action(), types$6.instanceOf(PointerEvent)]),
14375
+ "onMouseLeave?": types$6.function([types$6.Action(), types$6.instanceOf(PointerEvent)]),
14376
+ "width?": types$6.number(),
14377
+ "hoveredMenuId?": types$6.string(),
14378
+ "isHoveredMenuFocused?": types$6.boolean(),
14379
+ "onScroll?": types$6.function([types$6.instanceOf(CustomEvent)]),
14380
+ "onKeyDown?": types$6.function([types$6.instanceOf(KeyboardEvent)]),
14381
+ "disableKeyboardNavigation?": types$6.boolean()
14382
+ });
14191
14383
  menuRef = (0, _odoo_owl.signal)(null);
14192
14384
  setup() {
14193
14385
  useLayoutEffect(() => {
@@ -14325,57 +14517,25 @@ set(value) {
14325
14517
  //#region src/components/popover/popover.ts
14326
14518
  var Popover = class extends Component {
14327
14519
  static template = "o-spreadsheet-Popover";
14328
- static props = {
14329
- anchorRect: Object,
14330
- containerRect: {
14331
- type: Object,
14332
- optional: true
14333
- },
14334
- positioning: {
14335
- type: String,
14336
- optional: true
14337
- },
14338
- maxWidth: {
14339
- type: Number,
14340
- optional: true
14341
- },
14342
- maxHeight: {
14343
- type: Number,
14344
- optional: true
14345
- },
14346
- verticalOffset: {
14347
- type: Number,
14348
- optional: true
14349
- },
14350
- onMouseWheel: {
14351
- type: Function,
14352
- optional: true
14353
- },
14354
- onPopoverHidden: {
14355
- type: Function,
14356
- optional: true
14357
- },
14358
- onPopoverMoved: {
14359
- type: Function,
14360
- optional: true
14361
- },
14362
- zIndex: {
14363
- type: Number,
14364
- optional: true
14365
- },
14366
- class: {
14367
- type: String,
14368
- optional: true
14369
- },
14370
- slots: Object
14371
- };
14372
- static defaultProps = {
14520
+ props = (0, _odoo_owl.props)({
14521
+ anchorRect: types$6.Rect(),
14522
+ "containerRect?": types$6.object({}),
14523
+ "positioning?": types$6.or([types$6.literal("top-right"), types$6.literal("bottom-left")]),
14524
+ "maxWidth?": types$6.Pixel(),
14525
+ "maxHeight?": types$6.Pixel(),
14526
+ "verticalOffset?": types$6.number(),
14527
+ "onMouseWheel?": types$6.function([]),
14528
+ "onPopoverHidden?": types$6.function([]),
14529
+ "onPopoverMoved?": types$6.function([]),
14530
+ "zIndex?": types$6.number(),
14531
+ "class?": types$6.string()
14532
+ }, {
14373
14533
  positioning: "bottom-left",
14374
14534
  verticalOffset: 0,
14375
14535
  onMouseWheel: () => {},
14376
14536
  onPopoverMoved: () => {},
14377
14537
  onPopoverHidden: () => {}
14378
- };
14538
+ });
14379
14539
  popoverRef = (0, _odoo_owl.signal)(null);
14380
14540
  popoverContentRef = (0, _odoo_owl.signal)(null);
14381
14541
  currentPosition = void 0;
@@ -14537,60 +14697,29 @@ set(value) {
14537
14697
  const TIMEOUT_DELAY = 250;
14538
14698
  var MenuPopover = class MenuPopover extends Component {
14539
14699
  static template = "o-spreadsheet-Menu-Popover";
14540
- static props = {
14541
- anchorRect: Object,
14542
- popoverPositioning: {
14543
- type: String,
14544
- optional: true
14545
- },
14546
- menuItems: Array,
14547
- depth: {
14548
- type: Number,
14549
- optional: true
14550
- },
14551
- maxHeight: {
14552
- type: Number,
14553
- optional: true
14554
- },
14555
- onClose: Function,
14556
- onMenuClicked: {
14557
- type: Function,
14558
- optional: true
14559
- },
14560
- menuId: {
14561
- type: String,
14562
- optional: true
14563
- },
14564
- onMouseOver: {
14565
- type: Function,
14566
- optional: true
14567
- },
14568
- width: {
14569
- type: Number,
14570
- optional: true
14571
- },
14572
- autoSelectFirstItem: {
14573
- type: Boolean,
14574
- optional: true
14575
- },
14576
- disableKeyboardNavigation: {
14577
- type: Boolean,
14578
- optional: true
14579
- },
14580
- onKeyboardNavigation: {
14581
- type: Function,
14582
- optional: true
14583
- }
14584
- };
14585
14700
  static components = {
14586
14701
  MenuPopover,
14587
14702
  Menu,
14588
14703
  Popover
14589
14704
  };
14590
- static defaultProps = {
14705
+ props = (0, _odoo_owl.props)({
14706
+ anchorRect: types$6.Rect(),
14707
+ "popoverPositioning?": types$6.or([types$6.literal("top-right"), types$6.literal("bottom-left")]),
14708
+ menuItems: types$6.ArrayOf(),
14709
+ "depth?": types$6.number(),
14710
+ "maxHeight?": types$6.Pixel(),
14711
+ onClose: types$6.function([]),
14712
+ "onMenuClicked?": types$6.function([types$6.instanceOf(CustomEvent)]),
14713
+ "menuId?": types$6.UID(),
14714
+ "onMouseOver?": types$6.function([]),
14715
+ "width?": types$6.number(),
14716
+ "autoSelectFirstItem?": types$6.boolean(),
14717
+ "disableKeyboardNavigation?": types$6.boolean(),
14718
+ "onKeyboardNavigation?": types$6.function([types$6.instanceOf(KeyboardEvent)])
14719
+ }, {
14591
14720
  depth: 0,
14592
14721
  popoverPositioning: "top-right"
14593
- };
14722
+ });
14594
14723
  subMenu = (0, _odoo_owl.proxy)({
14595
14724
  isOpen: false,
14596
14725
  anchorRect: null,
@@ -14830,31 +14959,16 @@ set(value) {
14830
14959
  //#region src/components/select/select.ts
14831
14960
  var Select = class extends Component {
14832
14961
  static template = "o-spreadsheet-Select";
14833
- static props = {
14834
- onChange: Function,
14835
- values: Array,
14836
- selectedValue: {
14837
- type: String,
14838
- optional: true
14839
- },
14840
- class: {
14841
- type: String,
14842
- optional: true
14843
- },
14844
- popoverClass: {
14845
- type: String,
14846
- optional: true
14847
- },
14848
- name: {
14849
- type: String,
14850
- optional: true
14851
- },
14852
- title: {
14853
- type: String,
14854
- optional: true
14855
- }
14856
- };
14857
14962
  static components = { Popover };
14963
+ props = (0, _odoo_owl.props)({
14964
+ onChange: types$6.function([types$6.string()]),
14965
+ values: types$6.array(),
14966
+ "selectedValue?": types$6.string(),
14967
+ "class?": types$6.string(),
14968
+ "popoverClass?": types$6.string(),
14969
+ "name?": types$6.string(),
14970
+ "title?": types$6.string()
14971
+ });
14858
14972
  selectRef = (0, _odoo_owl.signal)(null);
14859
14973
  dropdownRef = (0, _odoo_owl.signal)(null);
14860
14974
  state = (0, _odoo_owl.proxy)({
@@ -14960,14 +15074,10 @@ set(value) {
14960
15074
  MenuPopover,
14961
15075
  Select
14962
15076
  };
14963
- static props = {
14964
- chartId: String,
14965
- hasFullScreenButton: {
14966
- type: Boolean,
14967
- optional: true
14968
- }
14969
- };
14970
- static defaultProps = { hasFullScreenButton: true };
15077
+ props = (0, _odoo_owl.props)({
15078
+ chartId: types$6.UID(),
15079
+ "hasFullScreenButton?": types$6.boolean()
15080
+ }, { hasFullScreenButton: true });
14971
15081
  fullScreenFigureStore;
14972
15082
  menuState = (0, _odoo_owl.proxy)({
14973
15083
  isOpen: false,
@@ -15030,25 +15140,16 @@ set(value) {
15030
15140
  //#region src/components/figures/figure_carousel/figure_carousel.ts
15031
15141
  var CarouselFigure = class extends Component {
15032
15142
  static template = "o-spreadsheet-CarouselFigure";
15033
- static props = {
15034
- figureUI: Object,
15035
- editFigureStyle: {
15036
- type: Function,
15037
- optional: true
15038
- },
15039
- isFullScreen: {
15040
- type: Boolean,
15041
- optional: true
15042
- },
15043
- openContextMenu: {
15044
- type: Function,
15045
- optional: true
15046
- }
15047
- };
15048
15143
  static components = {
15049
15144
  ChartDashboardMenu,
15050
15145
  MenuPopover
15051
15146
  };
15147
+ props = (0, _odoo_owl.props)({
15148
+ figureUI: types$6.FigureUI(),
15149
+ "editFigureStyle?": types$6.function([types$6.CSSProperties()]),
15150
+ "isFullScreen?": types$6.boolean(),
15151
+ "openContextMenu?": types$6.function([types$6.Rect(), types$6.function([])])
15152
+ });
15052
15153
  carouselTabsRef = (0, _odoo_owl.signal)(null);
15053
15154
  carouselTabsDropdownRef = (0, _odoo_owl.signal)(null);
15054
15155
  menuState = (0, _odoo_owl.proxy)({
@@ -15181,22 +15282,13 @@ set(value) {
15181
15282
  //#region src/components/figures/figure_chart/figure_chart.ts
15182
15283
  var ChartFigure = class extends Component {
15183
15284
  static template = "o-spreadsheet-ChartFigure";
15184
- static props = {
15185
- figureUI: Object,
15186
- editFigureStyle: {
15187
- type: Function,
15188
- optional: true
15189
- },
15190
- isFullScreen: {
15191
- type: Boolean,
15192
- optional: true
15193
- },
15194
- openContextMenu: {
15195
- type: Function,
15196
- optional: true
15197
- }
15198
- };
15199
15285
  static components = { ChartDashboardMenu };
15286
+ props = (0, _odoo_owl.props)({
15287
+ figureUI: types$6.FigureUI(),
15288
+ "editFigureStyle?": types$6.function([types$6.CSSProperties()]),
15289
+ "isFullScreen?": types$6.boolean(),
15290
+ "openContextMenu?": types$6.function([types$6.Rect(), types$6.function([])])
15291
+ });
15200
15292
  onDoubleClick() {
15201
15293
  this.env.model.dispatch("SELECT_FIGURE", { figureId: this.props.figureUI.id });
15202
15294
  this.env.openSidePanel("ChartPanel");
@@ -15221,18 +15313,12 @@ set(value) {
15221
15313
  //#region src/components/figures/figure_image/figure_image.ts
15222
15314
  var ImageFigure = class extends Component {
15223
15315
  static template = "o-spreadsheet-ImageFigure";
15224
- static props = {
15225
- figureUI: Object,
15226
- editFigureStyle: {
15227
- type: Function,
15228
- optional: true
15229
- },
15230
- openContextMenu: {
15231
- type: Function,
15232
- optional: true
15233
- }
15234
- };
15235
15316
  static components = {};
15317
+ props = (0, _odoo_owl.props)({
15318
+ figureUI: types$6.FigureUI(),
15319
+ "editFigureStyle?": types$6.function([types$6.CSSProperties()]),
15320
+ "openContextMenu?": types$6.function([types$6.Rect(), types$6.function([])])
15321
+ });
15236
15322
  get figureId() {
15237
15323
  return this.props.figureUI.id;
15238
15324
  }
@@ -15268,30 +15354,21 @@ set(value) {
15268
15354
  const ACTIVE_BORDER_WIDTH = 2;
15269
15355
  var FigureComponent = class extends Component {
15270
15356
  static template = "o-spreadsheet-FigureComponent";
15271
- static props = {
15272
- figureUI: Object,
15273
- style: {
15274
- type: String,
15275
- optional: true
15276
- },
15277
- class: {
15278
- type: String,
15279
- optional: true
15280
- },
15281
- onMouseDown: {
15282
- type: Function,
15283
- optional: true
15284
- },
15285
- onClickAnchor: {
15286
- type: Function,
15287
- optional: true
15288
- }
15289
- };
15290
15357
  static components = { MenuPopover };
15291
- static defaultProps = {
15358
+ props = (0, _odoo_owl.props)({
15359
+ figureUI: types$6.FigureUI(),
15360
+ style: types$6.string(),
15361
+ class: types$6.string(),
15362
+ "onMouseDown?": types$6.function([types$6.instanceOf(MouseEvent)]),
15363
+ "onClickAnchor?": types$6.function([
15364
+ types$6.ResizeDirection(),
15365
+ types$6.ResizeDirection(),
15366
+ types$6.instanceOf(MouseEvent)
15367
+ ])
15368
+ }, {
15292
15369
  onMouseDown: () => {},
15293
15370
  onClickAnchor: () => {}
15294
- };
15371
+ });
15295
15372
  menuState = (0, _odoo_owl.proxy)({
15296
15373
  isOpen: false,
15297
15374
  anchorRect: null,
@@ -21765,7 +21842,7 @@ set(value) {
21765
21842
  return measures.map((measure) => {
21766
21843
  if (measure.id === oldMeasure.id) return newMeasure;
21767
21844
  else if (!measure.computedBy || oldMeasure.id === newMeasure.id) return measure;
21768
- const newFormula = tokenize(measure.computedBy.formula).map((token) => token.type === "SYMBOL" && token.value === getCanonicalSymbolName(oldMeasure.id) ? getCanonicalSymbolName(newMeasure.id) : token.value).join("");
21845
+ const newFormula = replaceSymbolInFormula(measure.computedBy.formula, oldMeasure.id, newMeasure.id);
21769
21846
  return {
21770
21847
  ...measure,
21771
21848
  computedBy: {
@@ -24406,51 +24483,22 @@ set(value) {
24406
24483
 
24407
24484
  //#endregion
24408
24485
  //#region src/components/generic_input/generic_input.ts
24486
+ const genericInputPropsDefinition = {
24487
+ value: types$6.or([types$6.number(), types$6.string()]),
24488
+ onChange: types$6.function([types$6.string()]),
24489
+ "onFocused?": types$6.function([]),
24490
+ "onBlur?": types$6.function([]),
24491
+ "onInput?": types$6.function([types$6.string()]),
24492
+ "class?": types$6.string(),
24493
+ "id?": types$6.string(),
24494
+ "placeholder?": types$6.string(),
24495
+ "autofocus?": types$6.boolean(),
24496
+ "alwaysShowBorder?": types$6.boolean(),
24497
+ "selectContentOnFocus?": types$6.boolean(),
24498
+ "resetOnBlur?": types$6.boolean()
24499
+ };
24409
24500
  var GenericInput = class extends Component {
24410
- static props = {
24411
- value: [Number, String],
24412
- onChange: Function,
24413
- onFocused: {
24414
- type: Function,
24415
- optional: true
24416
- },
24417
- onBlur: {
24418
- type: Function,
24419
- optional: true
24420
- },
24421
- onInput: {
24422
- type: Function,
24423
- optional: true
24424
- },
24425
- class: {
24426
- type: String,
24427
- optional: true
24428
- },
24429
- id: {
24430
- type: String,
24431
- optional: true
24432
- },
24433
- placeholder: {
24434
- type: String,
24435
- optional: true
24436
- },
24437
- autofocus: {
24438
- type: Boolean,
24439
- optional: true
24440
- },
24441
- alwaysShowBorder: {
24442
- type: Boolean,
24443
- optional: true
24444
- },
24445
- selectContentOnFocus: {
24446
- type: Boolean,
24447
- optional: true
24448
- },
24449
- resetOnBlur: {
24450
- type: Boolean,
24451
- optional: true
24452
- }
24453
- };
24501
+ props = (0, _odoo_owl.props)(genericInputPropsDefinition);
24454
24502
  genericInputRef = (0, _odoo_owl.signal)(null);
24455
24503
  lastOnChangeValue = this.props.value.toString();
24456
24504
  setup() {
@@ -24533,13 +24581,11 @@ set(value) {
24533
24581
  var TextInput = class extends GenericInput {
24534
24582
  static template = "o-spreadsheet-TextInput";
24535
24583
  static components = {};
24536
- static props = {
24537
- ...GenericInput.props,
24538
- errorMessage: {
24539
- type: String,
24540
- optional: true
24541
- }
24542
- };
24584
+ props = (0, _odoo_owl.props)({
24585
+ ...genericInputPropsDefinition,
24586
+ value: types$6.string(),
24587
+ "errorMessage?": types$6.string()
24588
+ });
24543
24589
  get inputClass() {
24544
24590
  return [
24545
24591
  this.props.class,
@@ -24554,25 +24600,13 @@ set(value) {
24554
24600
  //#region src/components/action_button/action_button.ts
24555
24601
  var ActionButton = class extends Component {
24556
24602
  static template = "o-spreadsheet-ActionButton";
24557
- static props = {
24558
- action: Object,
24559
- hasTriangleDownIcon: {
24560
- type: Boolean,
24561
- optional: true
24562
- },
24563
- selectedColor: {
24564
- type: String,
24565
- optional: true
24566
- },
24567
- class: {
24568
- type: String,
24569
- optional: true
24570
- },
24571
- onClick: {
24572
- type: Function,
24573
- optional: true
24574
- }
24575
- };
24603
+ props = (0, _odoo_owl.props)({
24604
+ action: types$6.ActionSpec(),
24605
+ "hasTriangleDownIcon?": types$6.boolean(),
24606
+ "selectedColor?": types$6.string(),
24607
+ "class?": types$6.string(),
24608
+ "onClick?": types$6.function()
24609
+ });
24576
24610
  actionButton = createAction(this.props.action);
24577
24611
  setup() {
24578
24612
  (0, _odoo_owl.onWillUpdateProps)((nextProps) => {
@@ -24624,24 +24658,14 @@ set(value) {
24624
24658
  const INNER_GRADIENT_HEIGHT = CONTENT_WIDTH - 30 - 2 * ITEM_BORDER_WIDTH;
24625
24659
  var ColorPicker = class extends Component {
24626
24660
  static template = "o-spreadsheet-ColorPicker";
24627
- static props = {
24628
- onColorPicked: Function,
24629
- currentColor: {
24630
- type: String,
24631
- optional: true
24632
- },
24633
- maxHeight: {
24634
- type: Number,
24635
- optional: true
24636
- },
24637
- anchorRect: Object,
24638
- disableNoColor: {
24639
- type: Boolean,
24640
- optional: true
24641
- }
24642
- };
24643
- static defaultProps = { currentColor: "" };
24644
24661
  static components = { Popover };
24662
+ props = (0, _odoo_owl.props)({
24663
+ onColorPicked: types$6.function([types$6.string()]),
24664
+ "currentColor?": types$6.string(),
24665
+ "maxHeight?": types$6.Pixel(),
24666
+ anchorRect: types$6.Rect(),
24667
+ "disableNoColor?": types$6.boolean()
24668
+ }, { currentColor: "" });
24645
24669
  COLORS = COLOR_PICKER_DEFAULTS;
24646
24670
  state = (0, _odoo_owl.proxy)({
24647
24671
  showGradient: false,
@@ -24785,33 +24809,18 @@ set(value) {
24785
24809
  //#region src/components/color_picker/color_picker_widget.ts
24786
24810
  var ColorPickerWidget = class extends Component {
24787
24811
  static template = "o-spreadsheet-ColorPickerWidget";
24788
- static props = {
24789
- currentColor: {
24790
- type: String,
24791
- optional: true
24792
- },
24793
- toggleColorPicker: Function,
24794
- showColorPicker: Boolean,
24795
- onColorPicked: Function,
24796
- icon: String,
24797
- title: {
24798
- type: String,
24799
- optional: true
24800
- },
24801
- disabled: {
24802
- type: Boolean,
24803
- optional: true
24804
- },
24805
- dropdownMaxHeight: {
24806
- type: Number,
24807
- optional: true
24808
- },
24809
- class: {
24810
- type: String,
24811
- optional: true
24812
- }
24813
- };
24814
24812
  static components = { ColorPicker };
24813
+ props = (0, _odoo_owl.props)({
24814
+ "currentColor?": types$6.string(),
24815
+ toggleColorPicker: types$6.function([]),
24816
+ showColorPicker: types$6.boolean(),
24817
+ onColorPicked: types$6.function([types$6.string()]),
24818
+ icon: types$6.string(),
24819
+ "title?": types$6.string(),
24820
+ "disabled?": types$6.boolean(),
24821
+ "dropdownMaxHeight?": types$6.Pixel(),
24822
+ "class?": types$6.string()
24823
+ });
24815
24824
  colorPickerButtonRef = (0, _odoo_owl.signal)(null);
24816
24825
  get iconStyle() {
24817
24826
  return this.props.currentColor ? `border-color: ${this.props.currentColor}` : "border-bottom-style: hidden";
@@ -24825,29 +24834,19 @@ set(value) {
24825
24834
  //#region src/components/number_editor/number_editor.ts
24826
24835
  var NumberEditor = class extends Component {
24827
24836
  static template = "o-spreadsheet-NumberEditor";
24828
- static props = {
24829
- currentValue: Number,
24830
- onValueChange: Function,
24831
- onToggle: {
24832
- type: Function,
24833
- optional: true
24834
- },
24835
- onFocusInput: {
24836
- type: Function,
24837
- optional: true
24838
- },
24839
- class: String,
24840
- valueIcon: {
24841
- type: String,
24842
- optional: true
24843
- },
24844
- min: Number,
24845
- max: Number,
24846
- title: String,
24847
- valueList: Array
24848
- };
24849
- static defaultProps = { onFocusInput: () => {} };
24850
24837
  static components = { Popover };
24838
+ props = (0, _odoo_owl.props)({
24839
+ currentValue: types$6.number(),
24840
+ onValueChange: types$6.function([types$6.number()]),
24841
+ "onToggle?": types$6.function([]),
24842
+ "onFocusInput?": types$6.function([]),
24843
+ class: types$6.string(),
24844
+ "valueIcon?": types$6.string(),
24845
+ min: types$6.number(),
24846
+ max: types$6.number(),
24847
+ title: types$6.string(),
24848
+ valueList: types$6.array(types$6.number())
24849
+ }, { onFocusInput: () => {} });
24851
24850
  dropdown = (0, _odoo_owl.proxy)({ isOpen: false });
24852
24851
  inputRef = (0, _odoo_owl.signal)(null);
24853
24852
  rootEditorRef = (0, _odoo_owl.signal)(null);
@@ -24926,20 +24925,13 @@ set(value) {
24926
24925
  var FontSizeEditor = class extends Component {
24927
24926
  static template = "o-spreadsheet-FontSizeEditor";
24928
24927
  static components = { NumberEditor };
24929
- static props = {
24930
- currentFontSize: Number,
24931
- onFontSizeChanged: Function,
24932
- onToggle: {
24933
- type: Function,
24934
- optional: true
24935
- },
24936
- onFocusInput: {
24937
- type: Function,
24938
- optional: true
24939
- },
24940
- class: String
24941
- };
24942
- static defaultProps = { onFocusInput: () => {} };
24928
+ props = (0, _odoo_owl.props)({
24929
+ currentFontSize: types$6.number(),
24930
+ onFontSizeChanged: types$6.function([types$6.number()]),
24931
+ "onToggle?": types$6.function([]),
24932
+ "onFocusInput?": types$6.function([]),
24933
+ class: types$6.string()
24934
+ }, { onFocusInput: () => {} });
24943
24935
  fontSizes = FONT_SIZES;
24944
24936
  };
24945
24937
 
@@ -24952,33 +24944,15 @@ set(value) {
24952
24944
  ActionButton,
24953
24945
  FontSizeEditor
24954
24946
  };
24955
- static props = {
24956
- style: Object,
24957
- updateStyle: {
24958
- type: Function,
24959
- optional: true
24960
- },
24961
- defaultStyle: {
24962
- type: Object,
24963
- optional: true
24964
- },
24965
- hasVerticalAlign: {
24966
- type: Boolean,
24967
- optional: true
24968
- },
24969
- hasHorizontalAlign: {
24970
- type: Boolean,
24971
- optional: true
24972
- },
24973
- hasBackgroundColor: {
24974
- type: Boolean,
24975
- optional: true
24976
- },
24977
- class: {
24978
- type: String,
24979
- optional: true
24980
- }
24981
- };
24947
+ props = (0, _odoo_owl.props)({
24948
+ style: types$6.ChartStyle(),
24949
+ updateStyle: types$6.function([types$6.ChartStyle()]),
24950
+ "defaultStyle?": types$6.object({}),
24951
+ "hasVerticalAlign?": types$6.boolean(),
24952
+ "hasHorizontalAlign?": types$6.boolean(),
24953
+ "hasBackgroundColor?": types$6.boolean(),
24954
+ "class?": types$6.string()
24955
+ });
24982
24956
  openedEl = null;
24983
24957
  setup() {
24984
24958
  useExternalListener(window, "click", this.onExternalClick);
@@ -25160,7 +25134,7 @@ set(value) {
25160
25134
  var CogWheelMenu = class extends Component {
25161
25135
  static template = "o-spreadsheet-CogWheelMenu";
25162
25136
  static components = { MenuPopover };
25163
- static props = { items: Array };
25137
+ props = (0, _odoo_owl.props)({ items: types$6.array(types$6.ActionSpec()) });
25164
25138
  buttonRef = (0, _odoo_owl.signal)(null);
25165
25139
  menuState = (0, _odoo_owl.proxy)({
25166
25140
  isOpen: false,
@@ -25180,33 +25154,27 @@ set(value) {
25180
25154
  //#region src/components/side_panel/components/section/section.ts
25181
25155
  var Section = class extends Component {
25182
25156
  static template = "o_spreadsheet.Section";
25183
- static props = {
25184
- class: {
25185
- type: String,
25186
- optional: true
25187
- },
25188
- title: {
25189
- type: String,
25190
- optional: true
25191
- },
25192
- slots: Object
25193
- };
25157
+ props = (0, _odoo_owl.props)({
25158
+ "class?": types$6.string(),
25159
+ "title?": types$6.string(),
25160
+ slots: types$6.object()
25161
+ });
25194
25162
  };
25195
25163
 
25196
25164
  //#endregion
25197
25165
  //#region src/components/side_panel/carousel_panel/carousel_panel.ts
25198
25166
  var CarouselPanel = class extends Component {
25199
25167
  static template = "o-spreadsheet-CarouselPanel";
25200
- static props = {
25201
- onCloseSidePanel: Function,
25202
- figureId: String
25203
- };
25204
25168
  static components = {
25205
25169
  Section,
25206
25170
  TextInput,
25207
25171
  TextStyler,
25208
25172
  CogWheelMenu
25209
25173
  };
25174
+ props = (0, _odoo_owl.props)({
25175
+ onCloseSidePanel: types$6.function([]),
25176
+ figureId: types$6.UID()
25177
+ });
25210
25178
  DEFAULT_CAROUSEL_TITLE_STYLE = DEFAULT_CAROUSEL_TITLE_STYLE;
25211
25179
  dragAndDrop = useDragAndDropListItems();
25212
25180
  previewListRef = (0, _odoo_owl.signal)(null);
@@ -25413,34 +25381,15 @@ set(value) {
25413
25381
  //#region src/components/side_panel/components/checkbox/checkbox.ts
25414
25382
  var Checkbox = class extends Component {
25415
25383
  static template = "o-spreadsheet.Checkbox";
25416
- static props = {
25417
- label: {
25418
- type: String,
25419
- optional: true
25420
- },
25421
- value: {
25422
- type: Boolean,
25423
- optional: true
25424
- },
25425
- className: {
25426
- type: String,
25427
- optional: true
25428
- },
25429
- name: {
25430
- type: String,
25431
- optional: true
25432
- },
25433
- title: {
25434
- type: String,
25435
- optional: true
25436
- },
25437
- disabled: {
25438
- type: Boolean,
25439
- optional: true
25440
- },
25441
- onChange: Function
25442
- };
25443
- static defaultProps = { value: false };
25384
+ props = (0, _odoo_owl.props)({
25385
+ "label?": types$6.string(),
25386
+ "value?": types$6.boolean(),
25387
+ "className?": types$6.string(),
25388
+ "name?": types$6.string(),
25389
+ "title?": types$6.string(),
25390
+ "disabled?": types$6.boolean(),
25391
+ onChange: types$6.function([types$6.boolean()])
25392
+ }, { value: false });
25444
25393
  onChange(ev) {
25445
25394
  const value = ev.target.checked;
25446
25395
  this.props.onChange(value);
@@ -25449,11 +25398,11 @@ set(value) {
25449
25398
 
25450
25399
  //#endregion
25451
25400
  //#region src/components/side_panel/chart/common.ts
25452
- const ChartSidePanelPropsObject = {
25453
- chartId: String,
25454
- definition: Object,
25455
- canUpdateChart: Function,
25456
- updateChart: Function
25401
+ const chartSidePanelPropsDefinition = {
25402
+ chartId: types$6.UID(),
25403
+ definition: types$6.object({}),
25404
+ canUpdateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult()),
25405
+ updateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult())
25457
25406
  };
25458
25407
 
25459
25408
  //#endregion
@@ -25941,63 +25890,25 @@ set(value) {
25941
25890
  */
25942
25891
  var SelectionInput = class extends Component {
25943
25892
  static template = "o-spreadsheet-SelectionInput";
25944
- static props = {
25945
- ranges: Array,
25946
- hasSingleRange: {
25947
- type: Boolean,
25948
- optional: true
25949
- },
25950
- required: {
25951
- type: Boolean,
25952
- optional: true
25953
- },
25954
- autofocus: {
25955
- type: Boolean,
25956
- optional: true
25957
- },
25958
- isInvalid: {
25959
- type: Boolean,
25960
- optional: true
25961
- },
25962
- class: {
25963
- type: String,
25964
- optional: true
25965
- },
25966
- onSelectionChanged: {
25967
- type: Function,
25968
- optional: true
25969
- },
25970
- onSelectionConfirmed: {
25971
- type: Function,
25972
- optional: true
25973
- },
25974
- onSelectionReordered: {
25975
- type: Function,
25976
- optional: true
25977
- },
25978
- onSelectionRemoved: {
25979
- type: Function,
25980
- optional: true
25981
- },
25982
- onInputFocused: {
25983
- type: Function,
25984
- optional: true
25985
- },
25986
- colors: {
25987
- type: Array,
25988
- optional: true,
25989
- default: []
25990
- },
25991
- disabledRanges: {
25992
- type: Array,
25993
- optional: true,
25994
- default: []
25995
- },
25996
- disabledRangeTitle: {
25997
- type: String,
25998
- optional: true
25999
- }
26000
- };
25893
+ props = (0, _odoo_owl.props)({
25894
+ ranges: types$6.array(types$6.string()),
25895
+ "hasSingleRange?": types$6.boolean(),
25896
+ "required?": types$6.boolean(),
25897
+ "autofocus?": types$6.boolean(),
25898
+ "isInvalid?": types$6.boolean(),
25899
+ "class?": types$6.string(),
25900
+ "onSelectionChanged?": types$6.function([types$6.array(types$6.string())]),
25901
+ "onSelectionConfirmed?": types$6.function([]),
25902
+ "onSelectionReordered?": types$6.function([types$6.array(types$6.number())]),
25903
+ "onSelectionRemoved?": types$6.function([types$6.number()]),
25904
+ "onInputFocused?": types$6.function([]),
25905
+ "colors?": types$6.ArrayOf(),
25906
+ "disabledRanges?": types$6.array(types$6.boolean()),
25907
+ "disabledRangeTitle?": types$6.string()
25908
+ }, {
25909
+ colors: [],
25910
+ disabledRanges: []
25911
+ });
26001
25912
  state = (0, _odoo_owl.proxy)({ isMissing: false });
26002
25913
  dragAndDrop = useDragAndDropListItems();
26003
25914
  focusedInputRef = (0, _odoo_owl.signal)(null);
@@ -26161,47 +26072,20 @@ set(value) {
26161
26072
  SelectionInput,
26162
26073
  Section
26163
26074
  };
26164
- static props = {
26165
- ranges: Array,
26166
- dataSetStyles: {
26167
- type: Object,
26168
- optional: true
26169
- },
26170
- hasSingleRange: {
26171
- type: Boolean,
26172
- optional: true
26173
- },
26174
- onSelectionChanged: Function,
26175
- onSelectionReordered: {
26176
- type: Function,
26177
- optional: true
26178
- },
26179
- onSelectionRemoved: {
26180
- type: Function,
26181
- optional: true
26182
- },
26183
- onSelectionConfirmed: Function,
26184
- title: {
26185
- type: String,
26186
- optional: true
26187
- },
26188
- maxNumberOfUsedRanges: {
26189
- type: Number,
26190
- optional: true
26191
- },
26192
- datasetOrientation: {
26193
- type: String,
26194
- optional: true
26195
- },
26196
- canChangeDatasetOrientation: {
26197
- type: Boolean,
26198
- optional: true
26199
- },
26200
- onFlipAxis: {
26201
- type: Function,
26202
- optional: true
26203
- }
26204
- };
26075
+ props = (0, _odoo_owl.props)({
26076
+ ranges: types$6.ArrayOf(),
26077
+ "dataSetStyles?": types$6.DataSetStyle(),
26078
+ "hasSingleRange?": types$6.boolean(),
26079
+ onSelectionChanged: types$6.function([types$6.array(types$6.string())]),
26080
+ "onSelectionReordered?": types$6.function([types$6.array(types$6.number())]),
26081
+ "onSelectionRemoved?": types$6.function([types$6.number()]),
26082
+ onSelectionConfirmed: types$6.function([]),
26083
+ "maxNumberOfUsedRanges?": types$6.number(),
26084
+ "title?": types$6.string(),
26085
+ "datasetOrientation?": types$6.or([types$6.literal("rows"), types$6.literal("columns")]),
26086
+ "canChangeDatasetOrientation?": types$6.boolean(),
26087
+ "onFlipAxis?": types$6.function([types$6.string()])
26088
+ });
26205
26089
  get ranges() {
26206
26090
  return this.props.ranges.map((r) => r.dataRange);
26207
26091
  }
@@ -26229,28 +26113,18 @@ set(value) {
26229
26113
  Checkbox,
26230
26114
  Section
26231
26115
  };
26232
- static props = {
26233
- title: {
26234
- type: String,
26235
- optional: true
26236
- },
26237
- range: String,
26238
- class: {
26239
- type: String,
26240
- optional: true
26241
- },
26242
- isInvalid: Boolean,
26243
- onSelectionChanged: Function,
26244
- onSelectionConfirmed: Function,
26245
- options: {
26246
- type: Array,
26247
- optional: true
26248
- }
26249
- };
26250
- static defaultProps = {
26116
+ props = (0, _odoo_owl.props)({
26117
+ "title?": types$6.string(),
26118
+ range: types$6.string(),
26119
+ "class?": types$6.string(),
26120
+ isInvalid: types$6.boolean(),
26121
+ onSelectionChanged: types$6.function([types$6.string()]),
26122
+ onSelectionConfirmed: types$6.function([]),
26123
+ "options?": types$6.ArrayOf()
26124
+ }, {
26251
26125
  title: _t("Categories / Labels"),
26252
26126
  options: []
26253
- };
26127
+ });
26254
26128
  get sectionClass() {
26255
26129
  return "o-data-labels" + (this.props.class ? ` ${this.props.class}` : "");
26256
26130
  }
@@ -26264,28 +26138,16 @@ set(value) {
26264
26138
  ChartDataSeries,
26265
26139
  ChartLabelRange
26266
26140
  };
26267
- static props = {
26268
- chartId: String,
26269
- definition: Object,
26270
- updateChart: Function,
26271
- canUpdateChart: Function,
26272
- onErrorMessagesChanged: {
26273
- type: Function,
26274
- optional: true
26275
- },
26276
- dataSeriesTitle: {
26277
- type: String,
26278
- optional: true
26279
- },
26280
- labelRangeTitle: {
26281
- type: String,
26282
- optional: true
26283
- },
26284
- getLabelRangeOptions: {
26285
- type: Function,
26286
- optional: true
26287
- }
26288
- };
26141
+ props = (0, _odoo_owl.props)({
26142
+ chartId: types$6.UID(),
26143
+ definition: types$6.ChartDefinitionWithDataSource(),
26144
+ updateChart: types$6.function([]),
26145
+ canUpdateChart: types$6.function([]),
26146
+ "onErrorMessagesChanged?": types$6.function([types$6.array(types$6.string())]),
26147
+ "dataSeriesTitle?": types$6.string(),
26148
+ "labelRangeTitle?": types$6.string(),
26149
+ "getLabelRangeOptions?": types$6.function([])
26150
+ });
26289
26151
  get DataSourceComponent() {
26290
26152
  const dataSourceType = this.props.definition.dataSource.type;
26291
26153
  return chartDataSourceSidePanelComponentRegistry.get(dataSourceType);
@@ -26296,14 +26158,15 @@ set(value) {
26296
26158
  //#region src/components/validation_messages/validation_messages.ts
26297
26159
  var ValidationMessages = class extends Component {
26298
26160
  static template = "o-spreadsheet-ValidationMessages";
26299
- static props = {
26300
- messages: Array,
26301
- msgType: String,
26302
- singleBox: {
26303
- type: Boolean,
26304
- optional: true
26305
- }
26306
- };
26161
+ props = (0, _odoo_owl.props)({
26162
+ messages: types$6.array(types$6.string()),
26163
+ msgType: types$6.or([
26164
+ types$6.literal("warning"),
26165
+ types$6.literal("error"),
26166
+ types$6.literal("info")
26167
+ ]),
26168
+ "singleBox?": types$6.boolean()
26169
+ });
26307
26170
  get divClasses() {
26308
26171
  if (this.props.msgType === "warning") return "o-validation-warning";
26309
26172
  if (this.props.msgType === "info") return "o-validation-info";
@@ -26322,10 +26185,7 @@ set(value) {
26322
26185
  Section,
26323
26186
  ValidationMessages
26324
26187
  };
26325
- static props = { messages: {
26326
- type: Array,
26327
- element: String
26328
- } };
26188
+ props = (0, _odoo_owl.props)({ messages: types$6.array(types$6.string()) });
26329
26189
  };
26330
26190
 
26331
26191
  //#endregion
@@ -26338,7 +26198,7 @@ set(value) {
26338
26198
  Checkbox,
26339
26199
  ChartErrorSection
26340
26200
  };
26341
- static props = ChartSidePanelPropsObject;
26201
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
26342
26202
  chartTerms = ChartTerms;
26343
26203
  state = (0, _odoo_owl.proxy)({ errorMessages: [] });
26344
26204
  onErrorMessagesChanged(errorMessages) {
@@ -26385,10 +26245,7 @@ set(value) {
26385
26245
  //#region src/components/side_panel/components/collapse/collapse.ts
26386
26246
  var Collapse = class extends Component {
26387
26247
  static template = "o-spreadsheet-Collapse";
26388
- static props = {
26389
- isCollapsed: Boolean,
26390
- slots: Object
26391
- };
26248
+ props = (0, _odoo_owl.props)({ isCollapsed: types$6.boolean() });
26392
26249
  contentRef = (0, _odoo_owl.signal)(null);
26393
26250
  setup() {
26394
26251
  (0, _odoo_owl.onMounted)(() => {
@@ -26420,23 +26277,13 @@ set(value) {
26420
26277
  //#region src/components/side_panel/components/collapsible/side_panel_collapsible.ts
26421
26278
  var SidePanelCollapsible = class extends Component {
26422
26279
  static template = "o-spreadsheet-SidePanelCollapsible";
26423
- static props = {
26424
- slots: Object,
26425
- title: {
26426
- type: String,
26427
- optional: true
26428
- },
26429
- isInitiallyCollapsed: {
26430
- type: Boolean,
26431
- optional: true
26432
- },
26433
- class: {
26434
- type: String,
26435
- optional: true
26436
- }
26437
- };
26438
26280
  static components = { Collapse };
26439
- state = (0, _odoo_owl.proxy)({ isCollapsed: this.props.isInitiallyCollapsed });
26281
+ props = (0, _odoo_owl.props)({
26282
+ "title?": types$6.string(),
26283
+ "isInitiallyCollapsed?": types$6.boolean(),
26284
+ "class?": types$6.string()
26285
+ });
26286
+ state = (0, _odoo_owl.proxy)({ isCollapsed: !!this.props.isInitiallyCollapsed });
26440
26287
  toggle() {
26441
26288
  this.state.isCollapsed = !this.state.isCollapsed;
26442
26289
  }
@@ -26447,17 +26294,11 @@ set(value) {
26447
26294
  var NumberInput = class extends GenericInput {
26448
26295
  static template = "o-spreadsheet-NumberInput";
26449
26296
  static components = {};
26450
- static props = {
26451
- ...GenericInput.props,
26452
- min: {
26453
- type: Number,
26454
- optional: true
26455
- },
26456
- max: {
26457
- type: Number,
26458
- optional: true
26459
- }
26460
- };
26297
+ props = (0, _odoo_owl.props)({
26298
+ ...genericInputPropsDefinition,
26299
+ "min?": types$6.number(),
26300
+ "max?": types$6.number()
26301
+ });
26461
26302
  debouncedOnChange = debounce(this.props.onChange.bind(this), 100, true);
26462
26303
  save() {
26463
26304
  const currentValue = (this.genericInputRef()?.value || "").trim();
@@ -26478,11 +26319,11 @@ set(value) {
26478
26319
  //#region src/components/side_panel/components/badge_selection/badge_selection.ts
26479
26320
  var BadgeSelection = class extends Component {
26480
26321
  static template = "o-spreadsheet.BadgeSelection";
26481
- static props = {
26482
- choices: Array,
26483
- onChange: Function,
26484
- selectedValue: String
26485
- };
26322
+ props = (0, _odoo_owl.props)({
26323
+ choices: types$6.ArrayOf(),
26324
+ onChange: types$6.function([types$6.string()]),
26325
+ selectedValue: types$6.string()
26326
+ });
26486
26327
  };
26487
26328
 
26488
26329
  //#endregion
@@ -26494,28 +26335,18 @@ set(value) {
26494
26335
  TextStyler,
26495
26336
  TextInput
26496
26337
  };
26497
- static props = {
26498
- title: {
26499
- type: String,
26500
- optional: true
26501
- },
26502
- placeholder: {
26503
- type: String,
26504
- optional: true
26505
- },
26506
- updateTitle: Function,
26507
- name: { type: String },
26508
- style: Object,
26509
- defaultStyle: {
26510
- type: Object,
26511
- optional: true
26512
- },
26513
- updateStyle: Function
26514
- };
26515
- static defaultProps = {
26338
+ props = (0, _odoo_owl.props)({
26339
+ "title?": types$6.string(),
26340
+ "placeholder?": types$6.string(),
26341
+ updateTitle: types$6.function([types$6.string()]),
26342
+ "name?": types$6.string(),
26343
+ style: types$6.TitleDesign(),
26344
+ "defaultStyle?": types$6.object({}),
26345
+ updateStyle: types$6.function([types$6.object({})])
26346
+ }, {
26516
26347
  title: "",
26517
26348
  placeholder: ""
26518
- };
26349
+ });
26519
26350
  updateTitle(value) {
26520
26351
  this.props.updateTitle(value);
26521
26352
  }
@@ -26533,12 +26364,12 @@ set(value) {
26533
26364
  NumberInput,
26534
26365
  DateInput
26535
26366
  };
26536
- static props = {
26537
- chartId: String,
26538
- definition: Object,
26539
- updateChart: Function,
26540
- axesList: Array
26541
- };
26367
+ props = (0, _odoo_owl.props)({
26368
+ chartId: types$6.UID(),
26369
+ definition: types$6.ChartWithAxisDefinition(),
26370
+ updateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult()),
26371
+ axesList: types$6.ArrayOf()
26372
+ });
26542
26373
  state = (0, _odoo_owl.proxy)({ currentAxis: "x" });
26543
26374
  defaultFontSize = 12;
26544
26375
  get axisTitleStyle() {
@@ -26708,17 +26539,13 @@ set(value) {
26708
26539
  //#region src/components/side_panel/components/radio_selection/radio_selection.ts
26709
26540
  var RadioSelection = class extends Component {
26710
26541
  static template = "o-spreadsheet.RadioSelection";
26711
- static props = {
26712
- choices: Array,
26713
- onChange: Function,
26714
- selectedValue: { optional: false },
26715
- name: String,
26716
- direction: {
26717
- type: String,
26718
- optional: true
26719
- }
26720
- };
26721
- static defaultProps = { direction: "horizontal" };
26542
+ props = (0, _odoo_owl.props)({
26543
+ choices: types$6.ArrayOf(),
26544
+ onChange: types$6.function([types$6.any()]),
26545
+ selectedValue: types$6.string(),
26546
+ name: types$6.string(),
26547
+ "direction?": types$6.or([types$6.literal("horizontal"), types$6.literal("vertical")])
26548
+ }, { direction: "horizontal" });
26722
26549
  };
26723
26550
 
26724
26551
  //#endregion
@@ -26729,21 +26556,12 @@ set(value) {
26729
26556
  Section,
26730
26557
  ColorPicker
26731
26558
  };
26732
- static props = {
26733
- currentColor: {
26734
- type: String,
26735
- optional: true
26736
- },
26737
- title: {
26738
- type: String,
26739
- optional: true
26740
- },
26741
- onColorPicked: Function,
26742
- disableNoColor: {
26743
- type: Boolean,
26744
- optional: true
26745
- }
26746
- };
26559
+ props = (0, _odoo_owl.props)({
26560
+ "currentColor?": types$6.string(),
26561
+ "title?": types$6.string(),
26562
+ onColorPicked: types$6.function([types$6.string()]),
26563
+ "disableNoColor?": types$6.boolean()
26564
+ });
26747
26565
  colorPickerButtonRef = (0, _odoo_owl.signal)(null);
26748
26566
  state;
26749
26567
  setup() {
@@ -26779,18 +26597,13 @@ set(value) {
26779
26597
  SidePanelCollapsible,
26780
26598
  RadioSelection
26781
26599
  };
26782
- static props = {
26783
- ...ChartSidePanelPropsObject,
26784
- defaultChartTitleFontSize: {
26785
- type: Number,
26786
- optional: true
26787
- },
26788
- slots: {
26789
- type: Object,
26790
- optional: true
26791
- }
26792
- };
26793
- static defaultProps = { defaultChartTitleFontSize: 16 };
26600
+ props = (0, _odoo_owl.props)({
26601
+ chartId: types$6.UID(),
26602
+ definition: types$6.ChartDefinition(),
26603
+ canUpdateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult()),
26604
+ updateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult()),
26605
+ "defaultChartTitleFontSize?": types$6.number()
26606
+ }, { defaultChartTitleFontSize: 16 });
26794
26607
  state;
26795
26608
  setup() {
26796
26609
  this.state = (0, _odoo_owl.proxy)({ activeTool: "" });
@@ -26827,7 +26640,7 @@ set(value) {
26827
26640
  var ChartHumanizeNumbers = class extends Component {
26828
26641
  static template = "o-spreadsheet-ChartHumanizeNumbers";
26829
26642
  static components = { Checkbox };
26830
- static props = ChartSidePanelPropsObject;
26643
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
26831
26644
  get title() {
26832
26645
  const locale = this.env.model.getters.getLocale();
26833
26646
  return _t("E.g. 1234567 -> %(value)s", { value: formatValue(1234567, {
@@ -26845,14 +26658,13 @@ set(value) {
26845
26658
  Section,
26846
26659
  Select
26847
26660
  };
26848
- static props = {
26849
- ...ChartSidePanelPropsObject,
26850
- isDisabled: {
26851
- type: Boolean,
26852
- optional: true
26853
- }
26854
- };
26855
- static defaultProps = { isDisabled: false };
26661
+ props = (0, _odoo_owl.props)({
26662
+ chartId: types$6.string(),
26663
+ definition: types$6.ChartDefinitionWithDataSource(),
26664
+ canUpdateChart: types$6.function(),
26665
+ updateChart: types$6.function(),
26666
+ "isDisabled?": types$6.boolean()
26667
+ }, { isDisabled: false });
26856
26668
  updateLegendPosition(value) {
26857
26669
  this.props.updateChart(this.props.chartId, { legendPosition: value });
26858
26670
  }
@@ -26892,13 +26704,12 @@ set(value) {
26892
26704
  RoundColorPicker,
26893
26705
  Select
26894
26706
  };
26895
- static props = {
26896
- ...ChartSidePanelPropsObject,
26897
- slots: {
26898
- type: Object,
26899
- optional: true
26900
- }
26901
- };
26707
+ props = (0, _odoo_owl.props)({
26708
+ chartId: types$6.UID(),
26709
+ definition: types$6.ChartDefinitionWithDataSource(),
26710
+ canUpdateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult()),
26711
+ updateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult())
26712
+ });
26902
26713
  state = (0, _odoo_owl.proxy)({ dataSetId: this.getDataSeries()[0]?.dataSetId || "" });
26903
26714
  getRuntime() {
26904
26715
  const runtime = this.env.model.getters.getChartRuntime(this.props.chartId);
@@ -26958,13 +26769,12 @@ set(value) {
26958
26769
  NumberInput,
26959
26770
  Select
26960
26771
  };
26961
- static props = {
26962
- ...ChartSidePanelPropsObject,
26963
- slots: {
26964
- type: Object,
26965
- optional: true
26966
- }
26967
- };
26772
+ props = (0, _odoo_owl.props)({
26773
+ chartId: types$6.UID(),
26774
+ definition: types$6.ChartDefinitionWithDataSource(),
26775
+ canUpdateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult()),
26776
+ updateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult())
26777
+ });
26968
26778
  axisChoices = CHART_AXIS_CHOICES;
26969
26779
  updateDataSeriesAxis(dataSetId, axis) {
26970
26780
  const dataSetStyles = { ...this.props.definition.dataSetStyles };
@@ -27099,13 +26909,13 @@ set(value) {
27099
26909
  var ChartShowValues = class extends Component {
27100
26910
  static template = "o-spreadsheet-ChartShowValues";
27101
26911
  static components = { Checkbox };
27102
- static props = {
27103
- ...ChartSidePanelPropsObject,
27104
- defaultValue: {
27105
- type: Boolean,
27106
- optional: true
27107
- }
27108
- };
26912
+ props = (0, _odoo_owl.props)({
26913
+ chartId: types$6.UID(),
26914
+ definition: types$6.ChartDefinitionWithDataSource(),
26915
+ canUpdateChart: types$6.function([]),
26916
+ updateChart: types$6.function([]),
26917
+ "defaultValue?": types$6.boolean()
26918
+ });
27109
26919
  };
27110
26920
 
27111
26921
  //#endregion
@@ -27122,7 +26932,7 @@ set(value) {
27122
26932
  ChartShowValues,
27123
26933
  ChartHumanizeNumbers
27124
26934
  };
27125
- static props = ChartSidePanelPropsObject;
26935
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
27126
26936
  get axesList() {
27127
26937
  const { useLeftAxis, useRightAxis } = getDefinedAxis(this.props.definition);
27128
26938
  const axes = [{
@@ -27172,7 +26982,7 @@ set(value) {
27172
26982
  ChartLabelRange,
27173
26983
  ChartErrorSection
27174
26984
  };
27175
- static props = ChartSidePanelPropsObject;
26985
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
27176
26986
  state = (0, _odoo_owl.proxy)({
27177
26987
  datasetDispatchResult: void 0,
27178
26988
  labelsDispatchResult: void 0,
@@ -27308,7 +27118,7 @@ set(value) {
27308
27118
  RoundColorPicker,
27309
27119
  Checkbox
27310
27120
  };
27311
- static props = ChartSidePanelPropsObject;
27121
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
27312
27122
  get axesList() {
27313
27123
  return [{
27314
27124
  id: "x",
@@ -28301,10 +28111,7 @@ set(value) {
28301
28111
  toggleDataVisibility: toggleLineBarDataVisibility
28302
28112
  }),
28303
28113
  ...getLegendDisplayOptions(definition),
28304
- ...getCustomLegendLabels(chartFontColor(definition.background), {
28305
- pointStyle: "rect",
28306
- lineWidth: 3
28307
- })
28114
+ ...getCustomLegendLabels(chartFontColor(definition.background), { lineWidth: 3 })
28308
28115
  };
28309
28116
  }
28310
28117
  function getPyramidChartLegend(definition, args) {
@@ -29112,6 +28919,7 @@ set(value) {
29112
28919
  "stacked",
29113
28920
  "aggregated",
29114
28921
  "showValues",
28922
+ "showTotalLine",
29115
28923
  "zoomable"
29116
28924
  ],
29117
28925
  fromStrDefinition: (definition) => ({
@@ -29137,6 +28945,7 @@ set(value) {
29137
28945
  type: "bar",
29138
28946
  axesDesign: context.axesDesign,
29139
28947
  showValues: context.showValues,
28948
+ showTotalLine: context.showTotalLine,
29140
28949
  horizontal: context.horizontal,
29141
28950
  zoomable: context.zoomable,
29142
28951
  humanize: context.humanize
@@ -29738,29 +29547,17 @@ set(value) {
29738
29547
  ChartDataSeries,
29739
29548
  ChartLabelRange
29740
29549
  };
29741
- static props = {
29742
- chartId: String,
29743
- definition: Object,
29744
- dataSource: Object,
29745
- updateChart: Function,
29746
- canUpdateChart: Function,
29747
- onErrorMessagesChanged: {
29748
- type: Function,
29749
- optional: true
29750
- },
29751
- dataSeriesTitle: {
29752
- type: String,
29753
- optional: true
29754
- },
29755
- labelRangeTitle: {
29756
- type: String,
29757
- optional: true
29758
- },
29759
- getLabelRangeOptions: {
29760
- type: Function,
29761
- optional: true
29762
- }
29763
- };
29550
+ props = (0, _odoo_owl.props)({
29551
+ chartId: types$6.UID(),
29552
+ definition: types$6.ChartDefinitionWithDataSource(),
29553
+ dataSource: types$6.ChartRangeDataSource(),
29554
+ updateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult()),
29555
+ canUpdateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult()),
29556
+ "onErrorMessagesChanged?": types$6.function([types$6.array(types$6.string())]),
29557
+ "dataSeriesTitle?": types$6.string(),
29558
+ "labelRangeTitle?": types$6.string(),
29559
+ "getLabelRangeOptions?": types$6.function([])
29560
+ });
29764
29561
  state = (0, _odoo_owl.proxy)({
29765
29562
  datasetDispatchResult: void 0,
29766
29563
  labelsDispatchResult: void 0
@@ -30610,10 +30407,10 @@ set(value) {
30610
30407
  RoundColorPicker,
30611
30408
  Popover
30612
30409
  };
30613
- static props = {
30614
- definition: Object,
30615
- onUpdateColorScale: Function
30616
- };
30410
+ props = (0, _odoo_owl.props)({
30411
+ definition: types$6.object({ "colorScale?": types$6.ChartColorScale() }),
30412
+ onUpdateColorScale: types$6.function([types$6.ChartColorScale()])
30413
+ });
30617
30414
  colorScales = COLORSCALES.map((colorScale) => ({
30618
30415
  value: colorScale,
30619
30416
  label: ChartTerms.ColorScales[colorScale],
@@ -30704,7 +30501,7 @@ set(value) {
30704
30501
  RoundColorPicker,
30705
30502
  Select
30706
30503
  };
30707
- static props = ChartSidePanelPropsObject;
30504
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
30708
30505
  get axesList() {
30709
30506
  return [{
30710
30507
  id: "x",
@@ -30749,7 +30546,7 @@ set(value) {
30749
30546
  var ChartShowDataMarkers = class extends Component {
30750
30547
  static template = "o-spreadsheet-ChartShowDataMarkers";
30751
30548
  static components = { Checkbox };
30752
- static props = ChartSidePanelPropsObject;
30549
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
30753
30550
  };
30754
30551
 
30755
30552
  //#endregion
@@ -30812,12 +30609,10 @@ set(value) {
30812
30609
  Section,
30813
30610
  ChartHumanizeNumbers
30814
30611
  };
30815
- static props = {
30816
- chartId: String,
30817
- definition: Object,
30818
- updateChart: Function,
30819
- canUpdateChart: Function
30820
- };
30612
+ props = (0, _odoo_owl.props)({
30613
+ ...chartSidePanelPropsDefinition,
30614
+ definition: types$6.FunnelChartDefinition()
30615
+ });
30821
30616
  getFunnelColorItems() {
30822
30617
  const labels = this.env.model.getters.getChartRuntime(this.props.chartId).chartJsConfig.data.labels || [];
30823
30618
  const colors = getFunnelLabelColors(labels, this.props.definition.funnelColors);
@@ -30840,7 +30635,7 @@ set(value) {
30840
30635
  ChartErrorSection,
30841
30636
  ChartDataSeries
30842
30637
  };
30843
- static props = ChartSidePanelPropsObject;
30638
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
30844
30639
  state = (0, _odoo_owl.proxy)({ dataRangeDispatchResult: void 0 });
30845
30640
  dataRange = this.props.definition.dataRange;
30846
30641
  get configurationErrorMessages() {
@@ -30865,15 +30660,12 @@ set(value) {
30865
30660
  //#region src/components/composer/autocomplete_dropdown/autocomplete_dropdown.ts
30866
30661
  var TextValueProvider = class extends Component {
30867
30662
  static template = "o-spreadsheet-TextValueProvider";
30868
- static props = {
30869
- proposals: Array,
30870
- selectedIndex: {
30871
- type: Number,
30872
- optional: true
30873
- },
30874
- onValueSelected: Function,
30875
- onValueHovered: Function
30876
- };
30663
+ props = (0, _odoo_owl.props)({
30664
+ proposals: types$6.array(types$6.AutoCompleteProposal()),
30665
+ "selectedIndex?": types$6.number(),
30666
+ onValueSelected: types$6.function([types$6.AutoCompleteProposal()]),
30667
+ onValueHovered: types$6.function([types$6.string()])
30668
+ });
30877
30669
  autoCompleteListRef = (0, _odoo_owl.signal)(null);
30878
30670
  setup() {
30879
30671
  (0, _odoo_owl.useEffect)(() => {
@@ -31090,15 +30882,12 @@ set(value) {
31090
30882
  //#region src/components/composer/formula_assistant/formula_assistant.ts
31091
30883
  var FunctionDescriptionProvider = class extends Component {
31092
30884
  static template = "o-spreadsheet-FunctionDescriptionProvider";
31093
- static props = {
31094
- functionDescription: Object,
31095
- argsToFocus: Array,
31096
- repeatingArgGroupIndex: {
31097
- type: Number,
31098
- optional: true
31099
- }
31100
- };
31101
30885
  static components = { Collapse };
30886
+ props = (0, _odoo_owl.props)({
30887
+ functionDescription: types$6.FunctionDescription(),
30888
+ argsToFocus: types$6.array(types$6.number()),
30889
+ "repeatingArgGroupIndex?": types$6.number()
30890
+ });
31102
30891
  state = (0, _odoo_owl.proxy)({ isCollapsed: true });
31103
30892
  toggle() {
31104
30893
  this.state.isCollapsed = !this.state.isCollapsed;
@@ -31162,11 +30951,11 @@ set(value) {
31162
30951
  const BUBBLE_ARROW_SIZE = 7;
31163
30952
  var SpeechBubble = class extends Component {
31164
30953
  static template = "o-spreadsheet-SpeechBubble";
31165
- static props = {
31166
- content: String,
31167
- anchorRect: Object
31168
- };
31169
30954
  static components = {};
30955
+ props = (0, _odoo_owl.props)({
30956
+ content: types$6.string(),
30957
+ anchorRect: types$6.Rect()
30958
+ });
31170
30959
  spreadsheetRect = useSpreadsheetRect();
31171
30960
  bubbleRef = (0, _odoo_owl.signal)(null);
31172
30961
  setup() {
@@ -31193,62 +30982,30 @@ set(value) {
31193
30982
  const highlightClass = "highlight-flag";
31194
30983
  var Composer = class extends Component {
31195
30984
  static template = "o-spreadsheet-Composer";
31196
- static props = {
31197
- focus: { validate: (value) => [
31198
- "inactive",
31199
- "cellFocus",
31200
- "contentFocus"
31201
- ].includes(value) },
31202
- inputStyle: {
31203
- type: String,
31204
- optional: true
31205
- },
31206
- rect: {
31207
- type: Object,
31208
- optional: true
31209
- },
31210
- delimitation: {
31211
- type: Object,
31212
- optional: true
31213
- },
31214
- onComposerCellFocused: {
31215
- type: Function,
31216
- optional: true
31217
- },
31218
- onComposerContentFocused: Function,
31219
- isDefaultFocus: {
31220
- type: Boolean,
31221
- optional: true
31222
- },
31223
- onInputContextMenu: {
31224
- type: Function,
31225
- optional: true
31226
- },
31227
- composerStore: Object,
31228
- placeholder: {
31229
- type: String,
31230
- optional: true
31231
- },
31232
- inputMode: {
31233
- type: String,
31234
- optional: true
31235
- },
31236
- showAssistant: {
31237
- type: Boolean,
31238
- optional: true
31239
- }
31240
- };
31241
30985
  static components = {
31242
30986
  TextValueProvider,
31243
30987
  FunctionDescriptionProvider,
31244
30988
  SpeechBubble
31245
30989
  };
31246
- static defaultProps = {
30990
+ props = (0, _odoo_owl.props)({
30991
+ focus: types$6.ComposerFocusType(),
30992
+ "inputStyle?": types$6.string(),
30993
+ "rect?": types$6.Rect(),
30994
+ "delimitation?": types$6.DOMDimension(),
30995
+ "onComposerCellFocused?": types$6.function([types$6.string()]),
30996
+ onComposerContentFocused: types$6.function([types$6.ComposerSelection()]),
30997
+ "isDefaultFocus?": types$6.boolean(),
30998
+ "onInputContextMenu?": types$6.function([types$6.instanceOf(MouseEvent)]),
30999
+ composerStore: types$6.Store(),
31000
+ "placeholder?": types$6.string(),
31001
+ "inputMode?": types$6.string(),
31002
+ "showAssistant?": types$6.boolean()
31003
+ }, {
31247
31004
  inputStyle: "",
31248
31005
  isDefaultFocus: false,
31249
31006
  inputMode: "text",
31250
31007
  showAssistant: true
31251
- };
31008
+ });
31252
31009
  DOMFocusableElementStore;
31253
31010
  composerRef = (0, _odoo_owl.signal)(null);
31254
31011
  containerRef = (0, _odoo_owl.signal)(null);
@@ -32813,54 +32570,23 @@ set(value) {
32813
32570
  //#region src/components/composer/standalone_composer/standalone_composer.ts
32814
32571
  var StandaloneComposer = class extends Component {
32815
32572
  static template = "o-spreadsheet-StandaloneComposer";
32816
- static props = {
32817
- composerContent: {
32818
- type: String,
32819
- optional: true
32820
- },
32821
- defaultRangeSheetId: {
32822
- type: String,
32823
- optional: true
32824
- },
32825
- defaultStatic: {
32826
- type: Boolean,
32827
- optional: true
32828
- },
32829
- onConfirm: Function,
32830
- contextualAutocomplete: {
32831
- type: Object,
32832
- optional: true
32833
- },
32834
- placeholder: {
32835
- type: String,
32836
- optional: true
32837
- },
32838
- title: {
32839
- type: String,
32840
- optional: true
32841
- },
32842
- class: {
32843
- type: String,
32844
- optional: true
32845
- },
32846
- invalid: {
32847
- type: Boolean,
32848
- optional: true
32849
- },
32850
- autofocus: {
32851
- type: Boolean,
32852
- optional: true
32853
- },
32854
- getContextualColoredSymbolToken: {
32855
- type: Function,
32856
- optional: true
32857
- }
32858
- };
32859
32573
  static components = { Composer };
32860
- static defaultProps = {
32574
+ props = (0, _odoo_owl.props)({
32575
+ onConfirm: types$6.function([types$6.string()]),
32576
+ "composerContent?": types$6.string(),
32577
+ defaultRangeSheetId: types$6.UID(),
32578
+ "defaultStatic?": types$6.boolean(),
32579
+ "contextualAutocomplete?": types$6.AutoCompleteProviderDefinition(),
32580
+ "placeholder?": types$6.string(),
32581
+ "title?": types$6.string(),
32582
+ "class?": types$6.string(),
32583
+ "invalid?": types$6.boolean(),
32584
+ "autofocus?": types$6.boolean(),
32585
+ "getContextualColoredSymbolToken?": types$6.function([types$6.Token()], types$6.Color())
32586
+ }, {
32861
32587
  composerContent: "",
32862
32588
  defaultStatic: false
32863
- };
32589
+ });
32864
32590
  composerFocusStore;
32865
32591
  standaloneComposerStore;
32866
32592
  composerInterface;
@@ -32924,7 +32650,7 @@ set(value) {
32924
32650
  ChartHumanizeNumbers,
32925
32651
  Select
32926
32652
  };
32927
- static props = ChartSidePanelPropsObject;
32653
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
32928
32654
  state;
32929
32655
  setup() {
32930
32656
  this.state = (0, _odoo_owl.proxy)({
@@ -33055,11 +32781,11 @@ set(value) {
33055
32781
  Section,
33056
32782
  Select
33057
32783
  };
33058
- static props = {
33059
- chartId: String,
33060
- definition: Object,
33061
- updateChart: Function
33062
- };
32784
+ props = (0, _odoo_owl.props)({
32785
+ chartId: types$6.UID(),
32786
+ definition: types$6.GeoChartDefinition(),
32787
+ updateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult())
32788
+ });
33063
32789
  updateSelectedRegion(value) {
33064
32790
  this.props.updateChart(this.props.chartId, { region: value });
33065
32791
  }
@@ -33209,10 +32935,10 @@ set(value) {
33209
32935
  Section,
33210
32936
  NumberInput
33211
32937
  };
33212
- static props = {
33213
- onValueChange: Function,
33214
- value: Number
33215
- };
32938
+ props = (0, _odoo_owl.props)({
32939
+ onValueChange: types$6.function([types$6.number()]),
32940
+ value: types$6.number()
32941
+ });
33216
32942
  onChange(value) {
33217
32943
  if (!isNaN(Number(value))) this.props.onValueChange(clip(Number(value), 0, 95));
33218
32944
  }
@@ -33234,7 +32960,7 @@ set(value) {
33234
32960
  RoundColorPicker,
33235
32961
  Select
33236
32962
  };
33237
- static props = ChartSidePanelPropsObject;
32963
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33238
32964
  state = (0, _odoo_owl.proxy)({ index: 0 });
33239
32965
  get runtime() {
33240
32966
  return this.env.model.getters.getChartRuntime(this.props.chartId);
@@ -33294,7 +33020,7 @@ set(value) {
33294
33020
  Checkbox,
33295
33021
  ChartHumanizeNumbers
33296
33022
  };
33297
- static props = ChartSidePanelPropsObject;
33023
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33298
33024
  };
33299
33025
 
33300
33026
  //#endregion
@@ -33344,7 +33070,7 @@ set(value) {
33344
33070
  Section,
33345
33071
  Select
33346
33072
  };
33347
- static props = ChartSidePanelPropsObject;
33073
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33348
33074
  state = (0, _odoo_owl.proxy)({
33349
33075
  keyValueDispatchResult: void 0,
33350
33076
  baselineDispatchResult: void 0
@@ -33418,7 +33144,7 @@ set(value) {
33418
33144
  ChartTitle,
33419
33145
  ChartHumanizeNumbers
33420
33146
  };
33421
- static props = ChartSidePanelPropsObject;
33147
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33422
33148
  get colorsSectionTitle() {
33423
33149
  return this.props.definition.baselineMode === "progress" ? _t("Progress bar colors") : _t("Baseline colors");
33424
33150
  }
@@ -33499,7 +33225,7 @@ set(value) {
33499
33225
  PieHoleSize,
33500
33226
  ChartHumanizeNumbers
33501
33227
  };
33502
- static props = ChartSidePanelPropsObject;
33228
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33503
33229
  defaults = SunburstChartDefaults;
33504
33230
  get showValues() {
33505
33231
  return this.props.definition.showValues ?? SunburstChartDefaults.showValues;
@@ -33532,11 +33258,11 @@ set(value) {
33532
33258
  Checkbox,
33533
33259
  RoundColorPicker
33534
33260
  };
33535
- static props = {
33536
- chartId: String,
33537
- definition: Object,
33538
- onColorChanged: Function
33539
- };
33261
+ props = (0, _odoo_owl.props)({
33262
+ chartId: types$6.UID(),
33263
+ definition: types$6.TreeMapChartDefinition(),
33264
+ onColorChanged: types$6.function([types$6.TreeMapCategoryColorOptions()], types$6.DispatchResult())
33265
+ });
33540
33266
  get coloringOptions() {
33541
33267
  const coloringOptions = this.props.definition.coloringOptions ?? TreeMapChartDefaults.coloringOptions;
33542
33268
  if (coloringOptions.type !== "categoryColor") throw new Error("Coloring options is not solid color");
@@ -33564,11 +33290,11 @@ set(value) {
33564
33290
  var TreeMapColorScale = class extends Component {
33565
33291
  static template = "o-spreadsheet-TreeMapColorScale";
33566
33292
  static components = { RoundColorPicker };
33567
- static props = {
33568
- chartId: String,
33569
- definition: Object,
33570
- onColorChanged: Function
33571
- };
33293
+ props = (0, _odoo_owl.props)({
33294
+ chartId: types$6.UID(),
33295
+ definition: types$6.TreeMapChartDefinition(),
33296
+ onColorChanged: types$6.function([types$6.TreeMapColorScaleOptions()], types$6.DispatchResult())
33297
+ });
33572
33298
  get coloringOptions() {
33573
33299
  const coloringOptions = this.props.definition.coloringOptions ?? TreeMapChartDefaults.coloringOptions;
33574
33300
  if (coloringOptions.type !== "colorScale") throw new Error("Coloring options is not a color scale");
@@ -33610,7 +33336,7 @@ set(value) {
33610
33336
  TreeMapColorScale,
33611
33337
  ChartHumanizeNumbers
33612
33338
  };
33613
- static props = ChartSidePanelPropsObject;
33339
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33614
33340
  savedColors = {
33615
33341
  categoryColors: DEFAULT_SOLID_COLOR,
33616
33342
  colorScale: DEFAULT_COLOR_SCALE
@@ -33667,7 +33393,7 @@ set(value) {
33667
33393
  ChartLegend,
33668
33394
  ChartHumanizeNumbers
33669
33395
  };
33670
- static props = ChartSidePanelPropsObject;
33396
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33671
33397
  axisChoices = CHART_AXIS_CHOICES;
33672
33398
  onUpdateShowSubTotals(showSubTotals) {
33673
33399
  this.props.updateChart(this.props.chartId, { showSubTotals });
@@ -33781,10 +33507,10 @@ set(value) {
33781
33507
  Section,
33782
33508
  Popover
33783
33509
  };
33784
- static props = {
33785
- chartId: String,
33786
- chartPanelStore: Object
33787
- };
33510
+ props = (0, _odoo_owl.props)({
33511
+ chartId: types$6.UID(),
33512
+ chartPanelStore: types$6.Store()
33513
+ });
33788
33514
  categories = chartCategories;
33789
33515
  chartTypeByCategories = {};
33790
33516
  popoverRef = (0, _odoo_owl.signal)(null);
@@ -33959,10 +33685,10 @@ set(value) {
33959
33685
  Section,
33960
33686
  ChartTypePicker
33961
33687
  };
33962
- static props = {
33963
- onCloseSidePanel: Function,
33964
- chartId: String
33965
- };
33688
+ props = (0, _odoo_owl.props)({
33689
+ onCloseSidePanel: types$6.function([]),
33690
+ chartId: types$6.UID()
33691
+ });
33966
33692
  store;
33967
33693
  get chartId() {
33968
33694
  return this.props.chartId;
@@ -34353,13 +34079,13 @@ set(value) {
34353
34079
  //#region src/components/side_panel/column_stats/column_stats_panel.ts
34354
34080
  var ColumnStatsPanel = class extends Component {
34355
34081
  static template = "o-spreadsheet-ColumnStatsPanel";
34356
- static props = { onCloseSidePanel: Function };
34357
34082
  static components = {
34358
34083
  NumberInput,
34359
34084
  SidePanelCollapsible,
34360
34085
  BadgeSelection,
34361
34086
  Section
34362
34087
  };
34088
+ props = (0, _odoo_owl.props)({ onCloseSidePanel: types$6.function([]) });
34363
34089
  state = (0, _odoo_owl.proxy)({
34364
34090
  currentChart: "count",
34365
34091
  currentFrequencyOrder: "descending",
@@ -34602,7 +34328,7 @@ set(value) {
34602
34328
  ColorPickerWidget,
34603
34329
  Select
34604
34330
  };
34605
- static props = { store: Object };
34331
+ props = (0, _odoo_owl.props)({ store: types$6.Store() });
34606
34332
  getTextDecoration = getTextDecoration;
34607
34333
  get rule() {
34608
34334
  return this.props.store.state.rules.cellIs;
@@ -34612,18 +34338,12 @@ set(value) {
34612
34338
  //#endregion
34613
34339
  //#region src/components/side_panel/criterion_form/criterion_form.ts
34614
34340
  var CriterionForm = class extends Component {
34615
- static props = {
34616
- criterion: Object,
34617
- onCriterionChanged: Function,
34618
- disableFormulas: {
34619
- type: Boolean,
34620
- optional: true
34621
- },
34622
- autofocus: {
34623
- type: Boolean,
34624
- optional: true
34625
- }
34626
- };
34341
+ props = (0, _odoo_owl.props)({
34342
+ criterion: types$6.object({}),
34343
+ onCriterionChanged: types$6.function([types$6.object({})]),
34344
+ "disableFormulas?": types$6.boolean(),
34345
+ "autofocus?": types$6.boolean()
34346
+ });
34627
34347
  setup() {
34628
34348
  const composerFocusStore = useStore(ComposerFocusStore);
34629
34349
  if (composerFocusStore.activeComposer.editionMode !== "inactive") composerFocusStore.activeComposer.stopEdition();
@@ -35204,41 +34924,22 @@ set(value) {
35204
34924
  //#region src/components/side_panel/criterion_form/criterion_input/criterion_input.ts
35205
34925
  var CriterionInput = class extends Component {
35206
34926
  static template = "o-spreadsheet-CriterionInput";
35207
- static props = {
35208
- value: {
35209
- type: String,
35210
- optional: true
35211
- },
35212
- criterionType: String,
35213
- onValueChanged: Function,
35214
- onKeyDown: {
35215
- type: Function,
35216
- optional: true
35217
- },
35218
- focused: {
35219
- type: Boolean,
35220
- optional: true
35221
- },
35222
- onBlur: {
35223
- type: Function,
35224
- optional: true
35225
- },
35226
- onFocus: {
35227
- type: Function,
35228
- optional: true
35229
- },
35230
- disableFormulas: {
35231
- type: Boolean,
35232
- optional: true
35233
- }
35234
- };
35235
- static defaultProps = {
34927
+ static components = { StandaloneComposer };
34928
+ props = (0, _odoo_owl.props)({
34929
+ "value?": types$6.string(),
34930
+ criterionType: types$6.DataValidationCriterionType(),
34931
+ onValueChanged: types$6.function([types$6.string()]),
34932
+ "onKeyDown?": types$6.function([types$6.instanceOf(KeyboardEvent)]),
34933
+ "focused?": types$6.boolean(),
34934
+ "onBlur?": types$6.function([]),
34935
+ "onFocus?": types$6.function([]),
34936
+ "disableFormulas?": types$6.boolean()
34937
+ }, {
35236
34938
  value: "",
35237
34939
  onKeyDown: () => {},
35238
34940
  focused: false,
35239
34941
  onBlur: () => {}
35240
- };
35241
- static components = { StandaloneComposer };
34942
+ });
35242
34943
  inputRef = (0, _odoo_owl.signal)(null);
35243
34944
  setup() {
35244
34945
  useLayoutEffect(() => {
@@ -36065,10 +35766,14 @@ set(value) {
36065
35766
  StandaloneComposer,
36066
35767
  Select
36067
35768
  };
36068
- static props = {
36069
- store: Object,
36070
- thresholdType: String
36071
- };
35769
+ props = (0, _odoo_owl.props)({
35770
+ store: types$6.Store(),
35771
+ thresholdType: types$6.or([
35772
+ types$6.literal("minimum"),
35773
+ types$6.literal("midpoint"),
35774
+ types$6.literal("maximum")
35775
+ ])
35776
+ });
36072
35777
  get rule() {
36073
35778
  return this.props.store.state.rules.colorScale;
36074
35779
  }
@@ -36139,7 +35844,7 @@ set(value) {
36139
35844
  var ColorScaleRuleEditor = class extends Component {
36140
35845
  static template = "o-spreadsheet-ColorScaleRuleEditor";
36141
35846
  static components = { ColorScaleRuleEditorThreshold };
36142
- static props = { store: Object };
35847
+ props = (0, _odoo_owl.props)({ store: types$6.Store() });
36143
35848
  };
36144
35849
 
36145
35850
  //#endregion
@@ -36150,7 +35855,7 @@ set(value) {
36150
35855
  SelectionInput,
36151
35856
  RoundColorPicker
36152
35857
  };
36153
- static props = { store: Object };
35858
+ props = (0, _odoo_owl.props)({ store: types$6.Store() });
36154
35859
  get rule() {
36155
35860
  return this.props.store.state.rules.dataBar;
36156
35861
  }
@@ -36161,7 +35866,7 @@ set(value) {
36161
35866
  //#region src/components/icon_picker/icon_picker.ts
36162
35867
  var IconPicker = class extends Component {
36163
35868
  static template = "o-spreadsheet-IconPicker";
36164
- static props = { onIconPicked: Function };
35869
+ props = (0, _odoo_owl.props)({ onIconPicked: types$6.function([types$6.string()]) });
36165
35870
  onIconClick(icon) {
36166
35871
  if (icon) this.props.onIconPicked(icon);
36167
35872
  }
@@ -36182,7 +35887,7 @@ set(value) {
36182
35887
  StandaloneComposer,
36183
35888
  Select
36184
35889
  };
36185
- static props = { store: Object };
35890
+ props = (0, _odoo_owl.props)({ store: types$6.Store() });
36186
35891
  get rule() {
36187
35892
  return this.props.store.state.rules.iconSet;
36188
35893
  }
@@ -36261,11 +35966,11 @@ set(value) {
36261
35966
  IconSetRuleEditor,
36262
35967
  DataBarRuleEditor
36263
35968
  };
36264
- static props = {
36265
- cf: Object,
36266
- isNewCf: Boolean,
36267
- onCloseSidePanel: Function
36268
- };
35969
+ props = (0, _odoo_owl.props)({
35970
+ cf: types$6.ConditionalFormat(),
35971
+ isNewCf: types$6.boolean(),
35972
+ onCloseSidePanel: types$6.function([])
35973
+ });
36269
35974
  activeSheetId;
36270
35975
  store;
36271
35976
  setup() {
@@ -36321,11 +36026,11 @@ set(value) {
36321
36026
  //#region src/components/side_panel/conditional_formatting/cf_preview/cf_preview.ts
36322
36027
  var ConditionalFormatPreview = class extends Component {
36323
36028
  static template = "o-spreadsheet-ConditionalFormatPreview";
36324
- static props = {
36325
- conditionalFormat: Object,
36326
- onMouseDown: Function,
36327
- class: String
36328
- };
36029
+ props = (0, _odoo_owl.props)({
36030
+ conditionalFormat: types$6.ConditionalFormat(),
36031
+ onMouseDown: types$6.function([types$6.instanceOf(MouseEvent)]),
36032
+ class: types$6.string()
36033
+ });
36329
36034
  icons = ICONS;
36330
36035
  cfPreviewRef = (0, _odoo_owl.signal)(null);
36331
36036
  setup() {
@@ -36381,8 +36086,8 @@ set(value) {
36381
36086
  //#region src/components/side_panel/conditional_formatting/cf_preview_list/cf_preview_list.ts
36382
36087
  var ConditionalFormatPreviewList = class extends Component {
36383
36088
  static template = "o-spreadsheet-ConditionalFormatPreviewList";
36384
- static props = { onCloseSidePanel: Function };
36385
36089
  static components = { ConditionalFormatPreview };
36090
+ props = (0, _odoo_owl.props)({ onCloseSidePanel: types$6.function([]) });
36386
36091
  dragAndDrop = useDragAndDropListItems();
36387
36092
  cfListRef = (0, _odoo_owl.signal)(null);
36388
36093
  get conditionalFormats() {
@@ -36451,7 +36156,7 @@ set(value) {
36451
36156
  //#region src/components/side_panel/data_validation/dv_preview/dv_preview.ts
36452
36157
  var DataValidationPreview = class extends Component {
36453
36158
  static template = "o-spreadsheet-DataValidationPreview";
36454
- static props = { rule: Object };
36159
+ props = (0, _odoo_owl.props)({ rule: types$6.DataValidationRule() });
36455
36160
  dvPreviewRef = (0, _odoo_owl.signal)(null);
36456
36161
  setup() {
36457
36162
  useHighlightsOnHover(this.dvPreviewRef, this);
@@ -36486,8 +36191,8 @@ set(value) {
36486
36191
  //#region src/components/side_panel/data_validation/data_validation_panel.ts
36487
36192
  var DataValidationPanel = class extends Component {
36488
36193
  static template = "o-spreadsheet-DataValidationPanel";
36489
- static props = { onCloseSidePanel: Function };
36490
36194
  static components = { DataValidationPreview };
36195
+ props = (0, _odoo_owl.props)({ onCloseSidePanel: types$6.function([]) });
36491
36196
  addDataValidationRule() {
36492
36197
  this.env.replaceSidePanel("DataValidationEditor", "DataValidation", { ruleId: UuidGenerator.smallUuid() });
36493
36198
  }
@@ -36541,14 +36246,11 @@ set(value) {
36541
36246
  Section,
36542
36247
  ValidationMessages
36543
36248
  };
36544
- static props = {
36545
- ruleId: String,
36546
- onCancel: {
36547
- type: Function,
36548
- optional: true
36549
- },
36550
- onCloseSidePanel: Function
36551
- };
36249
+ props = (0, _odoo_owl.props)({
36250
+ ruleId: types$6.UID(),
36251
+ "onCancel?": types$6.function([]),
36252
+ onCloseSidePanel: types$6.function([])
36253
+ });
36552
36254
  state = (0, _odoo_owl.proxy)({
36553
36255
  rule: this.defaultDataValidationRule,
36554
36256
  errors: [],
@@ -36995,7 +36697,7 @@ set(value) {
36995
36697
  ValidationMessages,
36996
36698
  Select
36997
36699
  };
36998
- static props = { onCloseSidePanel: Function };
36700
+ props = (0, _odoo_owl.props)({ onCloseSidePanel: types$6.function([]) });
36999
36701
  searchInputRef = (0, _odoo_owl.signal)(null);
37000
36702
  store;
37001
36703
  state;
@@ -37821,13 +37523,6 @@ set(value) {
37821
37523
  //#region src/components/side_panel/more_formats/more_formats.ts
37822
37524
  var MoreFormatsPanel = class extends Component {
37823
37525
  static template = "o-spreadsheet-MoreFormatsPanel";
37824
- static props = {
37825
- onCloseSidePanel: Function,
37826
- category: {
37827
- type: String,
37828
- optional: true
37829
- }
37830
- };
37831
37526
  static components = {
37832
37527
  BadgeSelection,
37833
37528
  Section,
@@ -37835,6 +37530,14 @@ set(value) {
37835
37530
  Checkbox,
37836
37531
  Select
37837
37532
  };
37533
+ props = (0, _odoo_owl.props)({
37534
+ onCloseSidePanel: types$6.function([]),
37535
+ "category?": types$6.or([
37536
+ types$6.literal("number"),
37537
+ types$6.literal("date"),
37538
+ types$6.literal("currency")
37539
+ ])
37540
+ });
37838
37541
  store;
37839
37542
  setup() {
37840
37543
  this.store = useLocalStore(MoreFormatsStore, this.props.category);
@@ -37890,11 +37593,11 @@ set(value) {
37890
37593
  //#region src/components/side_panel/named_ranges_panel/named_range_preview/named_range_preview.ts
37891
37594
  var NamedRangePreview = class extends Component {
37892
37595
  static template = "o-spreadsheet-NamedRangePreview";
37893
- static props = { namedRange: Object };
37894
37596
  static components = {
37895
37597
  SelectionInput,
37896
37598
  TextInput
37897
37599
  };
37600
+ props = (0, _odoo_owl.props)({ namedRange: types$6.NamedRange() });
37898
37601
  state = (0, _odoo_owl.proxy)({});
37899
37602
  namedRangePreviewRef = (0, _odoo_owl.signal)(null);
37900
37603
  setup() {
@@ -37946,12 +37649,12 @@ set(value) {
37946
37649
  //#region src/components/side_panel/named_ranges_panel/named_ranges_panel.ts
37947
37650
  var NamedRangesPanel = class extends Component {
37948
37651
  static template = "o-spreadsheet-NamedRangesPanel";
37949
- static props = { onCloseSidePanel: Function };
37950
37652
  static components = {
37951
37653
  NamedRangePreview,
37952
37654
  SelectionInput,
37953
37655
  TextInput
37954
37656
  };
37657
+ props = (0, _odoo_owl.props)({ onCloseSidePanel: types$6.function([]) });
37955
37658
  get namedRanges() {
37956
37659
  return this.env.model.getters.getNamedRanges();
37957
37660
  }
@@ -37972,7 +37675,7 @@ set(value) {
37972
37675
  var PerfProfilePanel = class extends Component {
37973
37676
  static template = "o-spreadsheet-PerfProfilePanel";
37974
37677
  static components = { Section };
37975
- static props = { onCloseSidePanel: Function };
37678
+ props = (0, _odoo_owl.props)({ onCloseSidePanel: types$6.function([]) });
37976
37679
  state = (0, _odoo_owl.proxy)({
37977
37680
  selectedIndex: void 0,
37978
37681
  lastProfiledTime: 0
@@ -38188,11 +37891,11 @@ set(value) {
38188
37891
  //#region src/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel.ts
38189
37892
  var PivotMeasureDisplayPanel = class extends Component {
38190
37893
  static template = "o-spreadsheet-PivotMeasureDisplayPanel";
38191
- static props = {
38192
- onCloseSidePanel: Function,
38193
- pivotId: String,
38194
- measure: Object
38195
- };
37894
+ props = (0, _odoo_owl.props)({
37895
+ onCloseSidePanel: types$6.function([]),
37896
+ pivotId: types$6.UID(),
37897
+ measure: types$6.PivotCoreMeasure()
37898
+ });
38196
37899
  static components = {
38197
37900
  Section,
38198
37901
  Checkbox,
@@ -38254,13 +37957,13 @@ set(value) {
38254
37957
  //#region src/components/side_panel/pivot/pivot_defer_update/pivot_defer_update.ts
38255
37958
  var PivotDeferUpdate = class extends Component {
38256
37959
  static template = "o-spreadsheet-PivotDeferUpdate";
38257
- static props = {
38258
- deferUpdate: Boolean,
38259
- isDirty: Boolean,
38260
- toggleDeferUpdate: Function,
38261
- discard: Function,
38262
- apply: Function
38263
- };
37960
+ props = (0, _odoo_owl.props)({
37961
+ deferUpdate: types$6.boolean(),
37962
+ isDirty: types$6.boolean(),
37963
+ toggleDeferUpdate: types$6.function([types$6.boolean()]),
37964
+ discard: types$6.function([]),
37965
+ apply: types$6.function([])
37966
+ });
38264
37967
  static components = {
38265
37968
  Section,
38266
37969
  Checkbox
@@ -38273,6 +37976,150 @@ set(value) {
38273
37976
  }
38274
37977
  };
38275
37978
 
37979
+ //#endregion
37980
+ //#region src/helpers/pivot/pivot_runtime_definition.ts
37981
+ /**
37982
+ * Represent a pivot runtime definition. A pivot runtime definition is a pivot
37983
+ * definition that has been enriched to include the display name of its attributes
37984
+ * (measures, columns, rows).
37985
+ */
37986
+ var PivotRuntimeDefinition = class {
37987
+ measures;
37988
+ columns;
37989
+ rows;
37990
+ filters;
37991
+ sortedColumn;
37992
+ collapsedDomains;
37993
+ customFields;
37994
+ constructor(definition, fields) {
37995
+ this.columns = definition.columns.map((dimension) => this.createPivotDimension(fields, dimension));
37996
+ this.rows = definition.rows.map((dimension) => this.createPivotDimension(fields, dimension));
37997
+ this.measures = definition.measures.map((measure) => this.createMeasure(fields, measure));
37998
+ this.filters = (definition.filters ?? []).map((filter) => this.createPivotFilter(fields, filter));
37999
+ this.sortedColumn = definition.sortedColumn;
38000
+ this.collapsedDomains = definition.collapsedDomains;
38001
+ this.customFields = definition.customFields;
38002
+ }
38003
+ getDimension(nameWithGranularity) {
38004
+ const dimension = this.columns.find((d) => d.nameWithGranularity === nameWithGranularity) || this.rows.find((d) => d.nameWithGranularity === nameWithGranularity);
38005
+ if (!dimension) throw new EvaluationError(_t("Dimension %s does not exist", nameWithGranularity));
38006
+ return dimension;
38007
+ }
38008
+ getMeasure(id) {
38009
+ const measure = this.measures.find((measure) => measure.id === id);
38010
+ if (!measure) throw new EvaluationError(_t("Field %s is not a measure", id));
38011
+ return measure;
38012
+ }
38013
+ get invalidAggregatorsForCustomField() {
38014
+ return [];
38015
+ }
38016
+ createMeasure(fields, measure) {
38017
+ const fieldName = measure.fieldName;
38018
+ const field = fieldName === "__count" ? {
38019
+ name: "__count",
38020
+ string: _t("Count"),
38021
+ type: "integer",
38022
+ aggregator: "sum"
38023
+ } : fields[fieldName];
38024
+ const aggregator = measure.aggregator;
38025
+ let isValid = !!(field || measure.computedBy);
38026
+ for (const dimension of [...this.rows, ...this.columns]) if (fields[dimension.fieldName]?.isCustomField && this.invalidAggregatorsForCustomField.includes(aggregator)) {
38027
+ isValid = false;
38028
+ break;
38029
+ }
38030
+ return {
38031
+ /**
38032
+ * Get the id of the measure, as it is stored in the pivot formula
38033
+ */
38034
+ id: measure.id,
38035
+ /**
38036
+ * Display name of the measure
38037
+ * e.g. "__count" -> "Count", "amount_total" -> "Total Amount"
38038
+ */
38039
+ get displayName() {
38040
+ return measure.userDefinedName ?? field?.string ?? measure.fieldName;
38041
+ },
38042
+ userDefinedName: measure.userDefinedName,
38043
+ /**
38044
+ * Get the name of the field of the measure
38045
+ */
38046
+ fieldName,
38047
+ /**
38048
+ * Get the aggregator of the measure
38049
+ */
38050
+ aggregator,
38051
+ /**
38052
+ * Get the type of the measure field
38053
+ * e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
38054
+ */
38055
+ type: fieldName === "__count" ? "integer" : field?.type ?? "integer",
38056
+ isValid,
38057
+ isHidden: measure.isHidden,
38058
+ format: measure.format,
38059
+ computedBy: measure.computedBy,
38060
+ display: measure.display
38061
+ };
38062
+ }
38063
+ createPivotDimension(fields, dimension) {
38064
+ const field = fields[dimension.fieldName];
38065
+ const type = field?.type ?? "integer";
38066
+ const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
38067
+ return {
38068
+ /**
38069
+ * Get the display name of the dimension
38070
+ * e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
38071
+ */
38072
+ displayName: field?.string ?? dimension.fieldName,
38073
+ /**
38074
+ * Get the name of the dimension, as it is stored in the pivot formula
38075
+ * e.g. "stage_id", "create_date:month"
38076
+ */
38077
+ nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
38078
+ /**
38079
+ * Get the name of the field of the dimension
38080
+ * e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
38081
+ */
38082
+ fieldName: dimension.fieldName,
38083
+ /**
38084
+ * Get the aggregate operator of the dimension
38085
+ * e.g. "stage_id" -> undefined, "create_date:month" -> "month"
38086
+ */
38087
+ granularity,
38088
+ /**
38089
+ * Get the type of the field of the dimension
38090
+ * e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
38091
+ */
38092
+ type: field?.isCustomField ? "custom" : type,
38093
+ order: dimension.order,
38094
+ isValid: !!field,
38095
+ isCustomField: !!field?.isCustomField,
38096
+ customGroups: field?.customGroups,
38097
+ parentField: field?.parentField
38098
+ };
38099
+ }
38100
+ createPivotFilter(fields, filter) {
38101
+ const field = fields[filter.fieldName];
38102
+ return {
38103
+ ...filter,
38104
+ displayName: field?.name ?? filter.fieldName,
38105
+ isValid: !!field
38106
+ };
38107
+ }
38108
+ };
38109
+
38110
+ //#endregion
38111
+ //#region src/helpers/pivot/spreadsheet_pivot/runtime_definition_spreadsheet_pivot.ts
38112
+ var SpreadsheetPivotRuntimeDefinition = class extends PivotRuntimeDefinition {
38113
+ range;
38114
+ constructor(definition, fields, getters) {
38115
+ super(definition, fields);
38116
+ if (definition.dataSet) {
38117
+ const { sheetId, zone } = definition.dataSet;
38118
+ this.range = getters.getRangeFromZone(sheetId, zone);
38119
+ }
38120
+ }
38121
+ };
38122
+
38276
38123
  //#endregion
38277
38124
  //#region src/types/table.ts
38278
38125
  const filterCriterions = [
@@ -38338,12 +38185,12 @@ set(value) {
38338
38185
  //#region src/components/filters/filter_menu_criterion/filter_menu_criterion.ts
38339
38186
  var FilterMenuCriterion = class extends Component {
38340
38187
  static template = "o-spreadsheet-FilterMenuCriterion";
38341
- static props = {
38342
- criterion: Object,
38343
- onCriterionChanged: Function,
38344
- criterionOperators: Array
38345
- };
38346
38188
  static components = { Select };
38189
+ props = (0, _odoo_owl.props)({
38190
+ criterion: types$6.CriterionFilter(),
38191
+ criterionOperators: types$6.array(types$6.GenericCriterionType()),
38192
+ onCriterionChanged: types$6.function([types$6.CriterionFilter()])
38193
+ });
38347
38194
  state;
38348
38195
  setup() {
38349
38196
  (0, _odoo_owl.onWillUpdateProps)((nextProps) => {
@@ -38376,17 +38223,14 @@ set(value) {
38376
38223
  var FilterMenuValueItem = class extends Component {
38377
38224
  static template = "o-spreadsheet-FilterMenuValueItem";
38378
38225
  static components = { Checkbox };
38379
- static props = {
38380
- value: String,
38381
- isChecked: Boolean,
38382
- isSelected: Boolean,
38383
- onMouseMove: Function,
38384
- onClick: Function,
38385
- scrolledTo: {
38386
- type: String,
38387
- optional: true
38388
- }
38389
- };
38226
+ props = (0, _odoo_owl.props)({
38227
+ value: _odoo_owl.types.string(),
38228
+ isChecked: _odoo_owl.types.boolean(),
38229
+ isSelected: _odoo_owl.types.boolean(),
38230
+ onMouseMove: _odoo_owl.types.function([]),
38231
+ onClick: _odoo_owl.types.function([]),
38232
+ "scrolledTo?": _odoo_owl.types.or([_odoo_owl.types.literal("top"), _odoo_owl.types.literal("bottom")])
38233
+ });
38390
38234
  itemRef = (0, _odoo_owl.signal)(null);
38391
38235
  setup() {
38392
38236
  (0, _odoo_owl.onWillPatch)(() => {
@@ -38404,11 +38248,15 @@ set(value) {
38404
38248
  //#region src/components/filters/filter_menu_value_list/filter_menu_value_list.ts
38405
38249
  var FilterMenuValueList = class extends Component {
38406
38250
  static template = "o-spreadsheet-FilterMenuValueList";
38407
- static props = {
38408
- values: Object,
38409
- onUpdateHiddenValues: Function
38410
- };
38411
38251
  static components = { FilterMenuValueItem };
38252
+ props = (0, _odoo_owl.props)({
38253
+ values: types$6.array(types$6.object({
38254
+ checked: types$6.boolean(),
38255
+ string: types$6.string(),
38256
+ "scrolledTo?": types$6.or([types$6.literal("top"), types$6.literal("bottom")])
38257
+ })),
38258
+ onUpdateHiddenValues: types$6.function([types$6.array(types$6.string())])
38259
+ });
38412
38260
  state = (0, _odoo_owl.proxy)({
38413
38261
  displayedValues: [],
38414
38262
  textFilter: "",
@@ -38509,17 +38357,6 @@ set(value) {
38509
38357
  //#region src/components/filters/pivot_filter_menu/pivot_filter_menu.ts
38510
38358
  var PivotFilterMenu = class extends Component {
38511
38359
  static template = "o-spreadsheet-PivotFilterMenu";
38512
- static props = {
38513
- pivotId: String,
38514
- definition: Object,
38515
- filter: Object,
38516
- values: Object,
38517
- onClosed: {
38518
- type: Function,
38519
- optional: true
38520
- },
38521
- onConfirmed: Function
38522
- };
38523
38360
  static components = {
38524
38361
  FilterMenuValueList,
38525
38362
  SidePanelCollapsible,
@@ -38527,6 +38364,18 @@ set(value) {
38527
38364
  };
38528
38365
  criterionCategory = "char";
38529
38366
  updatedCriterionValue;
38367
+ props = (0, _odoo_owl.props)({
38368
+ pivotId: types$6.UID(),
38369
+ definition: types$6.instanceOf(SpreadsheetPivotRuntimeDefinition),
38370
+ filter: types$6.PivotFilter(),
38371
+ values: types$6.array(types$6.object({
38372
+ checked: types$6.boolean(),
38373
+ string: types$6.string(),
38374
+ "scrolledTo?": types$6.or([types$6.literal("top"), types$6.literal("bottom")])
38375
+ })),
38376
+ "onClosed?": types$6.function([]),
38377
+ onConfirmed: types$6.function([types$6.DataFilterValue()])
38378
+ });
38530
38379
  setup() {
38531
38380
  (0, _odoo_owl.onWillUpdateProps)((nextProps) => {
38532
38381
  if (!deepEquals(nextProps.definition, this.props.definition)) {
@@ -38578,21 +38427,29 @@ set(value) {
38578
38427
  //#region src/components/side_panel/pivot/pivot_layout_configurator/pivot_dimension/pivot_dimension.ts
38579
38428
  var PivotDimension = class extends Component {
38580
38429
  static template = "o-spreadsheet-PivotDimension";
38581
- static props = {
38582
- dimension: Object,
38583
- onRemoved: {
38584
- type: Function,
38585
- optional: true
38586
- },
38587
- onNameUpdated: {
38588
- type: Function,
38589
- optional: true
38590
- },
38591
- slots: {
38592
- type: Object,
38593
- optional: true
38594
- }
38595
- };
38430
+ props = (0, _odoo_owl.props)({
38431
+ dimension: types$6.or([
38432
+ types$6.PivotDimension(),
38433
+ types$6.PivotMeasure(),
38434
+ types$6.PivotFilter()
38435
+ ]),
38436
+ "onRemoved?": types$6.function([types$6.or([
38437
+ types$6.PivotDimension(),
38438
+ types$6.PivotMeasure(),
38439
+ types$6.PivotFilter()
38440
+ ])]),
38441
+ "onNameUpdated?": types$6.function([types$6.or([
38442
+ types$6.PivotDimension(),
38443
+ types$6.PivotMeasure(),
38444
+ types$6.PivotFilter()
38445
+ ]), types$6.string()]),
38446
+ "type?": types$6.or([
38447
+ types$6.literal("row"),
38448
+ types$6.literal("col"),
38449
+ types$6.literal("measure"),
38450
+ types$6.literal("filter")
38451
+ ])
38452
+ });
38596
38453
  static components = {
38597
38454
  CogWheelMenu,
38598
38455
  TextInput
@@ -38615,12 +38472,12 @@ set(value) {
38615
38472
  Popover,
38616
38473
  PivotFilterMenu
38617
38474
  };
38618
- static props = {
38619
- pivotId: String,
38620
- definition: Object,
38621
- filter: Object,
38622
- onFiltersUpdated: Function
38623
- };
38475
+ props = (0, _odoo_owl.props)({
38476
+ pivotId: types$6.UID(),
38477
+ definition: types$6.instanceOf(SpreadsheetPivotRuntimeDefinition),
38478
+ filter: types$6.PivotFilter(),
38479
+ onFiltersUpdated: types$6.function([types$6.SpreadsheetPivotCoreDefinition()])
38480
+ });
38624
38481
  state;
38625
38482
  buttonFilter = (0, _odoo_owl.signal)(null);
38626
38483
  popover;
@@ -38747,14 +38604,10 @@ set(value) {
38747
38604
  Popover,
38748
38605
  TextValueProvider
38749
38606
  };
38750
- static props = {
38751
- onFieldPicked: Function,
38752
- fields: Array,
38753
- slots: {
38754
- type: Object,
38755
- optional: true
38756
- }
38757
- };
38607
+ props = (0, _odoo_owl.props)({
38608
+ onFieldPicked: types$6.function([types$6.string()]),
38609
+ fields: types$6.array()
38610
+ });
38758
38611
  buttonRef = (0, _odoo_owl.signal)(null);
38759
38612
  popover = (0, _odoo_owl.proxy)({ isOpen: false });
38760
38613
  search = (0, _odoo_owl.proxy)({ input: "" });
@@ -38846,11 +38699,11 @@ set(value) {
38846
38699
  //#region src/components/side_panel/pivot/pivot_custom_groups_collapsible/pivot_custom_groups_collapsible.ts
38847
38700
  var PivotCustomGroupsCollapsible = class extends Component {
38848
38701
  static template = "o-spreadsheet-PivotCustomGroupsCollapsible";
38849
- static props = {
38850
- pivotId: String,
38851
- customField: Object,
38852
- onCustomFieldUpdated: Function
38853
- };
38702
+ props = (0, _odoo_owl.props)({
38703
+ pivotId: types$6.UID(),
38704
+ customField: types$6.PivotCustomGroupedField(),
38705
+ onCustomFieldUpdated: types$6.function([types$6.object({})])
38706
+ });
38854
38707
  static components = {
38855
38708
  SidePanelCollapsible,
38856
38709
  TextInput,
@@ -38910,12 +38763,12 @@ set(value) {
38910
38763
  //#region src/components/side_panel/pivot/pivot_layout_configurator/pivot_dimension_granularity/pivot_dimension_granularity.ts
38911
38764
  var PivotDimensionGranularity = class extends Component {
38912
38765
  static template = "o-spreadsheet-PivotDimensionGranularity";
38913
- static props = {
38914
- dimension: Object,
38915
- onUpdated: Function,
38916
- availableGranularities: Set,
38917
- allGranularities: Array
38918
- };
38766
+ props = (0, _odoo_owl.props)({
38767
+ dimension: types$6.PivotDimension(),
38768
+ onUpdated: types$6.function([types$6.PivotDimension(), types$6.instanceOf(InputEvent)]),
38769
+ availableGranularities: types$6.SetOf(),
38770
+ allGranularities: types$6.array()
38771
+ });
38919
38772
  static components = { Select };
38920
38773
  periods = ALL_PERIODS;
38921
38774
  get granularityOptions() {
@@ -38931,10 +38784,10 @@ set(value) {
38931
38784
  //#region src/components/side_panel/pivot/pivot_layout_configurator/pivot_dimension_order/pivot_dimension_order.ts
38932
38785
  var PivotDimensionOrder = class extends Component {
38933
38786
  static template = "o-spreadsheet-PivotDimensionOrder";
38934
- static props = {
38935
- dimension: Object,
38936
- onUpdated: Function
38937
- };
38787
+ props = (0, _odoo_owl.props)({
38788
+ dimension: types$6.PivotDimension(),
38789
+ onUpdated: types$6.function([types$6.PivotDimension(), types$6.instanceOf(InputEvent)])
38790
+ });
38938
38791
  static components = { Select };
38939
38792
  get orderSelectOptions() {
38940
38793
  const options = [{
@@ -39004,15 +38857,15 @@ set(value) {
39004
38857
  StandaloneComposer,
39005
38858
  Select
39006
38859
  };
39007
- static props = {
39008
- definition: Object,
39009
- measure: Object,
39010
- onMeasureUpdated: Function,
39011
- onRemoved: Function,
39012
- generateMeasureId: Function,
39013
- aggregators: Object,
39014
- pivotId: String
39015
- };
38860
+ props = (0, _odoo_owl.props)({
38861
+ pivotId: types$6.string(),
38862
+ definition: types$6.PivotRuntimeDefinition(),
38863
+ measure: types$6.PivotMeasure(),
38864
+ onMeasureUpdated: types$6.function([types$6.PivotMeasure()]),
38865
+ onRemoved: types$6.function([]),
38866
+ generateMeasureId: types$6.function([types$6.string(), types$6.string()], types$6.string()),
38867
+ aggregators: types$6.object({})
38868
+ });
39016
38869
  getMeasureAutocomplete() {
39017
38870
  return createMeasureAutoComplete(this.props.definition, this.props.measure);
39018
38871
  }
@@ -39092,10 +38945,10 @@ set(value) {
39092
38945
  var PivotSortSection = class extends Component {
39093
38946
  static template = "o-spreadsheet-PivotSortSection";
39094
38947
  static components = { Section };
39095
- static props = {
39096
- definition: Object,
39097
- pivotId: String
39098
- };
38948
+ props = (0, _odoo_owl.props)({
38949
+ definition: types$6.PivotRuntimeDefinition(),
38950
+ pivotId: types$6.UID()
38951
+ });
39099
38952
  get hasValidSort() {
39100
38953
  const pivot = this.env.model.getters.getPivot(this.props.pivotId);
39101
38954
  return !!this.props.definition.sortedColumn && isSortedColumnValid(this.props.definition.sortedColumn, pivot);
@@ -39147,21 +39000,18 @@ set(value) {
39147
39000
  PivotCustomGroupsCollapsible,
39148
39001
  SidePanelCollapsible
39149
39002
  };
39150
- static props = {
39151
- definition: Object,
39152
- onDimensionsUpdated: Function,
39153
- onFiltersUpdated: Function,
39154
- unusedGroupableFields: Array,
39155
- measureFields: Array,
39156
- unusedGranularities: Object,
39157
- dateGranularities: Array,
39158
- datetimeGranularities: Array,
39159
- getScrollableContainerEl: {
39160
- type: Function,
39161
- optional: true
39162
- },
39163
- pivotId: String
39164
- };
39003
+ props = (0, _odoo_owl.props)({
39004
+ definition: types$6.instanceOf(PivotRuntimeDefinition),
39005
+ onDimensionsUpdated: types$6.function([types$6.PivotCoreDefinition()]),
39006
+ onFiltersUpdated: types$6.function([types$6.PivotCoreDefinition()]),
39007
+ unusedGroupableFields: types$6.array(types$6.PivotField()),
39008
+ measureFields: types$6.array(types$6.PivotField()),
39009
+ unusedGranularities: types$6.RecordOf(),
39010
+ dateGranularities: types$6.array(types$6.string()),
39011
+ datetimeGranularities: types$6.array(types$6.string()),
39012
+ "getScrollableContainerEl?": types$6.function([], types$6.instanceOf(HTMLElement)),
39013
+ pivotId: types$6.UID()
39014
+ });
39165
39015
  dimensionsRef = (0, _odoo_owl.signal)(null);
39166
39016
  dragAndDrop = useDragAndDropListItems();
39167
39017
  AGGREGATORS = AGGREGATORS;
@@ -39375,10 +39225,10 @@ set(value) {
39375
39225
  Section,
39376
39226
  TextInput
39377
39227
  };
39378
- static props = {
39379
- pivotId: String,
39380
- flipAxis: Function
39381
- };
39228
+ props = (0, _odoo_owl.props)({
39229
+ pivotId: types$6.UID(),
39230
+ flipAxis: types$6.function([])
39231
+ });
39382
39232
  get cogWheelMenuItems() {
39383
39233
  return [
39384
39234
  {
@@ -39444,150 +39294,6 @@ set(value) {
39444
39294
  }
39445
39295
  };
39446
39296
 
39447
- //#endregion
39448
- //#region src/helpers/pivot/pivot_runtime_definition.ts
39449
- /**
39450
- * Represent a pivot runtime definition. A pivot runtime definition is a pivot
39451
- * definition that has been enriched to include the display name of its attributes
39452
- * (measures, columns, rows).
39453
- */
39454
- var PivotRuntimeDefinition = class {
39455
- measures;
39456
- columns;
39457
- rows;
39458
- filters;
39459
- sortedColumn;
39460
- collapsedDomains;
39461
- customFields;
39462
- constructor(definition, fields) {
39463
- this.columns = definition.columns.map((dimension) => this.createPivotDimension(fields, dimension));
39464
- this.rows = definition.rows.map((dimension) => this.createPivotDimension(fields, dimension));
39465
- this.measures = definition.measures.map((measure) => this.createMeasure(fields, measure));
39466
- this.filters = (definition.filters ?? []).map((filter) => this.createPivotFilter(fields, filter));
39467
- this.sortedColumn = definition.sortedColumn;
39468
- this.collapsedDomains = definition.collapsedDomains;
39469
- this.customFields = definition.customFields;
39470
- }
39471
- getDimension(nameWithGranularity) {
39472
- const dimension = this.columns.find((d) => d.nameWithGranularity === nameWithGranularity) || this.rows.find((d) => d.nameWithGranularity === nameWithGranularity);
39473
- if (!dimension) throw new EvaluationError(_t("Dimension %s does not exist", nameWithGranularity));
39474
- return dimension;
39475
- }
39476
- getMeasure(id) {
39477
- const measure = this.measures.find((measure) => measure.id === id);
39478
- if (!measure) throw new EvaluationError(_t("Field %s is not a measure", id));
39479
- return measure;
39480
- }
39481
- get invalidAggregatorsForCustomField() {
39482
- return [];
39483
- }
39484
- createMeasure(fields, measure) {
39485
- const fieldName = measure.fieldName;
39486
- const field = fieldName === "__count" ? {
39487
- name: "__count",
39488
- string: _t("Count"),
39489
- type: "integer",
39490
- aggregator: "sum"
39491
- } : fields[fieldName];
39492
- const aggregator = measure.aggregator;
39493
- let isValid = !!(field || measure.computedBy);
39494
- for (const dimension of [...this.rows, ...this.columns]) if (fields[dimension.fieldName]?.isCustomField && this.invalidAggregatorsForCustomField.includes(aggregator)) {
39495
- isValid = false;
39496
- break;
39497
- }
39498
- return {
39499
- /**
39500
- * Get the id of the measure, as it is stored in the pivot formula
39501
- */
39502
- id: measure.id,
39503
- /**
39504
- * Display name of the measure
39505
- * e.g. "__count" -> "Count", "amount_total" -> "Total Amount"
39506
- */
39507
- get displayName() {
39508
- return measure.userDefinedName ?? field?.string ?? measure.fieldName;
39509
- },
39510
- userDefinedName: measure.userDefinedName,
39511
- /**
39512
- * Get the name of the field of the measure
39513
- */
39514
- fieldName,
39515
- /**
39516
- * Get the aggregator of the measure
39517
- */
39518
- aggregator,
39519
- /**
39520
- * Get the type of the measure field
39521
- * e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
39522
- */
39523
- type: fieldName === "__count" ? "integer" : field?.type ?? "integer",
39524
- isValid,
39525
- isHidden: measure.isHidden,
39526
- format: measure.format,
39527
- computedBy: measure.computedBy,
39528
- display: measure.display
39529
- };
39530
- }
39531
- createPivotDimension(fields, dimension) {
39532
- const field = fields[dimension.fieldName];
39533
- const type = field?.type ?? "integer";
39534
- const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
39535
- return {
39536
- /**
39537
- * Get the display name of the dimension
39538
- * e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
39539
- */
39540
- displayName: field?.string ?? dimension.fieldName,
39541
- /**
39542
- * Get the name of the dimension, as it is stored in the pivot formula
39543
- * e.g. "stage_id", "create_date:month"
39544
- */
39545
- nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
39546
- /**
39547
- * Get the name of the field of the dimension
39548
- * e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
39549
- */
39550
- fieldName: dimension.fieldName,
39551
- /**
39552
- * Get the aggregate operator of the dimension
39553
- * e.g. "stage_id" -> undefined, "create_date:month" -> "month"
39554
- */
39555
- granularity,
39556
- /**
39557
- * Get the type of the field of the dimension
39558
- * e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
39559
- */
39560
- type: field?.isCustomField ? "custom" : type,
39561
- order: dimension.order,
39562
- isValid: !!field,
39563
- isCustomField: !!field?.isCustomField,
39564
- customGroups: field?.customGroups,
39565
- parentField: field?.parentField
39566
- };
39567
- }
39568
- createPivotFilter(fields, filter) {
39569
- const field = fields[filter.fieldName];
39570
- return {
39571
- ...filter,
39572
- displayName: field?.name ?? filter.fieldName,
39573
- isValid: !!field
39574
- };
39575
- }
39576
- };
39577
-
39578
- //#endregion
39579
- //#region src/helpers/pivot/spreadsheet_pivot/runtime_definition_spreadsheet_pivot.ts
39580
- var SpreadsheetPivotRuntimeDefinition = class extends PivotRuntimeDefinition {
39581
- range;
39582
- constructor(definition, fields, getters) {
39583
- super(definition, fields);
39584
- if (definition.dataSet) {
39585
- const { sheetId, zone } = definition.dataSet;
39586
- this.range = getters.getRangeFromZone(sheetId, zone);
39587
- }
39588
- }
39589
- };
39590
-
39591
39297
  //#endregion
39592
39298
  //#region src/helpers/filter_helpers.ts
39593
39299
  /**
@@ -41139,10 +40845,6 @@ set(value) {
41139
40845
  //#region src/components/side_panel/pivot/pivot_side_panel/pivot_spreadsheet_side_panel/pivot_spreadsheet_side_panel.ts
41140
40846
  var PivotSpreadsheetSidePanel = class extends Component {
41141
40847
  static template = "o-spreadsheet-PivotSpreadsheetSidePanel";
41142
- static props = {
41143
- pivotId: String,
41144
- onCloseSidePanel: Function
41145
- };
41146
40848
  static components = {
41147
40849
  PivotLayoutConfigurator,
41148
40850
  Section,
@@ -41153,6 +40855,10 @@ set(value) {
41153
40855
  AddDimensionButton,
41154
40856
  PivotFilterEditor
41155
40857
  };
40858
+ props = (0, _odoo_owl.props)({
40859
+ pivotId: types$6.UID(),
40860
+ onCloseSidePanel: types$6.function([])
40861
+ });
41156
40862
  store;
41157
40863
  state;
41158
40864
  pivotSidePanelRef = (0, _odoo_owl.signal)(null);
@@ -42387,23 +42093,14 @@ set(value) {
42387
42093
  var TableStylePreview = class extends Component {
42388
42094
  static template = "o-spreadsheet-TableStylePreview";
42389
42095
  static components = { MenuPopover };
42390
- static props = {
42391
- tableConfig: Object,
42392
- tableStyle: Object,
42393
- type: String,
42394
- styleId: {
42395
- type: String,
42396
- optional: true
42397
- },
42398
- selected: {
42399
- type: Boolean,
42400
- optional: true
42401
- },
42402
- onClick: {
42403
- type: Function,
42404
- optional: true
42405
- }
42406
- };
42096
+ props = (0, _odoo_owl.props)({
42097
+ tableConfig: types$6.TableConfig(),
42098
+ tableStyle: types$6.TableStyle(),
42099
+ type: types$6.or([types$6.literal("table"), types$6.literal("pivot")]),
42100
+ "styleId?": types$6.string(),
42101
+ "selected?": types$6.boolean(),
42102
+ "onClick?": types$6.function([])
42103
+ });
42407
42104
  canvasRef = (0, _odoo_owl.signal)(null);
42408
42105
  menu = (0, _odoo_owl.proxy)({
42409
42106
  isOpen: false,
@@ -42489,21 +42186,15 @@ set(value) {
42489
42186
  Popover,
42490
42187
  TableStylePreview
42491
42188
  };
42492
- static props = {
42493
- tableConfig: Object,
42494
- popoverProps: {
42495
- type: Object,
42496
- optional: true
42497
- },
42498
- closePopover: Function,
42499
- onStylePicked: Function,
42500
- selectedStyleId: {
42501
- type: String,
42502
- optional: true
42503
- },
42504
- tableStyles: Object,
42505
- type: String
42506
- };
42189
+ props = (0, _odoo_owl.props)({
42190
+ tableConfig: types$6.object({}),
42191
+ "popoverProps?": types$6.object({}),
42192
+ closePopover: types$6.function([]),
42193
+ onStylePicked: types$6.function([types$6.string()]),
42194
+ "selectedStyleId?": types$6.string(),
42195
+ tableStyles: types$6.RecordOf(),
42196
+ type: types$6.or([types$6.literal("table"), types$6.literal("pivot")])
42197
+ });
42507
42198
  tableStyleListRef = (0, _odoo_owl.signal)(null);
42508
42199
  state = (0, _odoo_owl.proxy)({ selectedCategory: this.initialSelectedCategory });
42509
42200
  setup() {
@@ -42543,12 +42234,12 @@ set(value) {
42543
42234
  TableStylesPopover,
42544
42235
  TableStylePreview
42545
42236
  };
42546
- static props = {
42547
- tableConfig: Object,
42548
- onStylePicked: Function,
42549
- tableStyles: Object,
42550
- type: String
42551
- };
42237
+ props = (0, _odoo_owl.props)({
42238
+ tableConfig: types$6.TableConfig(),
42239
+ onStylePicked: types$6.function([types$6.string()]),
42240
+ tableStyles: types$6.RecordOf(),
42241
+ type: types$6.or([types$6.literal("table"), types$6.literal("pivot")])
42242
+ });
42552
42243
  state = (0, _odoo_owl.proxy)({ popoverProps: void 0 });
42553
42244
  getDisplayedTableStyles() {
42554
42245
  const allStyles = this.props.tableStyles;
@@ -42589,13 +42280,13 @@ set(value) {
42589
42280
  //#region src/components/side_panel/pivot/pivot_side_panel/pivot_design_panel/pivot_design_panel.ts
42590
42281
  var PivotDesignPanel = class extends Component {
42591
42282
  static template = "o-spreadsheet-PivotDesignPanel";
42592
- static props = { pivotId: String };
42593
42283
  static components = {
42594
42284
  Section,
42595
42285
  Checkbox,
42596
42286
  NumberInput,
42597
42287
  TableStylePicker
42598
42288
  };
42289
+ props = (0, _odoo_owl.props)({ pivotId: types$6.UID() });
42599
42290
  store;
42600
42291
  setup() {
42601
42292
  this.store = useLocalStore(PivotSidePanelStore, this.props.pivotId, "neverDefer");
@@ -42644,20 +42335,16 @@ set(value) {
42644
42335
  //#region src/components/side_panel/pivot/pivot_side_panel/pivot_side_panel.ts
42645
42336
  var PivotSidePanel = class extends Component {
42646
42337
  static template = "o-spreadsheet-PivotSidePanel";
42647
- static props = {
42648
- pivotId: String,
42649
- onCloseSidePanel: Function,
42650
- openTab: {
42651
- type: String,
42652
- optional: true
42653
- }
42654
- };
42655
- static defaultProps = { openTab: "configuration" };
42656
42338
  static components = {
42657
42339
  PivotLayoutConfigurator,
42658
42340
  Section,
42659
42341
  PivotDesignPanel
42660
42342
  };
42343
+ props = (0, _odoo_owl.props)({
42344
+ pivotId: types$6.UID(),
42345
+ onCloseSidePanel: types$6.function([]),
42346
+ "openTab?": types$6.or([types$6.literal("configuration"), types$6.literal("design")])
42347
+ }, { openTab: "configuration" });
42661
42348
  state = (0, _odoo_owl.proxy)({ panel: this.props.openTab || "configuration" });
42662
42349
  setup() {
42663
42350
  useHighlights(this);
@@ -42687,7 +42374,7 @@ set(value) {
42687
42374
  Section,
42688
42375
  Checkbox
42689
42376
  };
42690
- static props = { onCloseSidePanel: Function };
42377
+ props = (0, _odoo_owl.props)({ onCloseSidePanel: types$6.function([]) });
42691
42378
  state = (0, _odoo_owl.proxy)({
42692
42379
  hasHeader: false,
42693
42380
  columns: {}
@@ -42771,7 +42458,7 @@ set(value) {
42771
42458
  BadgeSelection,
42772
42459
  Select
42773
42460
  };
42774
- static props = { onCloseSidePanel: Function };
42461
+ props = (0, _odoo_owl.props)({ onCloseSidePanel: types$6.function([]) });
42775
42462
  loadedLocales = [];
42776
42463
  setup() {
42777
42464
  (0, _odoo_owl.onWillStart)(() => this.loadLocales());
@@ -42889,7 +42576,7 @@ set(value) {
42889
42576
  Checkbox,
42890
42577
  Select
42891
42578
  };
42892
- static props = { onCloseSidePanel: Function };
42579
+ props = (0, _odoo_owl.props)({ onCloseSidePanel: types$6.function([]) });
42893
42580
  state = (0, _odoo_owl.proxy)({
42894
42581
  separatorValue: "auto",
42895
42582
  addNewColumns: false,
@@ -42965,10 +42652,10 @@ set(value) {
42965
42652
  Section,
42966
42653
  NumberInput
42967
42654
  };
42968
- static props = {
42969
- onCloseSidePanel: Function,
42970
- table: Object
42971
- };
42655
+ props = (0, _odoo_owl.props)({
42656
+ onCloseSidePanel: types$6.function([]),
42657
+ table: types$6.CoreTable()
42658
+ });
42972
42659
  state;
42973
42660
  setup() {
42974
42661
  const sheetId = this.env.model.getters.getActiveSheetId();
@@ -43125,17 +42812,11 @@ set(value) {
43125
42812
  RoundColorPicker,
43126
42813
  TableStylePreview
43127
42814
  };
43128
- static props = {
43129
- onCloseSidePanel: Function,
43130
- onStylePicked: {
43131
- type: Function,
43132
- optional: true
43133
- },
43134
- styleId: {
43135
- type: String,
43136
- optional: true
43137
- }
43138
- };
42815
+ props = (0, _odoo_owl.props)({
42816
+ onCloseSidePanel: types$6.function([]),
42817
+ "onStylePicked?": types$6.function([types$6.string()]),
42818
+ "styleId?": types$6.string()
42819
+ });
43139
42820
  state = (0, _odoo_owl.proxy)(this.getInitialState());
43140
42821
  setup() {
43141
42822
  useExternalListener(window, "click", () => this.state.pickerOpened = false);
@@ -45465,10 +45146,10 @@ set(value) {
45465
45146
  //#region src/components/autofill/autofill.ts
45466
45147
  var Autofill = class extends Component {
45467
45148
  static template = "o-spreadsheet-Autofill";
45468
- static props = {
45469
- position: Object,
45470
- isVisible: Boolean
45471
- };
45149
+ props = (0, _odoo_owl.props)({
45150
+ position: types$6.DOMCoordinates(),
45151
+ isVisible: types$6.boolean()
45152
+ });
45472
45153
  state = (0, _odoo_owl.proxy)({
45473
45154
  position: {
45474
45155
  x: 0,
@@ -45543,7 +45224,7 @@ set(value) {
45543
45224
  }
45544
45225
  };
45545
45226
  var TooltipComponent = class extends Component {
45546
- static props = { content: String };
45227
+ props = (0, _odoo_owl.props)({ content: types$6.string() });
45547
45228
  static template = _odoo_owl.xml`
45548
45229
  <div t-out="this.props.content"/>
45549
45230
  `;
@@ -45553,13 +45234,13 @@ set(value) {
45553
45234
  //#region src/components/collaborative_client_tag/collaborative_client_tag.ts
45554
45235
  var ClientTag = class extends Component {
45555
45236
  static template = "o-spreadsheet-ClientTag";
45556
- static props = {
45557
- active: Boolean,
45558
- name: String,
45559
- color: String,
45560
- col: Number,
45561
- row: Number
45562
- };
45237
+ props = (0, _odoo_owl.props)({
45238
+ active: types$6.boolean(),
45239
+ name: types$6.string(),
45240
+ color: types$6.Color(),
45241
+ col: types$6.HeaderIndex(),
45242
+ row: types$6.HeaderIndex()
45243
+ });
45563
45244
  get tagStyle() {
45564
45245
  const { col, row, color } = this.props;
45565
45246
  const { height } = this.env.model.getters.getSheetViewDimensionWithHeaders();
@@ -46133,11 +45814,11 @@ set(value) {
46133
45814
  */
46134
45815
  var GridComposer = class extends Component {
46135
45816
  static template = "o-spreadsheet-GridComposer";
46136
- static props = {
46137
- gridDims: Object,
46138
- onInputContextMenu: Function
46139
- };
46140
45817
  static components = { Composer };
45818
+ props = (0, _odoo_owl.props)({
45819
+ gridDims: types$6.DOMDimension(),
45820
+ onInputContextMenu: types$6.function([types$6.instanceOf(MouseEvent)])
45821
+ });
46141
45822
  rect = this.defaultRect;
46142
45823
  isEditing = false;
46143
45824
  isCellReferenceVisible = false;
@@ -46597,7 +46278,6 @@ set(value) {
46597
46278
  */
46598
46279
  var FiguresContainer = class extends Component {
46599
46280
  static template = "o-spreadsheet-FiguresContainer";
46600
- static props = {};
46601
46281
  static components = { FigureComponent };
46602
46282
  dnd = (0, _odoo_owl.proxy)({
46603
46283
  draggedFigure: void 0,
@@ -46948,7 +46628,6 @@ set(value) {
46948
46628
  //#region src/components/grid_add_rows_footer/grid_add_rows_footer.ts
46949
46629
  var GridAddRowsFooter = class extends Component {
46950
46630
  static template = "o-spreadsheet-GridAddRowsFooter";
46951
- static props = {};
46952
46631
  static components = { ValidationMessages };
46953
46632
  DOMFocusableElementStore;
46954
46633
  inputRef = (0, _odoo_owl.signal)(null);
@@ -47256,40 +46935,32 @@ set(value) {
47256
46935
  }
47257
46936
  var GridOverlay = class extends Component {
47258
46937
  static template = "o-spreadsheet-GridOverlay";
47259
- static props = {
47260
- onCellDoubleClicked: {
47261
- type: Function,
47262
- optional: true
47263
- },
47264
- onCellClicked: {
47265
- type: Function,
47266
- optional: true
47267
- },
47268
- onCellRightClicked: {
47269
- type: Function,
47270
- optional: true
47271
- },
47272
- onGridResized: {
47273
- type: Function,
47274
- optional: true
47275
- },
47276
- onGridMoved: Function,
47277
- gridOverlayDimensions: String,
47278
- slots: {
47279
- type: Object,
47280
- optional: true
47281
- }
47282
- };
47283
46938
  static components = {
47284
46939
  FiguresContainer,
47285
46940
  GridAddRowsFooter
47286
46941
  };
47287
- static defaultProps = {
46942
+ props = (0, _odoo_owl.props)({
46943
+ "onCellDoubleClicked?": types$6.function([types$6.HeaderIndex(), types$6.HeaderIndex()]),
46944
+ "onCellClicked?": types$6.function([
46945
+ types$6.HeaderIndex(),
46946
+ types$6.HeaderIndex(),
46947
+ types$6.GridClickModifiers(),
46948
+ types$6.ZoomedMouseEvent()
46949
+ ]),
46950
+ "onCellRightClicked?": types$6.function([
46951
+ types$6.HeaderIndex(),
46952
+ types$6.HeaderIndex(),
46953
+ types$6.DOMCoordinates()
46954
+ ]),
46955
+ "onGridResized?": types$6.function([]),
46956
+ onGridMoved: types$6.function([types$6.Pixel(), types$6.Pixel()]),
46957
+ gridOverlayDimensions: types$6.string()
46958
+ }, {
47288
46959
  onCellDoubleClicked: () => {},
47289
46960
  onCellClicked: () => {},
47290
46961
  onCellRightClicked: () => {},
47291
46962
  onGridResized: () => {}
47292
- };
46963
+ });
47293
46964
  gridOverlayRef = (0, _odoo_owl.signal)(null);
47294
46965
  cellPopovers;
47295
46966
  paintFormatStore;
@@ -47399,12 +47070,12 @@ set(value) {
47399
47070
  //#region src/components/grid_popover/grid_popover.ts
47400
47071
  var GridPopover = class extends Component {
47401
47072
  static template = "o-spreadsheet-GridPopover";
47402
- static props = {
47403
- onClosePopover: Function,
47404
- onMouseWheel: Function,
47405
- gridRect: Object
47406
- };
47407
47073
  static components = { Popover };
47074
+ props = (0, _odoo_owl.props)({
47075
+ onClosePopover: types$6.function([]),
47076
+ onMouseWheel: types$6.function([types$6.instanceOf(WheelEvent)]),
47077
+ gridRect: types$6.Rect()
47078
+ });
47408
47079
  cellPopovers;
47409
47080
  setup() {
47410
47081
  this.cellPopovers = useStore(CellPopoverStore);
@@ -47428,15 +47099,14 @@ set(value) {
47428
47099
  //#region src/components/headers_overlay/unhide_headers.ts
47429
47100
  var UnhideRowHeaders = class extends Component {
47430
47101
  static template = "o-spreadsheet-UnhideRowHeaders";
47431
- static props = {
47432
- headersGroups: Array,
47433
- headerRange: Object,
47434
- offset: {
47435
- type: Number,
47436
- optional: true
47437
- }
47438
- };
47439
- static defaultProps = { offset: 0 };
47102
+ props = (0, _odoo_owl.props)({
47103
+ headersGroups: types$6.array(),
47104
+ headerRange: types$6.object({
47105
+ start: types$6.HeaderIndex(),
47106
+ end: types$6.HeaderIndex()
47107
+ }),
47108
+ "offset?": types$6.number()
47109
+ }, { offset: 0 });
47440
47110
  get sheetId() {
47441
47111
  return this.env.model.getters.getActiveSheetId();
47442
47112
  }
@@ -47472,15 +47142,14 @@ set(value) {
47472
47142
  };
47473
47143
  var UnhideColumnHeaders = class extends Component {
47474
47144
  static template = "o-spreadsheet-UnhideColumnHeaders";
47475
- static props = {
47476
- headersGroups: Array,
47477
- headerRange: Object,
47478
- offset: {
47479
- type: Number,
47480
- optional: true
47481
- }
47482
- };
47483
- static defaultProps = { offset: 0 };
47145
+ props = (0, _odoo_owl.props)({
47146
+ headersGroups: types$6.array(),
47147
+ headerRange: types$6.object({
47148
+ start: types$6.HeaderIndex(),
47149
+ end: types$6.HeaderIndex()
47150
+ }),
47151
+ "offset?": types$6.number()
47152
+ }, { offset: 0 });
47484
47153
  get sheetId() {
47485
47154
  return this.env.model.getters.getActiveSheetId();
47486
47155
  }
@@ -47511,8 +47180,13 @@ set(value) {
47511
47180
 
47512
47181
  //#endregion
47513
47182
  //#region src/components/headers_overlay/headers_overlay.ts
47183
+ const resizerPropsDefinition = { onOpenContextMenu: types$6.function([
47184
+ types$6.ContextMenuType(),
47185
+ types$6.Pixel(),
47186
+ types$6.Pixel()
47187
+ ]) };
47514
47188
  var AbstractResizer = class extends Component {
47515
- static props = { onOpenContextMenu: Function };
47189
+ props = (0, _odoo_owl.props)(resizerPropsDefinition);
47516
47190
  composerFocusStore;
47517
47191
  PADDING = 0;
47518
47192
  MAX_SIZE_MARGIN = 0;
@@ -47710,7 +47384,6 @@ set(value) {
47710
47384
  }
47711
47385
  };
47712
47386
  var ColResizer = class extends AbstractResizer {
47713
- static props = { onOpenContextMenu: Function };
47714
47387
  static template = "o-spreadsheet-ColResizer";
47715
47388
  static components = { UnhideColumnHeaders };
47716
47389
  colResizerRef = (0, _odoo_owl.signal)(null);
@@ -47845,7 +47518,6 @@ set(value) {
47845
47518
  }
47846
47519
  };
47847
47520
  var RowResizer = class extends AbstractResizer {
47848
- static props = { onOpenContextMenu: Function };
47849
47521
  static template = "o-spreadsheet-RowResizer";
47850
47522
  static components = { UnhideRowHeaders };
47851
47523
  rowResizerRef = (0, _odoo_owl.signal)(null);
@@ -47976,8 +47648,8 @@ set(value) {
47976
47648
  }
47977
47649
  };
47978
47650
  var HeadersOverlay = class extends Component {
47979
- static props = { onOpenContextMenu: Function };
47980
47651
  static template = "o-spreadsheet-HeadersOverlay";
47652
+ props = (0, _odoo_owl.props)(resizerPropsDefinition);
47981
47653
  static components = {
47982
47654
  ColResizer,
47983
47655
  RowResizer
@@ -48965,12 +48637,17 @@ set(value) {
48965
48637
  //#region src/components/highlight/border/border.ts
48966
48638
  var Border = class extends Component {
48967
48639
  static template = "o-spreadsheet-Border";
48968
- static props = {
48969
- zone: Object,
48970
- orientation: String,
48971
- isMoving: Boolean,
48972
- onMoveHighlight: Function
48973
- };
48640
+ props = (0, _odoo_owl.props)({
48641
+ zone: types$6.Zone(),
48642
+ orientation: types$6.or([
48643
+ types$6.literal("n"),
48644
+ types$6.literal("s"),
48645
+ types$6.literal("w"),
48646
+ types$6.literal("e")
48647
+ ]),
48648
+ isMoving: types$6.boolean(),
48649
+ onMoveHighlight: types$6.function([types$6.instanceOf(PointerEvent)])
48650
+ });
48974
48651
  get style() {
48975
48652
  const isTop = [
48976
48653
  "n",
@@ -49013,13 +48690,26 @@ set(value) {
49013
48690
  const MOBILE_HANDLER_WIDTH = 40;
49014
48691
  var Corner = class extends Component {
49015
48692
  static template = "o-spreadsheet-Corner";
49016
- static props = {
49017
- zone: Object,
49018
- color: String,
49019
- orientation: String,
49020
- isResizing: Boolean,
49021
- onResizeHighlight: Function
49022
- };
48693
+ props = (0, _odoo_owl.props)({
48694
+ zone: types$6.Zone(),
48695
+ color: types$6.Color(),
48696
+ orientation: types$6.or([
48697
+ types$6.literal("nw"),
48698
+ types$6.literal("ne"),
48699
+ types$6.literal("sw"),
48700
+ types$6.literal("se"),
48701
+ types$6.literal("n"),
48702
+ types$6.literal("s"),
48703
+ types$6.literal("e"),
48704
+ types$6.literal("w")
48705
+ ]),
48706
+ isResizing: types$6.boolean(),
48707
+ onResizeHighlight: types$6.function([
48708
+ types$6.instanceOf(PointerEvent),
48709
+ types$6.ResizeDirection(),
48710
+ types$6.ResizeDirection()
48711
+ ])
48712
+ });
49023
48713
  dirX;
49024
48714
  dirY;
49025
48715
  setup() {
@@ -49074,14 +48764,14 @@ set(value) {
49074
48764
  //#region src/components/highlight/highlight/highlight.ts
49075
48765
  var Highlight = class extends Component {
49076
48766
  static template = "o-spreadsheet-Highlight";
49077
- static props = {
49078
- range: Object,
49079
- color: String
49080
- };
49081
48767
  static components = {
49082
48768
  Corner,
49083
48769
  Border
49084
48770
  };
48771
+ props = (0, _odoo_owl.props)({
48772
+ range: types$6.Range(),
48773
+ color: types$6.Color()
48774
+ });
49085
48775
  highlightState = (0, _odoo_owl.proxy)({ shiftingMode: "none" });
49086
48776
  dragNDropGrid = useDragAndDropBeyondTheViewport(this.env);
49087
48777
  get cornerOrientations() {
@@ -49222,20 +48912,20 @@ set(value) {
49222
48912
  <div t-att-style="this.sizeCss"/>
49223
48913
  </div>
49224
48914
  `;
48915
+ props = (0, _odoo_owl.props)({
48916
+ "width?": types$6.Pixel(),
48917
+ "height?": types$6.Pixel(),
48918
+ direction: types$6.customValidator(types$6.string(), (direction) => ["horizontal", "vertical"].includes(direction)),
48919
+ position: types$6.CSSProperties(),
48920
+ offset: types$6.Pixel(),
48921
+ onScroll: types$6.function([types$6.Pixel()])
48922
+ }, {
48923
+ width: 1,
48924
+ height: 1
48925
+ });
49225
48926
  scrollbarRef = (0, _odoo_owl.signal)(null);
49226
48927
  scrollbar;
49227
48928
  setup() {
49228
- this.props = (0, _odoo_owl.props)({
49229
- "width?": _odoo_owl.types.number(),
49230
- "height?": _odoo_owl.types.number(),
49231
- direction: _odoo_owl.types.customValidator(_odoo_owl.types.string(), (direction) => ["horizontal", "vertical"].includes(direction)),
49232
- position: _odoo_owl.types.object({}),
49233
- offset: _odoo_owl.types.number(),
49234
- onScroll: _odoo_owl.types.function()
49235
- }, {
49236
- width: 1,
49237
- height: 1
49238
- });
49239
48929
  this.scrollbar = new ScrollBar$1(this.scrollbarRef(), this.props.direction);
49240
48930
  (0, _odoo_owl.onMounted)(() => {
49241
48931
  this.scrollbar.el = this.scrollbarRef();
@@ -49261,10 +48951,6 @@ set(value) {
49261
48951
  //#endregion
49262
48952
  //#region src/components/scrollbar/scrollbar_horizontal.ts
49263
48953
  var HorizontalScrollBar = class extends Component {
49264
- static props = { leftOffset: {
49265
- type: Number,
49266
- optional: true
49267
- } };
49268
48954
  static components = { ScrollBar };
49269
48955
  static template = _odoo_owl.xml`
49270
48956
  <ScrollBar
@@ -49275,7 +48961,7 @@ set(value) {
49275
48961
  direction="'horizontal'"
49276
48962
  onScroll.bind="this.onScroll"
49277
48963
  />`;
49278
- static defaultProps = { leftOffset: 0 };
48964
+ props = (0, _odoo_owl.props)({ "leftOffset?": types$6.number() }, { leftOffset: 0 });
49279
48965
  get offset() {
49280
48966
  return this.env.model.getters.getActiveSheetScrollInfo().scrollX;
49281
48967
  }
@@ -49308,10 +48994,6 @@ set(value) {
49308
48994
  //#endregion
49309
48995
  //#region src/components/scrollbar/scrollbar_vertical.ts
49310
48996
  var VerticalScrollBar = class extends Component {
49311
- static props = { topOffset: {
49312
- type: Number,
49313
- optional: true
49314
- } };
49315
48997
  static components = { ScrollBar };
49316
48998
  static template = _odoo_owl.xml`
49317
48999
  <ScrollBar
@@ -49322,7 +49004,7 @@ set(value) {
49322
49004
  direction="'vertical'"
49323
49005
  onScroll.bind="(offset) => this.onScroll(offset)"
49324
49006
  />`;
49325
- static defaultProps = { topOffset: 0 };
49007
+ props = (0, _odoo_owl.props)({ "topOffset?": types$6.number() }, { topOffset: 0 });
49326
49008
  get offset() {
49327
49009
  return this.env.model.getters.getActiveSheetScrollInfo().scrollY;
49328
49010
  }
@@ -49356,7 +49038,6 @@ set(value) {
49356
49038
  //#region src/components/selection/selection.ts
49357
49039
  var Selection = class extends Component {
49358
49040
  static template = "o-spreadsheet-Selection";
49359
- static props = {};
49360
49041
  static components = { Highlight };
49361
49042
  get highlightProps() {
49362
49043
  const sheetId = this.env.model.getters.getActiveSheetId();
@@ -49374,7 +49055,7 @@ set(value) {
49374
49055
  const COLOR = "#777";
49375
49056
  var TableResizer = class extends Component {
49376
49057
  static template = "o-spreadsheet-TableResizer";
49377
- static props = { table: Object };
49058
+ props = (0, _odoo_owl.props)({ table: types$6.Table() });
49378
49059
  state = (0, _odoo_owl.proxy)({ highlightZone: void 0 });
49379
49060
  dragNDropGrid = useDragAndDropBeyondTheViewport(this.env);
49380
49061
  setup() {
@@ -49447,10 +49128,6 @@ set(value) {
49447
49128
  };
49448
49129
  var Grid = class extends Component {
49449
49130
  static template = "o-spreadsheet-Grid";
49450
- static props = {
49451
- exposeFocus: Function,
49452
- getGridSize: Function
49453
- };
49454
49131
  static components = {
49455
49132
  GridComposer,
49456
49133
  GridOverlay,
@@ -49466,6 +49143,10 @@ set(value) {
49466
49143
  TableResizer,
49467
49144
  Selection
49468
49145
  };
49146
+ props = (0, _odoo_owl.props)({
49147
+ exposeFocus: types$6.function([types$6.function([])]),
49148
+ getGridSize: types$6.function([], types$6.DOMDimension())
49149
+ });
49469
49150
  HEADER_HEIGHT = 26;
49470
49151
  HEADER_WIDTH = 48;
49471
49152
  menuState;
@@ -50105,10 +49786,10 @@ set(value) {
50105
49786
  //#region src/components/dashboard/clickable_cell_sort_icon/clickable_cell_sort_icon.ts
50106
49787
  var ClickableCellSortIcon = class extends Component {
50107
49788
  static template = "o-spreadsheet-ClickableCellSortIcon";
50108
- static props = {
50109
- position: Object,
50110
- sortDirection: String
50111
- };
49789
+ props = (0, _odoo_owl.props)({
49790
+ position: types$6.CellPosition(),
49791
+ sortDirection: types$6.or([types$6.SortDirection, types$6.literal("none")])
49792
+ });
50112
49793
  hoveredTableStore;
50113
49794
  setup() {
50114
49795
  this.hoveredTableStore = useStore(HoveredTableStore);
@@ -50141,7 +49822,6 @@ set(value) {
50141
49822
  //#region src/components/full_screen_figure/full_screen_figure.ts
50142
49823
  var FullScreenFigure = class extends Component {
50143
49824
  static template = "o-spreadsheet-FullScreenFigure";
50144
- static props = {};
50145
49825
  static components = { ChartFigure };
50146
49826
  fullScreenFigureStore;
50147
49827
  fullScreenFigureRef = (0, _odoo_owl.signal)(null);
@@ -50181,10 +49861,10 @@ set(value) {
50181
49861
  var PivotHTMLRenderer = class extends Component {
50182
49862
  static template = "o_spreadsheet.PivotHTMLRenderer";
50183
49863
  static components = { Checkbox };
50184
- static props = {
50185
- pivotId: String,
50186
- onCellClicked: Function
50187
- };
49864
+ props = (0, _odoo_owl.props)({
49865
+ pivotId: types$6.UID(),
49866
+ onCellClicked: types$6.function([types$6.string()])
49867
+ });
50188
49868
  pivot = this.env.model.getters.getPivot(this.props.pivotId);
50189
49869
  data = {
50190
49870
  columns: [],
@@ -60719,7 +60399,8 @@ set(value) {
60719
60399
  "REMOVE_TABLE",
60720
60400
  "RESIZE_TABLE",
60721
60401
  "CREATE_TABLE_STYLE",
60722
- "REMOVE_TABLE_STYLE"
60402
+ "REMOVE_TABLE_STYLE",
60403
+ "DELETE_CONTENT"
60723
60404
  ]);
60724
60405
  function doesCommandInvalidatesTableStyle(cmd) {
60725
60406
  return invalidateTableStyleCommandsSet.has(cmd.type);
@@ -64522,7 +64203,7 @@ set(value) {
64522
64203
  if (this.getters.getFigure(figureSheetId, figureId).tag === "image") innerHTML = await this.craftImageHTML(figureId);
64523
64204
  else innerHTML = " ";
64524
64205
  } else innerHTML = " ";
64525
- else if (cells.length === 1 && cells[0].length === 1) innerHTML = `${this.getters.getCellText(cells[0][0].position)}`;
64206
+ else if (cells.length === 1 && cells[0].length === 1) innerHTML = xmlEscape(`${this.getters.getCellText(cells[0][0].position)}`);
64526
64207
  else if (!cells[0][0]) return "";
64527
64208
  else {
64528
64209
  let htmlTable = `<table border="1" style="border-collapse:collapse">`;
@@ -67879,20 +67560,22 @@ set(value) {
67879
67560
  ];
67880
67561
  var RippleEffect = class extends Component {
67881
67562
  static template = "o-spreadsheet-RippleEffect";
67882
- static props = {
67883
- x: String,
67884
- y: String,
67885
- color: String,
67886
- opacity: Number,
67887
- duration: Number,
67888
- width: Number,
67889
- height: Number,
67890
- offsetY: Number,
67891
- offsetX: Number,
67892
- allowOverflow: Boolean,
67893
- onAnimationEnd: Function,
67894
- style: String
67895
- };
67563
+ props = (0, _odoo_owl.props)({
67564
+ x: _odoo_owl.types.string(),
67565
+ y: _odoo_owl.types.string(),
67566
+ color: _odoo_owl.types.string(),
67567
+ opacity: _odoo_owl.types.number(),
67568
+ duration: _odoo_owl.types.number(),
67569
+ /** Width of the ripple. Defaults to the width of the element the ripple is on (without margins). */
67570
+ width: _odoo_owl.types.number(),
67571
+ /** Height of the ripple. Defaults to the height of the element the ripple is on (without margins). */
67572
+ height: _odoo_owl.types.number(),
67573
+ offsetY: _odoo_owl.types.number(),
67574
+ offsetX: _odoo_owl.types.number(),
67575
+ allowOverflow: _odoo_owl.types.boolean(),
67576
+ onAnimationEnd: _odoo_owl.types.function(),
67577
+ style: _odoo_owl.types.string()
67578
+ });
67896
67579
  rippleRef = (0, _odoo_owl.signal)(null);
67897
67580
  setup() {
67898
67581
  let animation = void 0;
@@ -67929,66 +67612,31 @@ set(value) {
67929
67612
  };
67930
67613
  var Ripple = class extends Component {
67931
67614
  static template = "o-spreadsheet-Ripple";
67932
- static props = {
67933
- color: {
67934
- type: String,
67935
- optional: true
67936
- },
67937
- opacity: {
67938
- type: Number,
67939
- optional: true
67940
- },
67941
- duration: {
67942
- type: Number,
67943
- optional: true
67944
- },
67945
- ignoreClickPosition: {
67946
- type: Boolean,
67947
- optional: true
67948
- },
67949
- width: {
67950
- type: Number,
67951
- optional: true
67952
- },
67953
- height: {
67954
- type: Number,
67955
- optional: true
67956
- },
67957
- offsetY: {
67958
- type: Number,
67959
- optional: true
67960
- },
67961
- offsetX: {
67962
- type: Number,
67963
- optional: true
67964
- },
67965
- allowOverflow: {
67966
- type: Boolean,
67967
- optional: true
67968
- },
67969
- enabled: {
67970
- type: Boolean,
67971
- optional: true
67972
- },
67973
- onAnimationEnd: {
67974
- type: Function,
67975
- optional: true
67976
- },
67977
- slots: Object,
67978
- class: {
67979
- type: String,
67980
- optional: true
67981
- }
67982
- };
67983
67615
  static components = { RippleEffect };
67984
- static defaultProps = {
67616
+ props = (0, _odoo_owl.props)({
67617
+ "color?": _odoo_owl.types.string(),
67618
+ "opacity?": _odoo_owl.types.number(),
67619
+ "duration?": _odoo_owl.types.number(),
67620
+ /** If true, the ripple will play from the element center instead of the position of the click */
67621
+ "ignoreClickPosition?": _odoo_owl.types.boolean(),
67622
+ /** Width of the ripple. Defaults to the width of the element the ripple is on (without margins). */
67623
+ "width?": _odoo_owl.types.number(),
67624
+ /** Height of the ripple. Defaults to the height of the element the ripple is on (without margins). */
67625
+ "height?": _odoo_owl.types.number(),
67626
+ "offsetY?": _odoo_owl.types.number(),
67627
+ "offsetX?": _odoo_owl.types.number(),
67628
+ "allowOverflow?": _odoo_owl.types.boolean(),
67629
+ "enabled?": _odoo_owl.types.boolean(),
67630
+ "onAnimationEnd?": _odoo_owl.types.function(),
67631
+ "class?": _odoo_owl.types.string()
67632
+ }, {
67985
67633
  color: "#aaaaaa",
67986
67634
  opacity: .4,
67987
67635
  duration: 800,
67988
67636
  enabled: true,
67989
67637
  onAnimationEnd: () => {},
67990
67638
  class: ""
67991
- };
67639
+ });
67992
67640
  childContainerRef = (0, _odoo_owl.signal)(null);
67993
67641
  state = (0, _odoo_owl.proxy)({ ripples: [] });
67994
67642
  currentId = 1;
@@ -68236,26 +67884,19 @@ set(value) {
68236
67884
  };
68237
67885
  var BottomBarSheet = class extends Component {
68238
67886
  static template = "o-spreadsheet-BottomBarSheet";
68239
- static props = {
68240
- sheetId: String,
68241
- openContextMenu: Function,
68242
- style: {
68243
- type: String,
68244
- optional: true
68245
- },
68246
- onMouseDown: {
68247
- type: Function,
68248
- optional: true
68249
- }
68250
- };
68251
67887
  static components = {
68252
67888
  Ripple,
68253
67889
  ColorPicker
68254
67890
  };
68255
- static defaultProps = {
67891
+ props = (0, _odoo_owl.props)({
67892
+ sheetId: _odoo_owl.types.string(),
67893
+ openContextMenu: _odoo_owl.types.function([_odoo_owl.types.instanceOf(MenuItemRegistry), _odoo_owl.types.instanceOf(MouseEvent)]),
67894
+ "style?": _odoo_owl.types.string(),
67895
+ "onMouseDown?": _odoo_owl.types.function([_odoo_owl.types.instanceOf(PointerEvent)])
67896
+ }, {
68256
67897
  onMouseDown: () => {},
68257
67898
  style: ""
68258
- };
67899
+ });
68259
67900
  state = (0, _odoo_owl.proxy)({
68260
67901
  isEditing: false,
68261
67902
  pickerOpened: false
@@ -68516,11 +68157,15 @@ set(value) {
68516
68157
  //#region src/components/bottom_bar/bottom_bar_statistic/bottom_bar_statistic.ts
68517
68158
  var BottomBarStatistic = class extends Component {
68518
68159
  static template = "o-spreadsheet-BottomBarStatistic";
68519
- static props = {
68520
- openContextMenu: Function,
68521
- closeContextMenu: Function
68522
- };
68523
68160
  static components = { Ripple };
68161
+ props = (0, _odoo_owl.props)({
68162
+ openContextMenu: _odoo_owl.types.function([
68163
+ _odoo_owl.types.number(),
68164
+ _odoo_owl.types.number(),
68165
+ _odoo_owl.types.instanceOf(MenuItemRegistry)
68166
+ ]),
68167
+ closeContextMenu: _odoo_owl.types.function([])
68168
+ });
68524
68169
  state = (0, _odoo_owl.proxy)({ selectedStatisticFn: "" });
68525
68170
  store;
68526
68171
  setup() {
@@ -68563,7 +68208,7 @@ set(value) {
68563
68208
  const MENU_MAX_HEIGHT = 250;
68564
68209
  var BottomBar = class extends Component {
68565
68210
  static template = "o-spreadsheet-BottomBar";
68566
- static props = { onClick: Function };
68211
+ props = (0, _odoo_owl.props)({ onClick: _odoo_owl.types.function([]) });
68567
68212
  static components = {
68568
68213
  MenuPopover,
68569
68214
  Ripple,
@@ -68839,7 +68484,6 @@ set(value) {
68839
68484
  //#region src/components/dashboard/dashboard.ts
68840
68485
  var SpreadsheetDashboard = class extends Component {
68841
68486
  static template = "o-spreadsheet-SpreadsheetDashboard";
68842
- static props = { getGridSize: Function };
68843
68487
  static components = {
68844
68488
  GridOverlay,
68845
68489
  GridPopover,
@@ -68847,6 +68491,7 @@ set(value) {
68847
68491
  VerticalScrollBar,
68848
68492
  HorizontalScrollBar
68849
68493
  };
68494
+ props = (0, _odoo_owl.props)({ getGridSize: types$6.function([], types$6.DOMDimension()) });
68850
68495
  cellPopovers;
68851
68496
  onMouseWheel;
68852
68497
  canvasPosition;
@@ -68959,11 +68604,11 @@ set(value) {
68959
68604
  //#region src/components/header_group/header_group.ts
68960
68605
  var AbstractHeaderGroup = class extends Component {
68961
68606
  static template = "o-spreadsheet-HeaderGroup";
68962
- static props = {
68963
- group: Object,
68964
- layerOffset: Number,
68965
- openContextMenu: Function
68966
- };
68607
+ props = (0, _odoo_owl.props)({
68608
+ group: types$6.HeaderGroup(),
68609
+ layerOffset: types$6.number(),
68610
+ openContextMenu: types$6.function([types$6.DOMCoordinates(), types$6.ArrayOf()])
68611
+ });
68967
68612
  toggleGroup() {
68968
68613
  const sheetId = this.env.model.getters.getActiveSheetId();
68969
68614
  const { start, end } = this.props.group;
@@ -69108,15 +68753,15 @@ set(value) {
69108
68753
  //#region src/components/header_group/header_group_container.ts
69109
68754
  var HeaderGroupContainer = class extends Component {
69110
68755
  static template = "o-spreadsheet-HeaderGroupContainer";
69111
- static props = {
69112
- dimension: String,
69113
- layers: Array
69114
- };
69115
68756
  static components = {
69116
68757
  RowGroup,
69117
68758
  ColGroup,
69118
68759
  MenuPopover
69119
68760
  };
68761
+ props = (0, _odoo_owl.props)({
68762
+ dimension: types$6.Dimension(),
68763
+ layers: types$6.array()
68764
+ });
69120
68765
  menu = (0, _odoo_owl.proxy)({
69121
68766
  isOpen: false,
69122
68767
  anchorRect: null,
@@ -69189,29 +68834,17 @@ set(value) {
69189
68834
  //#region src/components/side_panel/side_panel/side_panel.ts
69190
68835
  var SidePanel = class extends Component {
69191
68836
  static template = "o-spreadsheet-SidePanel";
69192
- static props = {
69193
- panelContent: Object,
69194
- panelProps: Object,
69195
- onCloseSidePanel: Function,
69196
- onStartHandleDrag: Function,
69197
- onResetPanelSize: Function,
69198
- isPinned: {
69199
- type: Boolean,
69200
- optional: true
69201
- },
69202
- onTogglePinPanel: {
69203
- type: Function,
69204
- optional: true
69205
- },
69206
- onToggleCollapsePanel: {
69207
- type: Function,
69208
- optional: true
69209
- },
69210
- isCollapsed: {
69211
- type: Boolean,
69212
- optional: true
69213
- }
69214
- };
68837
+ props = (0, _odoo_owl.props)({
68838
+ panelContent: types$6.SidePanelContent(),
68839
+ panelProps: types$6.SidePanelComponentProps(),
68840
+ onCloseSidePanel: types$6.function([]),
68841
+ onStartHandleDrag: types$6.function([types$6.instanceOf(MouseEvent)]),
68842
+ onResetPanelSize: types$6.function([]),
68843
+ "isPinned?": types$6.boolean(),
68844
+ "onTogglePinPanel?": types$6.function([]),
68845
+ "onToggleCollapsePanel?": types$6.function([]),
68846
+ "isCollapsed?": types$6.boolean()
68847
+ });
69215
68848
  spreadsheetRect = useSpreadsheetRect();
69216
68849
  getTitle() {
69217
68850
  const panel = this.props.panelContent;
@@ -69223,7 +68856,6 @@ set(value) {
69223
68856
  //#region src/components/side_panel/side_panels/side_panels.ts
69224
68857
  var SidePanels = class extends Component {
69225
68858
  static template = "o-spreadsheet-SidePanels";
69226
- static props = {};
69227
68859
  static components = { SidePanel };
69228
68860
  sidePanelStore;
69229
68861
  spreadsheetRect = useSpreadsheetRect();
@@ -69295,8 +68927,8 @@ set(value) {
69295
68927
  //#region src/components/small_bottom_bar/ribbon_menu/ribbon_menu.ts
69296
68928
  var RibbonMenu = class extends Component {
69297
68929
  static template = "o-spreadsheet-RibbonMenu";
69298
- static props = { onClose: Function };
69299
68930
  static components = { Menu };
68931
+ props = (0, _odoo_owl.props)({ onClose: types$6.function([]) });
69300
68932
  rootItems = topbarMenuRegistry.getMenuItems();
69301
68933
  menuRef = (0, _odoo_owl.signal)(null);
69302
68934
  containerRef = (0, _odoo_owl.signal)(null);
@@ -69334,9 +68966,6 @@ set(value) {
69334
68966
  onClickMenu: this.onClickMenu.bind(this)
69335
68967
  };
69336
68968
  }
69337
- get style() {
69338
- return cssPropertiesToCss({ height: `${this.props.height}px` });
69339
- }
69340
68969
  updateShadows() {
69341
68970
  const el = this.containerRef();
69342
68971
  if (!el) return;
@@ -69370,7 +68999,7 @@ set(value) {
69370
68999
  RibbonMenu
69371
69000
  };
69372
69001
  static template = "o-spreadsheet-SmallBottomBar";
69373
- static props = { onClick: Function };
69002
+ props = (0, _odoo_owl.props)({ onClick: types$6.function([]) });
69374
69003
  composerFocusStore;
69375
69004
  composerStore;
69376
69005
  composerInterface;
@@ -69571,11 +69200,11 @@ set(value) {
69571
69200
  //#region src/components/standalone_grid_canvas/standalone_grid_canvas.ts
69572
69201
  var StandaloneGridCanvas = class extends Component {
69573
69202
  static template = "o-spreadsheet-StandaloneGridCanvas";
69574
- static props = {
69575
- sheetId: String,
69576
- zone: Object,
69577
- renderingCtx: Object
69578
- };
69203
+ props = (0, _odoo_owl.props)({
69204
+ sheetId: types$6.UID(),
69205
+ zone: types$6.Zone(),
69206
+ renderingCtx: types$6.object({})
69207
+ });
69579
69208
  canvasRef = (0, _odoo_owl.signal)(null);
69580
69209
  rendererStore;
69581
69210
  figureRendererStore;
@@ -69896,7 +69525,7 @@ set(value) {
69896
69525
  //#region src/components/spreadsheet_print/spreadsheet_print.ts
69897
69526
  var SpreadsheetPrint = class extends Component {
69898
69527
  static template = "o-spreadsheet-SpreadsheetPrint";
69899
- static props = { onExitPrintMode: Function };
69528
+ props = (0, _odoo_owl.props)({ onExitPrintMode: types$6.function([]) });
69900
69529
  static components = {
69901
69530
  StandaloneGridCanvas,
69902
69531
  Section,
@@ -69958,7 +69587,6 @@ set(value) {
69958
69587
  const COMPOSER_MAX_HEIGHT = 300;
69959
69588
  var TopBarComposer = class extends Component {
69960
69589
  static template = "o-spreadsheet-TopBarComposer";
69961
- static props = {};
69962
69590
  static components = { Composer };
69963
69591
  composerFocusStore;
69964
69592
  composerStore;
@@ -70043,7 +69671,6 @@ set(value) {
70043
69671
  //#region src/components/named_range_selector/named_range_selector.ts
70044
69672
  var NamedRangeSelector = class extends Component {
70045
69673
  static template = "o-spreadsheet-NamedRangeSelector";
70046
- static props = {};
70047
69674
  static components = {
70048
69675
  TextInput,
70049
69676
  MenuPopover
@@ -70226,36 +69853,21 @@ set(value) {
70226
69853
  ]];
70227
69854
  var BorderEditor = class extends Component {
70228
69855
  static template = "o-spreadsheet-BorderEditor";
70229
- static props = {
70230
- class: {
70231
- type: String,
70232
- optional: true
70233
- },
70234
- currentBorderColor: {
70235
- type: String,
70236
- optional: false
70237
- },
70238
- currentBorderStyle: {
70239
- type: String,
70240
- optional: false
70241
- },
70242
- currentBorderPosition: {
70243
- type: String,
70244
- optional: true
70245
- },
70246
- onBorderColorPicked: Function,
70247
- onBorderStylePicked: Function,
70248
- onBorderPositionPicked: Function,
70249
- maxHeight: {
70250
- type: Number,
70251
- optional: true
70252
- },
70253
- anchorRect: Object
70254
- };
70255
69856
  static components = {
70256
69857
  ColorPickerWidget,
70257
69858
  Popover
70258
69859
  };
69860
+ props = (0, _odoo_owl.props)({
69861
+ "class?": types$6.string(),
69862
+ currentBorderColor: types$6.Color(),
69863
+ currentBorderStyle: types$6.BorderStyle(),
69864
+ "currentBorderPosition?": types$6.BorderPosition(),
69865
+ onBorderColorPicked: types$6.function([types$6.Color()]),
69866
+ onBorderStylePicked: types$6.function([types$6.BorderStyle()]),
69867
+ onBorderPositionPicked: types$6.function([types$6.BorderPosition()]),
69868
+ "maxHeight?": types$6.Pixel(),
69869
+ anchorRect: types$6.Rect()
69870
+ });
70259
69871
  BORDER_POSITIONS = BORDER_POSITIONS;
70260
69872
  lineStyleButtonRef = (0, _odoo_owl.signal)(null);
70261
69873
  borderStyles = borderStyles;
@@ -70316,21 +69928,12 @@ set(value) {
70316
69928
  //#region src/components/border_editor/border_editor_widget.ts
70317
69929
  var BorderEditorWidget = class extends Component {
70318
69930
  static template = "o-spreadsheet-BorderEditorWidget";
70319
- static props = {
70320
- disabled: {
70321
- type: Boolean,
70322
- optional: true
70323
- },
70324
- dropdownMaxHeight: {
70325
- type: Number,
70326
- optional: true
70327
- },
70328
- class: {
70329
- type: String,
70330
- optional: true
70331
- }
70332
- };
70333
69931
  static components = { BorderEditor };
69932
+ props = (0, _odoo_owl.props)({
69933
+ "disabled?": types$6.boolean(),
69934
+ "dropdownMaxHeight?": types$6.Pixel(),
69935
+ "class?": types$6.string()
69936
+ });
70334
69937
  topBarToolStore;
70335
69938
  borderEditorButtonRef = (0, _odoo_owl.signal)(null);
70336
69939
  state = (0, _odoo_owl.proxy)({
@@ -70387,10 +69990,7 @@ set(value) {
70387
69990
  //#region src/components/paint_format_button/paint_format_button.ts
70388
69991
  var PaintFormatButton = class extends Component {
70389
69992
  static template = "o-spreadsheet-PaintFormatButton";
70390
- static props = { class: {
70391
- type: String,
70392
- optional: true
70393
- } };
69993
+ props = (0, _odoo_owl.props)({ "class?": types$6.string() });
70394
69994
  paintFormatStore;
70395
69995
  setup() {
70396
69996
  this.paintFormatStore = useStore(PaintFormatStore);
@@ -70415,10 +70015,7 @@ set(value) {
70415
70015
  TableStylesPopover,
70416
70016
  ActionButton
70417
70017
  };
70418
- static props = { class: {
70419
- type: String,
70420
- optional: true
70421
- } };
70018
+ props = (0, _odoo_owl.props)({ "class?": types$6.string() });
70422
70019
  topBarToolStore;
70423
70020
  state = (0, _odoo_owl.proxy)({ popoverProps: void 0 });
70424
70021
  setup() {
@@ -70507,13 +70104,13 @@ set(value) {
70507
70104
  //#region src/components/top_bar/color_editor/color_editor.ts
70508
70105
  var TopBarColorEditor = class extends Component {
70509
70106
  static components = { ColorPickerWidget };
70510
- static props = {
70511
- class: String,
70512
- style: String,
70513
- icon: String,
70514
- title: String
70515
- };
70516
70107
  static template = "o-spreadsheet-ColorEditor";
70108
+ props = (0, _odoo_owl.props)({
70109
+ class: types$6.string(),
70110
+ style: types$6.or([types$6.literal("textColor"), types$6.literal("fillColor")]),
70111
+ icon: types$6.string(),
70112
+ title: types$6.string()
70113
+ });
70517
70114
  topBarToolStore;
70518
70115
  state = (0, _odoo_owl.proxy)({ isOpen: false });
70519
70116
  setup() {
@@ -70543,12 +70140,12 @@ set(value) {
70543
70140
  ActionButton,
70544
70141
  Popover
70545
70142
  };
70546
- static props = {
70547
- parentAction: Object,
70548
- childActions: Array,
70549
- class: String,
70550
- childClass: String
70551
- };
70143
+ props = (0, _odoo_owl.props)({
70144
+ parentAction: types$6.ActionSpec(),
70145
+ childActions: types$6.array(types$6.ActionSpec()),
70146
+ class: types$6.string(),
70147
+ childClass: types$6.string()
70148
+ });
70552
70149
  topBarToolStore;
70553
70150
  actionRef = (0, _odoo_owl.signal)(null);
70554
70151
  setup() {
@@ -70575,8 +70172,8 @@ set(value) {
70575
70172
  //#region src/components/top_bar/font_size_editor/font_size_editor.ts
70576
70173
  var TopBarFontSizeEditor = class extends Component {
70577
70174
  static components = { FontSizeEditor };
70578
- static props = { class: String };
70579
70175
  static template = "o-spreadsheet-TopBarFontSizeEditor";
70176
+ props = (0, _odoo_owl.props)({ class: _odoo_owl.types.string() });
70580
70177
  topBarToolStore;
70581
70178
  setup() {
70582
70179
  this.topBarToolStore = useToolBarDropdownStore();
@@ -70610,7 +70207,7 @@ set(value) {
70610
70207
  MenuPopover,
70611
70208
  ActionButton
70612
70209
  };
70613
- static props = { class: String };
70210
+ props = (0, _odoo_owl.props)({ class: types$6.string() });
70614
70211
  formatNumberMenuItemSpec = formatNumberMenuItemSpec;
70615
70212
  topBarToolStore;
70616
70213
  buttonRef = (0, _odoo_owl.signal)(null);
@@ -70645,7 +70242,7 @@ set(value) {
70645
70242
  var ToolBarZoom = class extends Component {
70646
70243
  static template = "o-spreadsheet-TopBarZoom";
70647
70244
  static components = { NumberEditor };
70648
- static props = { class: String };
70245
+ props = (0, _odoo_owl.props)({ class: types$6.string() });
70649
70246
  topBarToolStore;
70650
70247
  valueList = ZOOM_VALUES;
70651
70248
  setup() {
@@ -70871,10 +70468,10 @@ set(value) {
70871
70468
  //#region src/components/top_bar/top_bar.ts
70872
70469
  var TopBar = class extends Component {
70873
70470
  static template = "o-spreadsheet-TopBar";
70874
- static props = {
70875
- onClick: Function,
70876
- dropdownMaxHeight: Number
70877
- };
70471
+ props = (0, _odoo_owl.props)({
70472
+ onClick: types$6.function([]),
70473
+ dropdownMaxHeight: types$6.Pixel()
70474
+ });
70878
70475
  static components = {
70879
70476
  MenuPopover,
70880
70477
  TopBarComposer,
@@ -71149,21 +70746,16 @@ set(value) {
71149
70746
  //#region src/components/spreadsheet/spreadsheet.ts
71150
70747
  var Spreadsheet = class extends Component {
71151
70748
  static template = "o-spreadsheet-Spreadsheet";
71152
- static props = {
71153
- model: Object,
71154
- notifyUser: {
71155
- type: Function,
71156
- optional: true
71157
- },
71158
- raiseError: {
71159
- type: Function,
71160
- optional: true
71161
- },
71162
- askConfirmation: {
71163
- type: Function,
71164
- optional: true
71165
- }
71166
- };
70749
+ props = (0, _odoo_owl.props)({
70750
+ model: types$6.Model(),
70751
+ "notifyUser?": types$6.function([types$6.InformationNotification()]),
70752
+ "raiseError?": types$6.function([types$6.string(), types$6.function([])]),
70753
+ "askConfirmation?": types$6.function([
70754
+ types$6.string(),
70755
+ types$6.function([]),
70756
+ types$6.function([])
70757
+ ])
70758
+ });
71167
70759
  static components = {
71168
70760
  TopBar,
71169
70761
  Grid,
@@ -76741,13 +76333,10 @@ set(value) {
76741
76333
  var ErrorToolTip = class extends Component {
76742
76334
  static maxSize = { maxHeight: ERROR_TOOLTIP_MAX_HEIGHT };
76743
76335
  static template = "o-spreadsheet-ErrorToolTip";
76744
- static props = {
76745
- cellPosition: Object,
76746
- onClosed: {
76747
- type: Function,
76748
- optional: true
76749
- }
76750
- };
76336
+ props = (0, _odoo_owl.props)({
76337
+ cellPosition: types$6.CellPosition(),
76338
+ "onClosed?": types$6.function([])
76339
+ });
76751
76340
  get dataValidationErrorMessage() {
76752
76341
  return this.env.model.getters.getInvalidDataValidationMessage(this.props.cellPosition);
76753
76342
  }
@@ -76823,18 +76412,15 @@ set(value) {
76823
76412
  //#region src/components/filters/filter_menu/filter_menu.ts
76824
76413
  var FilterMenu = class extends Component {
76825
76414
  static template = "o-spreadsheet-FilterMenu";
76826
- static props = {
76827
- filterPosition: Object,
76828
- onClosed: {
76829
- type: Function,
76830
- optional: true
76831
- }
76832
- };
76833
76415
  static components = {
76834
76416
  FilterMenuValueList,
76835
76417
  SidePanelCollapsible,
76836
76418
  FilterMenuCriterion
76837
76419
  };
76420
+ props = (0, _odoo_owl.props)({
76421
+ filterPosition: types$6.Position(),
76422
+ "onClosed?": types$6.function([])
76423
+ });
76838
76424
  state;
76839
76425
  criterionCategory = "text";
76840
76426
  updatedCriterionValue;
@@ -77011,13 +76597,10 @@ set(value) {
77011
76597
  //#region src/components/link/link_display/link_display.ts
77012
76598
  var LinkDisplay = class extends Component {
77013
76599
  static template = "o-spreadsheet-LinkDisplay";
77014
- static props = {
77015
- cellPosition: Object,
77016
- onClosed: {
77017
- type: Function,
77018
- optional: true
77019
- }
77020
- };
76600
+ props = (0, _odoo_owl.props)({
76601
+ cellPosition: types$6.CellPosition(),
76602
+ "onClosed?": types$6.function([])
76603
+ });
77021
76604
  cellPopovers;
77022
76605
  setup() {
77023
76606
  this.cellPopovers = useStore(CellPopoverStore);
@@ -77087,14 +76670,11 @@ set(value) {
77087
76670
  //#region src/components/link/link_editor/link_editor.ts
77088
76671
  var LinkEditor = class extends Component {
77089
76672
  static template = "o-spreadsheet-LinkEditor";
77090
- static props = {
77091
- cellPosition: Object,
77092
- onClosed: {
77093
- type: Function,
77094
- optional: true
77095
- }
77096
- };
77097
76673
  static components = { MenuPopover };
76674
+ props = (0, _odoo_owl.props)({
76675
+ cellPosition: types$6.CellPosition(),
76676
+ "onClosed?": types$6.function([])
76677
+ });
77098
76678
  static size = { maxHeight: 500 };
77099
76679
  urlInput = (0, _odoo_owl.signal)(null);
77100
76680
  suggestionListRef = (0, _odoo_owl.signal)(null);
@@ -86481,7 +86061,8 @@ set(value) {
86481
86061
  supportedPivotPositionalFormulaRegistry,
86482
86062
  pivotToFunctionValueRegistry,
86483
86063
  migrationStepRegistry,
86484
- chartJsExtensionRegistry
86064
+ chartJsExtensionRegistry,
86065
+ onIterationEndEvaluationRegistry
86485
86066
  };
86486
86067
  const helpers = {
86487
86068
  arg,
@@ -86554,7 +86135,10 @@ set(value) {
86554
86135
  parseFormat,
86555
86136
  isFormula,
86556
86137
  domainToColRowDomain,
86557
- collapseHierarchicalDisplayName
86138
+ collapseHierarchicalDisplayName,
86139
+ getCanonicalSymbolName,
86140
+ fuzzyLookup,
86141
+ replaceSymbolInFormula
86558
86142
  };
86559
86143
  const links = {
86560
86144
  isMarkdownLink,
@@ -86605,6 +86189,7 @@ set(value) {
86605
86189
  MenuPopover,
86606
86190
  Popover,
86607
86191
  SelectionInput,
86192
+ StandaloneComposer,
86608
86193
  ValidationMessages,
86609
86194
  AddDimensionButton,
86610
86195
  PivotDimensionGranularity,
@@ -86726,12 +86311,14 @@ exports.astToFormula = astToFormula;
86726
86311
  exports.availableConditionalFormatOperators = availableConditionalFormatOperators;
86727
86312
  exports.availableDataValidationOperators = availableDataValidationOperators;
86728
86313
  exports.availableFiltersOperators = availableFiltersOperators;
86314
+ exports.borderPositions = borderPositions;
86729
86315
  exports.borderStyles = borderStyles;
86730
86316
  exports.canExecuteInReadonly = canExecuteInReadonly;
86731
86317
  exports.categories = categories;
86732
86318
  exports.chartHelpers = chartHelpers;
86733
86319
  exports.compatibility = compatibility;
86734
86320
  exports.components = components;
86321
+ exports.composerFocusTypes = composerFocusTypes;
86735
86322
  exports.constants = constants;
86736
86323
  exports.convertAstNodes = convertAstNodes;
86737
86324
  exports.coreTypes = coreTypes;
@@ -86775,8 +86362,8 @@ exports.stores = stores;
86775
86362
  exports.tokenColors = tokenColors;
86776
86363
  exports.tokenize = tokenize;
86777
86364
 
86778
- __info__.version = "19.4.0-alpha.10";
86779
- __info__.date = "2026-06-02T12:07:58.355Z";
86780
- __info__.hash = "41144f9";
86365
+ __info__.version = "19.4.0-alpha.11";
86366
+ __info__.date = "2026-06-03T11:42:34.595Z";
86367
+ __info__.hash = "6f35bc7";
86781
86368
 
86782
86369
  })(this.o_spreadsheet = this.o_spreadsheet || {}, owl);