@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
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
@@ -670,6 +670,18 @@ const borderStyles = [
670
670
  function isMatrix(x) {
671
671
  return Array.isArray(x) && Array.isArray(x[0]);
672
672
  }
673
+ const borderPositions = [
674
+ "all",
675
+ "hv",
676
+ "h",
677
+ "v",
678
+ "external",
679
+ "left",
680
+ "top",
681
+ "right",
682
+ "bottom",
683
+ "clear"
684
+ ];
673
685
  let DIRECTION = /* @__PURE__ */ function(DIRECTION) {
674
686
  DIRECTION["UP"] = "up";
675
687
  DIRECTION["DOWN"] = "down";
@@ -677,6 +689,11 @@ let DIRECTION = /* @__PURE__ */ function(DIRECTION) {
677
689
  DIRECTION["RIGHT"] = "right";
678
690
  return DIRECTION;
679
691
  }({});
692
+ const composerFocusTypes = [
693
+ "inactive",
694
+ "cellFocus",
695
+ "contentFocus"
696
+ ];
680
697
 
681
698
  //#endregion
682
699
  //#region src/helpers/misc.ts
@@ -2578,13 +2595,9 @@ function unregisterChartJsExtensions() {
2578
2595
  const isOdooCompatLoaded = _odoo_owl.__ODOO_COMPATIBILITY_LAYER_ADDED__ === true;
2579
2596
  var _Component = class extends _odoo_owl.Component {
2580
2597
  static template = "";
2581
- static props = {};
2582
- static defaultProps = {};
2583
- props;
2584
2598
  env;
2585
2599
  constructor(node) {
2586
2600
  super(node);
2587
- this.props = (0, _odoo_owl.props)(null, this.constructor.defaultProps);
2588
2601
  this.env = useChildEnv();
2589
2602
  this.__owl__ = node;
2590
2603
  }
@@ -2706,10 +2719,11 @@ var VPortal = class extends _odoo_owl.blockDom.text("").constructor {
2706
2719
  };
2707
2720
  var Portal = class extends _odoo_owl.Component {
2708
2721
  static template = _odoo_owl.xml`<t t-call-slot="default"/>`;
2709
- static props = {
2710
- selector: String,
2711
- slots: true
2712
- };
2722
+ constructor(node) {
2723
+ super(node);
2724
+ this.props = (0, _odoo_owl.props)();
2725
+ this.__owl__ = node;
2726
+ }
2713
2727
  setup() {
2714
2728
  const node = this.__owl__;
2715
2729
  const renderContent = node.renderFn;
@@ -7024,6 +7038,11 @@ function getRange(sheetXC, sheetId) {
7024
7038
  sheetId
7025
7039
  }, defaultGetSheetSize);
7026
7040
  }
7041
+ function replaceSymbolInFormula(formula, oldSymbol, newSymbol) {
7042
+ const oldCanonicalSymbol = getCanonicalSymbolName(oldSymbol);
7043
+ const newCanonicalSymbol = getCanonicalSymbolName(newSymbol);
7044
+ return tokenize(formula).map((token) => token.type === "SYMBOL" && token.value === oldCanonicalSymbol ? newCanonicalSymbol : token.value).join("");
7045
+ }
7027
7046
 
7028
7047
  //#endregion
7029
7048
  //#region src/formulas/code_builder.ts
@@ -9917,6 +9936,9 @@ function getChartBackgroundColor({ background }, getters) {
9917
9936
  //#endregion
9918
9937
  //#region src/components/figures/chart/chartJs/chartjs_show_values_plugin.ts
9919
9938
  const MINIMAL_VERTICAL_DISTANCE = 13;
9939
+ function isLineOverlayOnBarChart(options, dataset) {
9940
+ return options.type === "bar" && dataset.type === "line";
9941
+ }
9920
9942
  /** This is a chartJS plugin that will draw the values of each data next to the point/bar/pie slice */
9921
9943
  const chartShowValuesPlugin = {
9922
9944
  id: "chartShowValuesPlugin",
@@ -9967,7 +9989,7 @@ function drawTextWithBackground(text, x, y, ctx) {
9967
9989
  function drawLineOrBarOrRadarChartValues(chart, options, ctx) {
9968
9990
  const textsPositions = {};
9969
9991
  for (const dataset of chart._metasets) {
9970
- if (isTrendLineAxis(dataset.xAxisID) || dataset.hidden) continue;
9992
+ if (isTrendLineAxis(dataset.xAxisID) || dataset.hidden || isLineOverlayOnBarChart(options, dataset)) continue;
9971
9993
  const yAxisScale = chart.scales[dataset.yAxisID];
9972
9994
  for (let i = 0; i < dataset._parsed.length; i++) {
9973
9995
  const parsedValue = dataset._parsed[i];
@@ -10046,7 +10068,7 @@ function drawBubbleChartValues(chart, options, ctx) {
10046
10068
  function drawHorizontalBarChartValues(chart, options, ctx) {
10047
10069
  const textsPositions = {};
10048
10070
  for (const dataset of chart._metasets) {
10049
- if (isTrendLineAxis(dataset.xAxisID)) return;
10071
+ if (isTrendLineAxis(dataset.xAxisID) || isLineOverlayOnBarChart(options, dataset)) continue;
10050
10072
  const xZeroLine = chart.scales[dataset.xAxisID].getPixelForValue(0);
10051
10073
  for (let i = 0; i < dataset._parsed.length; i++) {
10052
10074
  const value = Number(dataset._parsed[i].x);
@@ -10691,8 +10713,38 @@ function getBarChartDatasets(definition, args) {
10691
10713
  trendDatasets.push(getTrendingLineDataSet(dataset, trendConfig, trendData));
10692
10714
  }
10693
10715
  dataSets.push(...trendDatasets);
10716
+ const totalLineDataset = getBarChartTotalLineDataset(definition, dataSetsValues);
10717
+ if (totalLineDataset) dataSets.push(totalLineDataset);
10694
10718
  return dataSets;
10695
10719
  }
10720
+ function getBarChartTotalLineDataset(definition, dataSetsValues) {
10721
+ const visibleDataSetsValues = dataSetsValues.filter((dataSet) => !dataSet.hidden);
10722
+ if (!definition.stacked || !definition.showTotalLine || visibleDataSetsValues.length < 2) return;
10723
+ const data = range(0, Math.max(...visibleDataSetsValues.map((dataSet) => dataSet.data.length))).map((index) => {
10724
+ let total;
10725
+ for (const dataSet of visibleDataSetsValues) {
10726
+ const cell = dataSet.data[index];
10727
+ if (isNumberResult(cell)) total = (total ?? 0) + cell.value;
10728
+ }
10729
+ return total ?? NaN;
10730
+ });
10731
+ const color = relativeLuminance(definition.background || "#FFFFFF") < .3 ? "#e9ecef" : "#343a40";
10732
+ return {
10733
+ type: "line",
10734
+ label: _t("Sum"),
10735
+ data,
10736
+ order: -1,
10737
+ tension: 0,
10738
+ fill: false,
10739
+ pointRadius: 3,
10740
+ borderWidth: 2,
10741
+ backgroundColor: color,
10742
+ borderColor: color,
10743
+ pointBackgroundColor: color,
10744
+ xAxisID: "x",
10745
+ yAxisID: "y"
10746
+ };
10747
+ }
10696
10748
  function getCalendarChartDatasetAndLabels(definition, args) {
10697
10749
  const { labels, dataSetsValues, background } = args;
10698
10750
  const values = dataSetsValues.map((ds) => ds.data).flat().filter(isNumberResult).map((cell) => cell.value);
@@ -11470,13 +11522,10 @@ chartJsExtensionRegistry.add("chartBackgroundPlugin", {
11470
11522
  });
11471
11523
  var ChartJsComponent = class extends Component {
11472
11524
  static template = "o-spreadsheet-ChartJsComponent";
11473
- static props = {
11474
- chartId: String,
11475
- isFullScreen: {
11476
- type: Boolean,
11477
- optional: true
11478
- }
11479
- };
11525
+ props = (0, _odoo_owl.props)({
11526
+ chartId: _odoo_owl.types.string(),
11527
+ "isFullScreen?": _odoo_owl.types.boolean()
11528
+ });
11480
11529
  canvas = (0, _odoo_owl.signal)(null);
11481
11530
  chart;
11482
11531
  currentRuntime;
@@ -12172,13 +12221,10 @@ function getZoomTargetPosition(ev, zoom) {
12172
12221
  //#region src/components/figures/chart/scorecard/chart_scorecard.ts
12173
12222
  var ScorecardChart = class extends Component {
12174
12223
  static template = "o-spreadsheet-ScorecardChart";
12175
- static props = {
12176
- chartId: String,
12177
- isFullScreen: {
12178
- type: Boolean,
12179
- optional: true
12180
- }
12181
- };
12224
+ props = (0, _odoo_owl.props)({
12225
+ chartId: _odoo_owl.types.string(),
12226
+ "isFullScreen?": _odoo_owl.types.boolean()
12227
+ });
12182
12228
  canvas = (0, _odoo_owl.signal)(null);
12183
12229
  get runtime() {
12184
12230
  return this.env.model.getters.getChartRuntime(this.props.chartId);
@@ -13864,13 +13910,10 @@ function hasIconLayoutChange(newBox, oldBox) {
13864
13910
  const ANIMATION_DURATION = 1e3;
13865
13911
  var GaugeChartComponent = class extends Component {
13866
13912
  static template = "o-spreadsheet-GaugeChartComponent";
13867
- static props = {
13868
- chartId: String,
13869
- isFullScreen: {
13870
- type: Boolean,
13871
- optional: true
13872
- }
13873
- };
13913
+ props = (0, _odoo_owl.props)({
13914
+ chartId: _odoo_owl.types.string(),
13915
+ "isFullScreen?": _odoo_owl.types.boolean()
13916
+ });
13874
13917
  canvas = (0, _odoo_owl.signal)(null);
13875
13918
  animationStore;
13876
13919
  get runtime() {
@@ -14141,52 +14184,201 @@ function useTimeOut() {
14141
14184
  };
14142
14185
  }
14143
14186
 
14187
+ //#endregion
14188
+ //#region src/components/props_validation.ts
14189
+ /**
14190
+ * Validate that a prop is a number, but with a more specific type than just `number` (e.g. `Pixel`).
14191
+ */
14192
+ function validateNumber() {
14193
+ return _odoo_owl.types.number();
14194
+ }
14195
+ /**
14196
+ * Validate that a prop is a string, but with a more specific type than just `string` (e.g. `Color`).
14197
+ */
14198
+ function validateString() {
14199
+ return _odoo_owl.types.string();
14200
+ }
14201
+ /**
14202
+ * Validate that a prop is an object, but with a more specific type than just `object` (e.g. `ActionSpec`).
14203
+ */
14204
+ function validateObject() {
14205
+ return _odoo_owl.types.object();
14206
+ }
14207
+ /**
14208
+ * Validate that a prop is an array, but with a more specific element type than `any[]`.
14209
+ */
14210
+ function validateArrayOf() {
14211
+ return _odoo_owl.types.array();
14212
+ }
14213
+ /**
14214
+ * Validate that a prop is a record (string-keyed dictionary), but with a more
14215
+ * specific value type than `any`.
14216
+ */
14217
+ function validateRecordOf() {
14218
+ return _odoo_owl.types.record();
14219
+ }
14220
+ /**
14221
+ * Validate that a prop is a `Set`, typed with a specific element type.
14222
+ */
14223
+ function validateSetOf() {
14224
+ return _odoo_owl.types.instanceOf(Set);
14225
+ }
14226
+ function validateRect() {
14227
+ return _odoo_owl.types.object({
14228
+ x: _odoo_owl.types.number(),
14229
+ y: _odoo_owl.types.number(),
14230
+ width: _odoo_owl.types.number(),
14231
+ height: _odoo_owl.types.number()
14232
+ });
14233
+ }
14234
+ function validateBorderPosition() {
14235
+ return _odoo_owl.types.customValidator(validateString(), (position) => borderPositions.includes(position));
14236
+ }
14237
+ function validateBorderStyle() {
14238
+ return _odoo_owl.types.customValidator(validateString(), (style) => borderStyles.includes(style));
14239
+ }
14240
+ function validateDOMCoordinates() {
14241
+ return _odoo_owl.types.object({
14242
+ x: _odoo_owl.types.number(),
14243
+ y: _odoo_owl.types.number()
14244
+ });
14245
+ }
14246
+ function validateDOMDimension() {
14247
+ return _odoo_owl.types.object({
14248
+ width: _odoo_owl.types.number(),
14249
+ height: _odoo_owl.types.number()
14250
+ });
14251
+ }
14252
+ function validateSortDirection() {
14253
+ return _odoo_owl.types.customValidator(validateString(), (direction) => ["asc", "desc"].includes(direction));
14254
+ }
14255
+ function validateResizeDirection() {
14256
+ return _odoo_owl.types.customValidator(validateNumber(), (direction) => [
14257
+ -1,
14258
+ 0,
14259
+ 1
14260
+ ].includes(direction));
14261
+ }
14262
+ function validateComposerFocusType() {
14263
+ return _odoo_owl.types.customValidator(validateString(), (value) => composerFocusTypes.includes(value));
14264
+ }
14265
+ function validateDimension() {
14266
+ return _odoo_owl.types.customValidator(validateString(), (value) => ["COL", "ROW"].includes(value));
14267
+ }
14268
+ function validateContextMenuType() {
14269
+ return _odoo_owl.types.customValidator(validateString(), (value) => [
14270
+ "ROW",
14271
+ "COL",
14272
+ "CELL",
14273
+ "FILTER",
14274
+ "GROUP_HEADERS",
14275
+ "UNGROUP_HEADERS"
14276
+ ].includes(value));
14277
+ }
14278
+ /**
14279
+ * Validate that a prop is a store. Typed as the CQS-wrapped `Store<T>` to
14280
+ * match what `useStore(...)` returns at the call site.
14281
+ */
14282
+ function validateStore() {
14283
+ return _odoo_owl.types.object();
14284
+ }
14285
+ const types$6 = {
14286
+ ..._odoo_owl.types,
14287
+ ArrayOf: validateArrayOf,
14288
+ RecordOf: validateRecordOf,
14289
+ SetOf: validateSetOf,
14290
+ GenericCriterionType: validateString,
14291
+ UID: validateString,
14292
+ CriterionFilter: validateObject,
14293
+ CSSProperties: validateObject,
14294
+ ResizeDirection: validateResizeDirection,
14295
+ FigureUI: validateObject,
14296
+ Token: validateObject,
14297
+ CellPosition: validateObject,
14298
+ AutoCompleteProviderDefinition: validateObject,
14299
+ AutoCompleteProposal: validateObject,
14300
+ FunctionDescription: validateObject,
14301
+ Rect: validateRect,
14302
+ Pixel: validateNumber,
14303
+ HeaderIndex: validateNumber,
14304
+ BorderPosition: validateBorderPosition,
14305
+ BorderStyle: validateBorderStyle,
14306
+ Color: validateString,
14307
+ ActionSpec: validateObject,
14308
+ DOMCoordinates: validateDOMCoordinates,
14309
+ DOMDimension: validateDOMDimension,
14310
+ ComposerFocusType: validateComposerFocusType,
14311
+ SortDirection: validateSortDirection,
14312
+ Store: validateStore,
14313
+ Position: validateObject,
14314
+ PivotCoreDefinition: validateObject,
14315
+ PivotField: validateObject,
14316
+ PivotDimension: validateObject,
14317
+ PivotMeasure: validateObject,
14318
+ PivotCoreMeasure: validateObject,
14319
+ PivotCustomGroupedField: validateObject,
14320
+ PivotRuntimeDefinition: validateObject,
14321
+ PivotFilter: validateObject,
14322
+ DataFilterValue: validateObject,
14323
+ SpreadsheetPivotCoreDefinition: validateObject,
14324
+ ComposerSelection: validateObject,
14325
+ Action: validateObject,
14326
+ MenuItemOrSeparator: validateObject,
14327
+ Model: validateObject,
14328
+ DispatchResult: validateObject,
14329
+ Zone: validateObject,
14330
+ Range: validateObject,
14331
+ HeaderGroup: validateObject,
14332
+ GridClickModifiers: validateObject,
14333
+ ZoomedMouseEvent: validateObject,
14334
+ ConditionalFormat: validateObject,
14335
+ ColorScaleThreshold: validateObject,
14336
+ Table: validateObject,
14337
+ CoreTable: validateObject,
14338
+ TableConfig: validateObject,
14339
+ TableStyle: validateObject,
14340
+ TitleDesign: validateObject,
14341
+ ChartDefinition: validateObject,
14342
+ ChartDefinitionWithDataSource: validateObject,
14343
+ ChartWithAxisDefinition: validateObject,
14344
+ ChartStyle: validateObject,
14345
+ ChartColorScale: validateObject,
14346
+ ChartRangeDataSource: validateObject,
14347
+ DataSetStyle: validateObject,
14348
+ GeoChartDefinition: validateObject,
14349
+ FunnelChartDefinition: validateObject,
14350
+ TreeMapChartDefinition: validateObject,
14351
+ TreeMapCategoryColorOptions: validateObject,
14352
+ TreeMapColorScaleOptions: validateObject,
14353
+ NamedRange: validateObject,
14354
+ DataValidationRule: validateObject,
14355
+ InformationNotification: validateObject,
14356
+ NotificationStoreMethods: validateObject,
14357
+ SidePanelContent: validateObject,
14358
+ SidePanelComponentProps: validateObject,
14359
+ DataValidationCriterionType: validateString,
14360
+ Dimension: validateDimension,
14361
+ ContextMenuType: validateContextMenuType
14362
+ };
14363
+
14144
14364
  //#endregion
14145
14365
  //#region src/components/menu/menu.ts
14146
14366
  var Menu = class extends Component {
14147
14367
  static template = "o-spreadsheet-Menu";
14148
- static props = {
14149
- menuItems: Array,
14150
- onClose: Function,
14151
- onClickMenu: {
14152
- type: Function,
14153
- optional: true
14154
- },
14155
- onMouseEnter: {
14156
- type: Function,
14157
- optional: true
14158
- },
14159
- onMouseLeave: {
14160
- type: Function,
14161
- optional: true
14162
- },
14163
- width: {
14164
- type: Number,
14165
- optional: true
14166
- },
14167
- hoveredMenuId: {
14168
- type: String,
14169
- optional: true
14170
- },
14171
- isHoveredMenuFocused: {
14172
- type: Boolean,
14173
- optional: true
14174
- },
14175
- onScroll: {
14176
- type: Function,
14177
- optional: true
14178
- },
14179
- onKeyDown: {
14180
- type: Function,
14181
- optional: true
14182
- },
14183
- disableKeyboardNavigation: {
14184
- type: Boolean,
14185
- optional: true
14186
- }
14187
- };
14188
14368
  static components = {};
14189
- static defaultProps = {};
14369
+ props = (0, _odoo_owl.props)({
14370
+ menuItems: types$6.ArrayOf(),
14371
+ onClose: types$6.function([]),
14372
+ "onClickMenu?": types$6.function([types$6.Action(), types$6.instanceOf(PointerEvent)]),
14373
+ "onMouseEnter?": types$6.function([types$6.Action(), types$6.instanceOf(PointerEvent)]),
14374
+ "onMouseLeave?": types$6.function([types$6.Action(), types$6.instanceOf(PointerEvent)]),
14375
+ "width?": types$6.number(),
14376
+ "hoveredMenuId?": types$6.string(),
14377
+ "isHoveredMenuFocused?": types$6.boolean(),
14378
+ "onScroll?": types$6.function([types$6.instanceOf(CustomEvent)]),
14379
+ "onKeyDown?": types$6.function([types$6.instanceOf(KeyboardEvent)]),
14380
+ "disableKeyboardNavigation?": types$6.boolean()
14381
+ });
14190
14382
  menuRef = (0, _odoo_owl.signal)(null);
14191
14383
  setup() {
14192
14384
  useLayoutEffect(() => {
@@ -14324,57 +14516,25 @@ function usePopoverContainer() {
14324
14516
  //#region src/components/popover/popover.ts
14325
14517
  var Popover = class extends Component {
14326
14518
  static template = "o-spreadsheet-Popover";
14327
- static props = {
14328
- anchorRect: Object,
14329
- containerRect: {
14330
- type: Object,
14331
- optional: true
14332
- },
14333
- positioning: {
14334
- type: String,
14335
- optional: true
14336
- },
14337
- maxWidth: {
14338
- type: Number,
14339
- optional: true
14340
- },
14341
- maxHeight: {
14342
- type: Number,
14343
- optional: true
14344
- },
14345
- verticalOffset: {
14346
- type: Number,
14347
- optional: true
14348
- },
14349
- onMouseWheel: {
14350
- type: Function,
14351
- optional: true
14352
- },
14353
- onPopoverHidden: {
14354
- type: Function,
14355
- optional: true
14356
- },
14357
- onPopoverMoved: {
14358
- type: Function,
14359
- optional: true
14360
- },
14361
- zIndex: {
14362
- type: Number,
14363
- optional: true
14364
- },
14365
- class: {
14366
- type: String,
14367
- optional: true
14368
- },
14369
- slots: Object
14370
- };
14371
- static defaultProps = {
14519
+ props = (0, _odoo_owl.props)({
14520
+ anchorRect: types$6.Rect(),
14521
+ "containerRect?": types$6.object({}),
14522
+ "positioning?": types$6.or([types$6.literal("top-right"), types$6.literal("bottom-left")]),
14523
+ "maxWidth?": types$6.Pixel(),
14524
+ "maxHeight?": types$6.Pixel(),
14525
+ "verticalOffset?": types$6.number(),
14526
+ "onMouseWheel?": types$6.function([]),
14527
+ "onPopoverHidden?": types$6.function([]),
14528
+ "onPopoverMoved?": types$6.function([]),
14529
+ "zIndex?": types$6.number(),
14530
+ "class?": types$6.string()
14531
+ }, {
14372
14532
  positioning: "bottom-left",
14373
14533
  verticalOffset: 0,
14374
14534
  onMouseWheel: () => {},
14375
14535
  onPopoverMoved: () => {},
14376
14536
  onPopoverHidden: () => {}
14377
- };
14537
+ });
14378
14538
  popoverRef = (0, _odoo_owl.signal)(null);
14379
14539
  popoverContentRef = (0, _odoo_owl.signal)(null);
14380
14540
  currentPosition = void 0;
@@ -14536,60 +14696,29 @@ var TopRightPopoverContext = class extends PopoverPositionContext {
14536
14696
  const TIMEOUT_DELAY = 250;
14537
14697
  var MenuPopover = class MenuPopover extends Component {
14538
14698
  static template = "o-spreadsheet-Menu-Popover";
14539
- static props = {
14540
- anchorRect: Object,
14541
- popoverPositioning: {
14542
- type: String,
14543
- optional: true
14544
- },
14545
- menuItems: Array,
14546
- depth: {
14547
- type: Number,
14548
- optional: true
14549
- },
14550
- maxHeight: {
14551
- type: Number,
14552
- optional: true
14553
- },
14554
- onClose: Function,
14555
- onMenuClicked: {
14556
- type: Function,
14557
- optional: true
14558
- },
14559
- menuId: {
14560
- type: String,
14561
- optional: true
14562
- },
14563
- onMouseOver: {
14564
- type: Function,
14565
- optional: true
14566
- },
14567
- width: {
14568
- type: Number,
14569
- optional: true
14570
- },
14571
- autoSelectFirstItem: {
14572
- type: Boolean,
14573
- optional: true
14574
- },
14575
- disableKeyboardNavigation: {
14576
- type: Boolean,
14577
- optional: true
14578
- },
14579
- onKeyboardNavigation: {
14580
- type: Function,
14581
- optional: true
14582
- }
14583
- };
14584
14699
  static components = {
14585
14700
  MenuPopover,
14586
14701
  Menu,
14587
14702
  Popover
14588
14703
  };
14589
- static defaultProps = {
14704
+ props = (0, _odoo_owl.props)({
14705
+ anchorRect: types$6.Rect(),
14706
+ "popoverPositioning?": types$6.or([types$6.literal("top-right"), types$6.literal("bottom-left")]),
14707
+ menuItems: types$6.ArrayOf(),
14708
+ "depth?": types$6.number(),
14709
+ "maxHeight?": types$6.Pixel(),
14710
+ onClose: types$6.function([]),
14711
+ "onMenuClicked?": types$6.function([types$6.instanceOf(CustomEvent)]),
14712
+ "menuId?": types$6.UID(),
14713
+ "onMouseOver?": types$6.function([]),
14714
+ "width?": types$6.number(),
14715
+ "autoSelectFirstItem?": types$6.boolean(),
14716
+ "disableKeyboardNavigation?": types$6.boolean(),
14717
+ "onKeyboardNavigation?": types$6.function([types$6.instanceOf(KeyboardEvent)])
14718
+ }, {
14590
14719
  depth: 0,
14591
14720
  popoverPositioning: "top-right"
14592
- };
14721
+ });
14593
14722
  subMenu = (0, _odoo_owl.proxy)({
14594
14723
  isOpen: false,
14595
14724
  anchorRect: null,
@@ -14829,31 +14958,16 @@ var MenuPopover = class MenuPopover extends Component {
14829
14958
  //#region src/components/select/select.ts
14830
14959
  var Select = class extends Component {
14831
14960
  static template = "o-spreadsheet-Select";
14832
- static props = {
14833
- onChange: Function,
14834
- values: Array,
14835
- selectedValue: {
14836
- type: String,
14837
- optional: true
14838
- },
14839
- class: {
14840
- type: String,
14841
- optional: true
14842
- },
14843
- popoverClass: {
14844
- type: String,
14845
- optional: true
14846
- },
14847
- name: {
14848
- type: String,
14849
- optional: true
14850
- },
14851
- title: {
14852
- type: String,
14853
- optional: true
14854
- }
14855
- };
14856
14961
  static components = { Popover };
14962
+ props = (0, _odoo_owl.props)({
14963
+ onChange: types$6.function([types$6.string()]),
14964
+ values: types$6.array(),
14965
+ "selectedValue?": types$6.string(),
14966
+ "class?": types$6.string(),
14967
+ "popoverClass?": types$6.string(),
14968
+ "name?": types$6.string(),
14969
+ "title?": types$6.string()
14970
+ });
14857
14971
  selectRef = (0, _odoo_owl.signal)(null);
14858
14972
  dropdownRef = (0, _odoo_owl.signal)(null);
14859
14973
  state = (0, _odoo_owl.proxy)({
@@ -14959,14 +15073,10 @@ var ChartDashboardMenu = class extends Component {
14959
15073
  MenuPopover,
14960
15074
  Select
14961
15075
  };
14962
- static props = {
14963
- chartId: String,
14964
- hasFullScreenButton: {
14965
- type: Boolean,
14966
- optional: true
14967
- }
14968
- };
14969
- static defaultProps = { hasFullScreenButton: true };
15076
+ props = (0, _odoo_owl.props)({
15077
+ chartId: types$6.UID(),
15078
+ "hasFullScreenButton?": types$6.boolean()
15079
+ }, { hasFullScreenButton: true });
14970
15080
  fullScreenFigureStore;
14971
15081
  menuState = (0, _odoo_owl.proxy)({
14972
15082
  isOpen: false,
@@ -15029,25 +15139,16 @@ var ChartDashboardMenu = class extends Component {
15029
15139
  //#region src/components/figures/figure_carousel/figure_carousel.ts
15030
15140
  var CarouselFigure = class extends Component {
15031
15141
  static template = "o-spreadsheet-CarouselFigure";
15032
- static props = {
15033
- figureUI: Object,
15034
- editFigureStyle: {
15035
- type: Function,
15036
- optional: true
15037
- },
15038
- isFullScreen: {
15039
- type: Boolean,
15040
- optional: true
15041
- },
15042
- openContextMenu: {
15043
- type: Function,
15044
- optional: true
15045
- }
15046
- };
15047
15142
  static components = {
15048
15143
  ChartDashboardMenu,
15049
15144
  MenuPopover
15050
15145
  };
15146
+ props = (0, _odoo_owl.props)({
15147
+ figureUI: types$6.FigureUI(),
15148
+ "editFigureStyle?": types$6.function([types$6.CSSProperties()]),
15149
+ "isFullScreen?": types$6.boolean(),
15150
+ "openContextMenu?": types$6.function([types$6.Rect(), types$6.function([])])
15151
+ });
15051
15152
  carouselTabsRef = (0, _odoo_owl.signal)(null);
15052
15153
  carouselTabsDropdownRef = (0, _odoo_owl.signal)(null);
15053
15154
  menuState = (0, _odoo_owl.proxy)({
@@ -15180,22 +15281,13 @@ var CarouselFigure = class extends Component {
15180
15281
  //#region src/components/figures/figure_chart/figure_chart.ts
15181
15282
  var ChartFigure = class extends Component {
15182
15283
  static template = "o-spreadsheet-ChartFigure";
15183
- static props = {
15184
- figureUI: Object,
15185
- editFigureStyle: {
15186
- type: Function,
15187
- optional: true
15188
- },
15189
- isFullScreen: {
15190
- type: Boolean,
15191
- optional: true
15192
- },
15193
- openContextMenu: {
15194
- type: Function,
15195
- optional: true
15196
- }
15197
- };
15198
15284
  static components = { ChartDashboardMenu };
15285
+ props = (0, _odoo_owl.props)({
15286
+ figureUI: types$6.FigureUI(),
15287
+ "editFigureStyle?": types$6.function([types$6.CSSProperties()]),
15288
+ "isFullScreen?": types$6.boolean(),
15289
+ "openContextMenu?": types$6.function([types$6.Rect(), types$6.function([])])
15290
+ });
15199
15291
  onDoubleClick() {
15200
15292
  this.env.model.dispatch("SELECT_FIGURE", { figureId: this.props.figureUI.id });
15201
15293
  this.env.openSidePanel("ChartPanel");
@@ -15220,18 +15312,12 @@ var ChartFigure = class extends Component {
15220
15312
  //#region src/components/figures/figure_image/figure_image.ts
15221
15313
  var ImageFigure = class extends Component {
15222
15314
  static template = "o-spreadsheet-ImageFigure";
15223
- static props = {
15224
- figureUI: Object,
15225
- editFigureStyle: {
15226
- type: Function,
15227
- optional: true
15228
- },
15229
- openContextMenu: {
15230
- type: Function,
15231
- optional: true
15232
- }
15233
- };
15234
15315
  static components = {};
15316
+ props = (0, _odoo_owl.props)({
15317
+ figureUI: types$6.FigureUI(),
15318
+ "editFigureStyle?": types$6.function([types$6.CSSProperties()]),
15319
+ "openContextMenu?": types$6.function([types$6.Rect(), types$6.function([])])
15320
+ });
15235
15321
  get figureId() {
15236
15322
  return this.props.figureUI.id;
15237
15323
  }
@@ -15267,30 +15353,21 @@ const BORDER_WIDTH = 1;
15267
15353
  const ACTIVE_BORDER_WIDTH = 2;
15268
15354
  var FigureComponent = class extends Component {
15269
15355
  static template = "o-spreadsheet-FigureComponent";
15270
- static props = {
15271
- figureUI: Object,
15272
- style: {
15273
- type: String,
15274
- optional: true
15275
- },
15276
- class: {
15277
- type: String,
15278
- optional: true
15279
- },
15280
- onMouseDown: {
15281
- type: Function,
15282
- optional: true
15283
- },
15284
- onClickAnchor: {
15285
- type: Function,
15286
- optional: true
15287
- }
15288
- };
15289
15356
  static components = { MenuPopover };
15290
- static defaultProps = {
15357
+ props = (0, _odoo_owl.props)({
15358
+ figureUI: types$6.FigureUI(),
15359
+ style: types$6.string(),
15360
+ class: types$6.string(),
15361
+ "onMouseDown?": types$6.function([types$6.instanceOf(MouseEvent)]),
15362
+ "onClickAnchor?": types$6.function([
15363
+ types$6.ResizeDirection(),
15364
+ types$6.ResizeDirection(),
15365
+ types$6.instanceOf(MouseEvent)
15366
+ ])
15367
+ }, {
15291
15368
  onMouseDown: () => {},
15292
15369
  onClickAnchor: () => {}
15293
- };
15370
+ });
15294
15371
  menuState = (0, _odoo_owl.proxy)({
15295
15372
  isOpen: false,
15296
15373
  anchorRect: null,
@@ -21764,7 +21841,7 @@ function changeCalculatedMeasuresOnMeasureChange(oldMeasure, newMeasure, measure
21764
21841
  return measures.map((measure) => {
21765
21842
  if (measure.id === oldMeasure.id) return newMeasure;
21766
21843
  else if (!measure.computedBy || oldMeasure.id === newMeasure.id) return measure;
21767
- const newFormula = tokenize(measure.computedBy.formula).map((token) => token.type === "SYMBOL" && token.value === getCanonicalSymbolName(oldMeasure.id) ? getCanonicalSymbolName(newMeasure.id) : token.value).join("");
21844
+ const newFormula = replaceSymbolInFormula(measure.computedBy.formula, oldMeasure.id, newMeasure.id);
21768
21845
  return {
21769
21846
  ...measure,
21770
21847
  computedBy: {
@@ -24405,51 +24482,22 @@ function useAutofocus(ref) {
24405
24482
 
24406
24483
  //#endregion
24407
24484
  //#region src/components/generic_input/generic_input.ts
24485
+ const genericInputPropsDefinition = {
24486
+ value: types$6.or([types$6.number(), types$6.string()]),
24487
+ onChange: types$6.function([types$6.string()]),
24488
+ "onFocused?": types$6.function([]),
24489
+ "onBlur?": types$6.function([]),
24490
+ "onInput?": types$6.function([types$6.string()]),
24491
+ "class?": types$6.string(),
24492
+ "id?": types$6.string(),
24493
+ "placeholder?": types$6.string(),
24494
+ "autofocus?": types$6.boolean(),
24495
+ "alwaysShowBorder?": types$6.boolean(),
24496
+ "selectContentOnFocus?": types$6.boolean(),
24497
+ "resetOnBlur?": types$6.boolean()
24498
+ };
24408
24499
  var GenericInput = class extends Component {
24409
- static props = {
24410
- value: [Number, String],
24411
- onChange: Function,
24412
- onFocused: {
24413
- type: Function,
24414
- optional: true
24415
- },
24416
- onBlur: {
24417
- type: Function,
24418
- optional: true
24419
- },
24420
- onInput: {
24421
- type: Function,
24422
- optional: true
24423
- },
24424
- class: {
24425
- type: String,
24426
- optional: true
24427
- },
24428
- id: {
24429
- type: String,
24430
- optional: true
24431
- },
24432
- placeholder: {
24433
- type: String,
24434
- optional: true
24435
- },
24436
- autofocus: {
24437
- type: Boolean,
24438
- optional: true
24439
- },
24440
- alwaysShowBorder: {
24441
- type: Boolean,
24442
- optional: true
24443
- },
24444
- selectContentOnFocus: {
24445
- type: Boolean,
24446
- optional: true
24447
- },
24448
- resetOnBlur: {
24449
- type: Boolean,
24450
- optional: true
24451
- }
24452
- };
24500
+ props = (0, _odoo_owl.props)(genericInputPropsDefinition);
24453
24501
  genericInputRef = (0, _odoo_owl.signal)(null);
24454
24502
  lastOnChangeValue = this.props.value.toString();
24455
24503
  setup() {
@@ -24532,13 +24580,11 @@ var GenericInput = class extends Component {
24532
24580
  var TextInput = class extends GenericInput {
24533
24581
  static template = "o-spreadsheet-TextInput";
24534
24582
  static components = {};
24535
- static props = {
24536
- ...GenericInput.props,
24537
- errorMessage: {
24538
- type: String,
24539
- optional: true
24540
- }
24541
- };
24583
+ props = (0, _odoo_owl.props)({
24584
+ ...genericInputPropsDefinition,
24585
+ value: types$6.string(),
24586
+ "errorMessage?": types$6.string()
24587
+ });
24542
24588
  get inputClass() {
24543
24589
  return [
24544
24590
  this.props.class,
@@ -24553,25 +24599,13 @@ var TextInput = class extends GenericInput {
24553
24599
  //#region src/components/action_button/action_button.ts
24554
24600
  var ActionButton = class extends Component {
24555
24601
  static template = "o-spreadsheet-ActionButton";
24556
- static props = {
24557
- action: Object,
24558
- hasTriangleDownIcon: {
24559
- type: Boolean,
24560
- optional: true
24561
- },
24562
- selectedColor: {
24563
- type: String,
24564
- optional: true
24565
- },
24566
- class: {
24567
- type: String,
24568
- optional: true
24569
- },
24570
- onClick: {
24571
- type: Function,
24572
- optional: true
24573
- }
24574
- };
24602
+ props = (0, _odoo_owl.props)({
24603
+ action: types$6.ActionSpec(),
24604
+ "hasTriangleDownIcon?": types$6.boolean(),
24605
+ "selectedColor?": types$6.string(),
24606
+ "class?": types$6.string(),
24607
+ "onClick?": types$6.function()
24608
+ });
24575
24609
  actionButton = createAction(this.props.action);
24576
24610
  setup() {
24577
24611
  (0, _odoo_owl.onWillUpdateProps)((nextProps) => {
@@ -24623,24 +24657,14 @@ const INNER_GRADIENT_WIDTH = CONTENT_WIDTH - 2 * ITEM_BORDER_WIDTH;
24623
24657
  const INNER_GRADIENT_HEIGHT = CONTENT_WIDTH - 30 - 2 * ITEM_BORDER_WIDTH;
24624
24658
  var ColorPicker = class extends Component {
24625
24659
  static template = "o-spreadsheet-ColorPicker";
24626
- static props = {
24627
- onColorPicked: Function,
24628
- currentColor: {
24629
- type: String,
24630
- optional: true
24631
- },
24632
- maxHeight: {
24633
- type: Number,
24634
- optional: true
24635
- },
24636
- anchorRect: Object,
24637
- disableNoColor: {
24638
- type: Boolean,
24639
- optional: true
24640
- }
24641
- };
24642
- static defaultProps = { currentColor: "" };
24643
24660
  static components = { Popover };
24661
+ props = (0, _odoo_owl.props)({
24662
+ onColorPicked: types$6.function([types$6.string()]),
24663
+ "currentColor?": types$6.string(),
24664
+ "maxHeight?": types$6.Pixel(),
24665
+ anchorRect: types$6.Rect(),
24666
+ "disableNoColor?": types$6.boolean()
24667
+ }, { currentColor: "" });
24644
24668
  COLORS = COLOR_PICKER_DEFAULTS;
24645
24669
  state = (0, _odoo_owl.proxy)({
24646
24670
  showGradient: false,
@@ -24784,33 +24808,18 @@ var ColorPicker = class extends Component {
24784
24808
  //#region src/components/color_picker/color_picker_widget.ts
24785
24809
  var ColorPickerWidget = class extends Component {
24786
24810
  static template = "o-spreadsheet-ColorPickerWidget";
24787
- static props = {
24788
- currentColor: {
24789
- type: String,
24790
- optional: true
24791
- },
24792
- toggleColorPicker: Function,
24793
- showColorPicker: Boolean,
24794
- onColorPicked: Function,
24795
- icon: String,
24796
- title: {
24797
- type: String,
24798
- optional: true
24799
- },
24800
- disabled: {
24801
- type: Boolean,
24802
- optional: true
24803
- },
24804
- dropdownMaxHeight: {
24805
- type: Number,
24806
- optional: true
24807
- },
24808
- class: {
24809
- type: String,
24810
- optional: true
24811
- }
24812
- };
24813
24811
  static components = { ColorPicker };
24812
+ props = (0, _odoo_owl.props)({
24813
+ "currentColor?": types$6.string(),
24814
+ toggleColorPicker: types$6.function([]),
24815
+ showColorPicker: types$6.boolean(),
24816
+ onColorPicked: types$6.function([types$6.string()]),
24817
+ icon: types$6.string(),
24818
+ "title?": types$6.string(),
24819
+ "disabled?": types$6.boolean(),
24820
+ "dropdownMaxHeight?": types$6.Pixel(),
24821
+ "class?": types$6.string()
24822
+ });
24814
24823
  colorPickerButtonRef = (0, _odoo_owl.signal)(null);
24815
24824
  get iconStyle() {
24816
24825
  return this.props.currentColor ? `border-color: ${this.props.currentColor}` : "border-bottom-style: hidden";
@@ -24824,29 +24833,19 @@ var ColorPickerWidget = class extends Component {
24824
24833
  //#region src/components/number_editor/number_editor.ts
24825
24834
  var NumberEditor = class extends Component {
24826
24835
  static template = "o-spreadsheet-NumberEditor";
24827
- static props = {
24828
- currentValue: Number,
24829
- onValueChange: Function,
24830
- onToggle: {
24831
- type: Function,
24832
- optional: true
24833
- },
24834
- onFocusInput: {
24835
- type: Function,
24836
- optional: true
24837
- },
24838
- class: String,
24839
- valueIcon: {
24840
- type: String,
24841
- optional: true
24842
- },
24843
- min: Number,
24844
- max: Number,
24845
- title: String,
24846
- valueList: Array
24847
- };
24848
- static defaultProps = { onFocusInput: () => {} };
24849
24836
  static components = { Popover };
24837
+ props = (0, _odoo_owl.props)({
24838
+ currentValue: types$6.number(),
24839
+ onValueChange: types$6.function([types$6.number()]),
24840
+ "onToggle?": types$6.function([]),
24841
+ "onFocusInput?": types$6.function([]),
24842
+ class: types$6.string(),
24843
+ "valueIcon?": types$6.string(),
24844
+ min: types$6.number(),
24845
+ max: types$6.number(),
24846
+ title: types$6.string(),
24847
+ valueList: types$6.array(types$6.number())
24848
+ }, { onFocusInput: () => {} });
24850
24849
  dropdown = (0, _odoo_owl.proxy)({ isOpen: false });
24851
24850
  inputRef = (0, _odoo_owl.signal)(null);
24852
24851
  rootEditorRef = (0, _odoo_owl.signal)(null);
@@ -24925,20 +24924,13 @@ var NumberEditor = class extends Component {
24925
24924
  var FontSizeEditor = class extends Component {
24926
24925
  static template = "o-spreadsheet-FontSizeEditor";
24927
24926
  static components = { NumberEditor };
24928
- static props = {
24929
- currentFontSize: Number,
24930
- onFontSizeChanged: Function,
24931
- onToggle: {
24932
- type: Function,
24933
- optional: true
24934
- },
24935
- onFocusInput: {
24936
- type: Function,
24937
- optional: true
24938
- },
24939
- class: String
24940
- };
24941
- static defaultProps = { onFocusInput: () => {} };
24927
+ props = (0, _odoo_owl.props)({
24928
+ currentFontSize: types$6.number(),
24929
+ onFontSizeChanged: types$6.function([types$6.number()]),
24930
+ "onToggle?": types$6.function([]),
24931
+ "onFocusInput?": types$6.function([]),
24932
+ class: types$6.string()
24933
+ }, { onFocusInput: () => {} });
24942
24934
  fontSizes = FONT_SIZES;
24943
24935
  };
24944
24936
 
@@ -24951,33 +24943,15 @@ var TextStyler = class extends Component {
24951
24943
  ActionButton,
24952
24944
  FontSizeEditor
24953
24945
  };
24954
- static props = {
24955
- style: Object,
24956
- updateStyle: {
24957
- type: Function,
24958
- optional: true
24959
- },
24960
- defaultStyle: {
24961
- type: Object,
24962
- optional: true
24963
- },
24964
- hasVerticalAlign: {
24965
- type: Boolean,
24966
- optional: true
24967
- },
24968
- hasHorizontalAlign: {
24969
- type: Boolean,
24970
- optional: true
24971
- },
24972
- hasBackgroundColor: {
24973
- type: Boolean,
24974
- optional: true
24975
- },
24976
- class: {
24977
- type: String,
24978
- optional: true
24979
- }
24980
- };
24946
+ props = (0, _odoo_owl.props)({
24947
+ style: types$6.ChartStyle(),
24948
+ updateStyle: types$6.function([types$6.ChartStyle()]),
24949
+ "defaultStyle?": types$6.object({}),
24950
+ "hasVerticalAlign?": types$6.boolean(),
24951
+ "hasHorizontalAlign?": types$6.boolean(),
24952
+ "hasBackgroundColor?": types$6.boolean(),
24953
+ "class?": types$6.string()
24954
+ });
24981
24955
  openedEl = null;
24982
24956
  setup() {
24983
24957
  useExternalListener(window, "click", this.onExternalClick);
@@ -25159,7 +25133,7 @@ var TextStyler = class extends Component {
25159
25133
  var CogWheelMenu = class extends Component {
25160
25134
  static template = "o-spreadsheet-CogWheelMenu";
25161
25135
  static components = { MenuPopover };
25162
- static props = { items: Array };
25136
+ props = (0, _odoo_owl.props)({ items: types$6.array(types$6.ActionSpec()) });
25163
25137
  buttonRef = (0, _odoo_owl.signal)(null);
25164
25138
  menuState = (0, _odoo_owl.proxy)({
25165
25139
  isOpen: false,
@@ -25179,33 +25153,27 @@ var CogWheelMenu = class extends Component {
25179
25153
  //#region src/components/side_panel/components/section/section.ts
25180
25154
  var Section = class extends Component {
25181
25155
  static template = "o_spreadsheet.Section";
25182
- static props = {
25183
- class: {
25184
- type: String,
25185
- optional: true
25186
- },
25187
- title: {
25188
- type: String,
25189
- optional: true
25190
- },
25191
- slots: Object
25192
- };
25156
+ props = (0, _odoo_owl.props)({
25157
+ "class?": types$6.string(),
25158
+ "title?": types$6.string(),
25159
+ slots: types$6.object()
25160
+ });
25193
25161
  };
25194
25162
 
25195
25163
  //#endregion
25196
25164
  //#region src/components/side_panel/carousel_panel/carousel_panel.ts
25197
25165
  var CarouselPanel = class extends Component {
25198
25166
  static template = "o-spreadsheet-CarouselPanel";
25199
- static props = {
25200
- onCloseSidePanel: Function,
25201
- figureId: String
25202
- };
25203
25167
  static components = {
25204
25168
  Section,
25205
25169
  TextInput,
25206
25170
  TextStyler,
25207
25171
  CogWheelMenu
25208
25172
  };
25173
+ props = (0, _odoo_owl.props)({
25174
+ onCloseSidePanel: types$6.function([]),
25175
+ figureId: types$6.UID()
25176
+ });
25209
25177
  DEFAULT_CAROUSEL_TITLE_STYLE = DEFAULT_CAROUSEL_TITLE_STYLE;
25210
25178
  dragAndDrop = useDragAndDropListItems();
25211
25179
  previewListRef = (0, _odoo_owl.signal)(null);
@@ -25412,34 +25380,15 @@ const chartDataSourceSidePanelComponentRegistry = new Registry();
25412
25380
  //#region src/components/side_panel/components/checkbox/checkbox.ts
25413
25381
  var Checkbox = class extends Component {
25414
25382
  static template = "o-spreadsheet.Checkbox";
25415
- static props = {
25416
- label: {
25417
- type: String,
25418
- optional: true
25419
- },
25420
- value: {
25421
- type: Boolean,
25422
- optional: true
25423
- },
25424
- className: {
25425
- type: String,
25426
- optional: true
25427
- },
25428
- name: {
25429
- type: String,
25430
- optional: true
25431
- },
25432
- title: {
25433
- type: String,
25434
- optional: true
25435
- },
25436
- disabled: {
25437
- type: Boolean,
25438
- optional: true
25439
- },
25440
- onChange: Function
25441
- };
25442
- static defaultProps = { value: false };
25383
+ props = (0, _odoo_owl.props)({
25384
+ "label?": types$6.string(),
25385
+ "value?": types$6.boolean(),
25386
+ "className?": types$6.string(),
25387
+ "name?": types$6.string(),
25388
+ "title?": types$6.string(),
25389
+ "disabled?": types$6.boolean(),
25390
+ onChange: types$6.function([types$6.boolean()])
25391
+ }, { value: false });
25443
25392
  onChange(ev) {
25444
25393
  const value = ev.target.checked;
25445
25394
  this.props.onChange(value);
@@ -25448,11 +25397,11 @@ var Checkbox = class extends Component {
25448
25397
 
25449
25398
  //#endregion
25450
25399
  //#region src/components/side_panel/chart/common.ts
25451
- const ChartSidePanelPropsObject = {
25452
- chartId: String,
25453
- definition: Object,
25454
- canUpdateChart: Function,
25455
- updateChart: Function
25400
+ const chartSidePanelPropsDefinition = {
25401
+ chartId: types$6.UID(),
25402
+ definition: types$6.object({}),
25403
+ canUpdateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult()),
25404
+ updateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult())
25456
25405
  };
25457
25406
 
25458
25407
  //#endregion
@@ -25940,63 +25889,25 @@ var SelectionInputStore = class extends SpreadsheetStore {
25940
25889
  */
25941
25890
  var SelectionInput = class extends Component {
25942
25891
  static template = "o-spreadsheet-SelectionInput";
25943
- static props = {
25944
- ranges: Array,
25945
- hasSingleRange: {
25946
- type: Boolean,
25947
- optional: true
25948
- },
25949
- required: {
25950
- type: Boolean,
25951
- optional: true
25952
- },
25953
- autofocus: {
25954
- type: Boolean,
25955
- optional: true
25956
- },
25957
- isInvalid: {
25958
- type: Boolean,
25959
- optional: true
25960
- },
25961
- class: {
25962
- type: String,
25963
- optional: true
25964
- },
25965
- onSelectionChanged: {
25966
- type: Function,
25967
- optional: true
25968
- },
25969
- onSelectionConfirmed: {
25970
- type: Function,
25971
- optional: true
25972
- },
25973
- onSelectionReordered: {
25974
- type: Function,
25975
- optional: true
25976
- },
25977
- onSelectionRemoved: {
25978
- type: Function,
25979
- optional: true
25980
- },
25981
- onInputFocused: {
25982
- type: Function,
25983
- optional: true
25984
- },
25985
- colors: {
25986
- type: Array,
25987
- optional: true,
25988
- default: []
25989
- },
25990
- disabledRanges: {
25991
- type: Array,
25992
- optional: true,
25993
- default: []
25994
- },
25995
- disabledRangeTitle: {
25996
- type: String,
25997
- optional: true
25998
- }
25999
- };
25892
+ props = (0, _odoo_owl.props)({
25893
+ ranges: types$6.array(types$6.string()),
25894
+ "hasSingleRange?": types$6.boolean(),
25895
+ "required?": types$6.boolean(),
25896
+ "autofocus?": types$6.boolean(),
25897
+ "isInvalid?": types$6.boolean(),
25898
+ "class?": types$6.string(),
25899
+ "onSelectionChanged?": types$6.function([types$6.array(types$6.string())]),
25900
+ "onSelectionConfirmed?": types$6.function([]),
25901
+ "onSelectionReordered?": types$6.function([types$6.array(types$6.number())]),
25902
+ "onSelectionRemoved?": types$6.function([types$6.number()]),
25903
+ "onInputFocused?": types$6.function([]),
25904
+ "colors?": types$6.ArrayOf(),
25905
+ "disabledRanges?": types$6.array(types$6.boolean()),
25906
+ "disabledRangeTitle?": types$6.string()
25907
+ }, {
25908
+ colors: [],
25909
+ disabledRanges: []
25910
+ });
26000
25911
  state = (0, _odoo_owl.proxy)({ isMissing: false });
26001
25912
  dragAndDrop = useDragAndDropListItems();
26002
25913
  focusedInputRef = (0, _odoo_owl.signal)(null);
@@ -26160,47 +26071,20 @@ var ChartDataSeries = class extends Component {
26160
26071
  SelectionInput,
26161
26072
  Section
26162
26073
  };
26163
- static props = {
26164
- ranges: Array,
26165
- dataSetStyles: {
26166
- type: Object,
26167
- optional: true
26168
- },
26169
- hasSingleRange: {
26170
- type: Boolean,
26171
- optional: true
26172
- },
26173
- onSelectionChanged: Function,
26174
- onSelectionReordered: {
26175
- type: Function,
26176
- optional: true
26177
- },
26178
- onSelectionRemoved: {
26179
- type: Function,
26180
- optional: true
26181
- },
26182
- onSelectionConfirmed: Function,
26183
- title: {
26184
- type: String,
26185
- optional: true
26186
- },
26187
- maxNumberOfUsedRanges: {
26188
- type: Number,
26189
- optional: true
26190
- },
26191
- datasetOrientation: {
26192
- type: String,
26193
- optional: true
26194
- },
26195
- canChangeDatasetOrientation: {
26196
- type: Boolean,
26197
- optional: true
26198
- },
26199
- onFlipAxis: {
26200
- type: Function,
26201
- optional: true
26202
- }
26203
- };
26074
+ props = (0, _odoo_owl.props)({
26075
+ ranges: types$6.ArrayOf(),
26076
+ "dataSetStyles?": types$6.DataSetStyle(),
26077
+ "hasSingleRange?": types$6.boolean(),
26078
+ onSelectionChanged: types$6.function([types$6.array(types$6.string())]),
26079
+ "onSelectionReordered?": types$6.function([types$6.array(types$6.number())]),
26080
+ "onSelectionRemoved?": types$6.function([types$6.number()]),
26081
+ onSelectionConfirmed: types$6.function([]),
26082
+ "maxNumberOfUsedRanges?": types$6.number(),
26083
+ "title?": types$6.string(),
26084
+ "datasetOrientation?": types$6.or([types$6.literal("rows"), types$6.literal("columns")]),
26085
+ "canChangeDatasetOrientation?": types$6.boolean(),
26086
+ "onFlipAxis?": types$6.function([types$6.string()])
26087
+ });
26204
26088
  get ranges() {
26205
26089
  return this.props.ranges.map((r) => r.dataRange);
26206
26090
  }
@@ -26228,28 +26112,18 @@ var ChartLabelRange = class extends Component {
26228
26112
  Checkbox,
26229
26113
  Section
26230
26114
  };
26231
- static props = {
26232
- title: {
26233
- type: String,
26234
- optional: true
26235
- },
26236
- range: String,
26237
- class: {
26238
- type: String,
26239
- optional: true
26240
- },
26241
- isInvalid: Boolean,
26242
- onSelectionChanged: Function,
26243
- onSelectionConfirmed: Function,
26244
- options: {
26245
- type: Array,
26246
- optional: true
26247
- }
26248
- };
26249
- static defaultProps = {
26115
+ props = (0, _odoo_owl.props)({
26116
+ "title?": types$6.string(),
26117
+ range: types$6.string(),
26118
+ "class?": types$6.string(),
26119
+ isInvalid: types$6.boolean(),
26120
+ onSelectionChanged: types$6.function([types$6.string()]),
26121
+ onSelectionConfirmed: types$6.function([]),
26122
+ "options?": types$6.ArrayOf()
26123
+ }, {
26250
26124
  title: _t("Categories / Labels"),
26251
26125
  options: []
26252
- };
26126
+ });
26253
26127
  get sectionClass() {
26254
26128
  return "o-data-labels" + (this.props.class ? ` ${this.props.class}` : "");
26255
26129
  }
@@ -26263,28 +26137,16 @@ var ChartDataSourceComponent = class extends Component {
26263
26137
  ChartDataSeries,
26264
26138
  ChartLabelRange
26265
26139
  };
26266
- static props = {
26267
- chartId: String,
26268
- definition: Object,
26269
- updateChart: Function,
26270
- canUpdateChart: Function,
26271
- onErrorMessagesChanged: {
26272
- type: Function,
26273
- optional: true
26274
- },
26275
- dataSeriesTitle: {
26276
- type: String,
26277
- optional: true
26278
- },
26279
- labelRangeTitle: {
26280
- type: String,
26281
- optional: true
26282
- },
26283
- getLabelRangeOptions: {
26284
- type: Function,
26285
- optional: true
26286
- }
26287
- };
26140
+ props = (0, _odoo_owl.props)({
26141
+ chartId: types$6.UID(),
26142
+ definition: types$6.ChartDefinitionWithDataSource(),
26143
+ updateChart: types$6.function([]),
26144
+ canUpdateChart: types$6.function([]),
26145
+ "onErrorMessagesChanged?": types$6.function([types$6.array(types$6.string())]),
26146
+ "dataSeriesTitle?": types$6.string(),
26147
+ "labelRangeTitle?": types$6.string(),
26148
+ "getLabelRangeOptions?": types$6.function([])
26149
+ });
26288
26150
  get DataSourceComponent() {
26289
26151
  const dataSourceType = this.props.definition.dataSource.type;
26290
26152
  return chartDataSourceSidePanelComponentRegistry.get(dataSourceType);
@@ -26295,14 +26157,15 @@ var ChartDataSourceComponent = class extends Component {
26295
26157
  //#region src/components/validation_messages/validation_messages.ts
26296
26158
  var ValidationMessages = class extends Component {
26297
26159
  static template = "o-spreadsheet-ValidationMessages";
26298
- static props = {
26299
- messages: Array,
26300
- msgType: String,
26301
- singleBox: {
26302
- type: Boolean,
26303
- optional: true
26304
- }
26305
- };
26160
+ props = (0, _odoo_owl.props)({
26161
+ messages: types$6.array(types$6.string()),
26162
+ msgType: types$6.or([
26163
+ types$6.literal("warning"),
26164
+ types$6.literal("error"),
26165
+ types$6.literal("info")
26166
+ ]),
26167
+ "singleBox?": types$6.boolean()
26168
+ });
26306
26169
  get divClasses() {
26307
26170
  if (this.props.msgType === "warning") return "o-validation-warning";
26308
26171
  if (this.props.msgType === "info") return "o-validation-info";
@@ -26321,10 +26184,7 @@ var ChartErrorSection = class extends Component {
26321
26184
  Section,
26322
26185
  ValidationMessages
26323
26186
  };
26324
- static props = { messages: {
26325
- type: Array,
26326
- element: String
26327
- } };
26187
+ props = (0, _odoo_owl.props)({ messages: types$6.array(types$6.string()) });
26328
26188
  };
26329
26189
 
26330
26190
  //#endregion
@@ -26337,7 +26197,7 @@ var GenericChartConfigPanel = class extends Component {
26337
26197
  Checkbox,
26338
26198
  ChartErrorSection
26339
26199
  };
26340
- static props = ChartSidePanelPropsObject;
26200
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
26341
26201
  chartTerms = ChartTerms;
26342
26202
  state = (0, _odoo_owl.proxy)({ errorMessages: [] });
26343
26203
  onErrorMessagesChanged(errorMessages) {
@@ -26384,10 +26244,7 @@ var BarConfigPanel = class extends GenericChartConfigPanel {
26384
26244
  //#region src/components/side_panel/components/collapse/collapse.ts
26385
26245
  var Collapse = class extends Component {
26386
26246
  static template = "o-spreadsheet-Collapse";
26387
- static props = {
26388
- isCollapsed: Boolean,
26389
- slots: Object
26390
- };
26247
+ props = (0, _odoo_owl.props)({ isCollapsed: types$6.boolean() });
26391
26248
  contentRef = (0, _odoo_owl.signal)(null);
26392
26249
  setup() {
26393
26250
  (0, _odoo_owl.onMounted)(() => {
@@ -26419,23 +26276,13 @@ var Collapse = class extends Component {
26419
26276
  //#region src/components/side_panel/components/collapsible/side_panel_collapsible.ts
26420
26277
  var SidePanelCollapsible = class extends Component {
26421
26278
  static template = "o-spreadsheet-SidePanelCollapsible";
26422
- static props = {
26423
- slots: Object,
26424
- title: {
26425
- type: String,
26426
- optional: true
26427
- },
26428
- isInitiallyCollapsed: {
26429
- type: Boolean,
26430
- optional: true
26431
- },
26432
- class: {
26433
- type: String,
26434
- optional: true
26435
- }
26436
- };
26437
26279
  static components = { Collapse };
26438
- state = (0, _odoo_owl.proxy)({ isCollapsed: this.props.isInitiallyCollapsed });
26280
+ props = (0, _odoo_owl.props)({
26281
+ "title?": types$6.string(),
26282
+ "isInitiallyCollapsed?": types$6.boolean(),
26283
+ "class?": types$6.string()
26284
+ });
26285
+ state = (0, _odoo_owl.proxy)({ isCollapsed: !!this.props.isInitiallyCollapsed });
26439
26286
  toggle() {
26440
26287
  this.state.isCollapsed = !this.state.isCollapsed;
26441
26288
  }
@@ -26446,17 +26293,11 @@ var SidePanelCollapsible = class extends Component {
26446
26293
  var NumberInput = class extends GenericInput {
26447
26294
  static template = "o-spreadsheet-NumberInput";
26448
26295
  static components = {};
26449
- static props = {
26450
- ...GenericInput.props,
26451
- min: {
26452
- type: Number,
26453
- optional: true
26454
- },
26455
- max: {
26456
- type: Number,
26457
- optional: true
26458
- }
26459
- };
26296
+ props = (0, _odoo_owl.props)({
26297
+ ...genericInputPropsDefinition,
26298
+ "min?": types$6.number(),
26299
+ "max?": types$6.number()
26300
+ });
26460
26301
  debouncedOnChange = debounce(this.props.onChange.bind(this), 100, true);
26461
26302
  save() {
26462
26303
  const currentValue = (this.genericInputRef()?.value || "").trim();
@@ -26477,11 +26318,11 @@ var DateInput = class extends NumberInput {
26477
26318
  //#region src/components/side_panel/components/badge_selection/badge_selection.ts
26478
26319
  var BadgeSelection = class extends Component {
26479
26320
  static template = "o-spreadsheet.BadgeSelection";
26480
- static props = {
26481
- choices: Array,
26482
- onChange: Function,
26483
- selectedValue: String
26484
- };
26321
+ props = (0, _odoo_owl.props)({
26322
+ choices: types$6.ArrayOf(),
26323
+ onChange: types$6.function([types$6.string()]),
26324
+ selectedValue: types$6.string()
26325
+ });
26485
26326
  };
26486
26327
 
26487
26328
  //#endregion
@@ -26493,28 +26334,18 @@ var ChartTitle = class extends Component {
26493
26334
  TextStyler,
26494
26335
  TextInput
26495
26336
  };
26496
- static props = {
26497
- title: {
26498
- type: String,
26499
- optional: true
26500
- },
26501
- placeholder: {
26502
- type: String,
26503
- optional: true
26504
- },
26505
- updateTitle: Function,
26506
- name: { type: String },
26507
- style: Object,
26508
- defaultStyle: {
26509
- type: Object,
26510
- optional: true
26511
- },
26512
- updateStyle: Function
26513
- };
26514
- static defaultProps = {
26337
+ props = (0, _odoo_owl.props)({
26338
+ "title?": types$6.string(),
26339
+ "placeholder?": types$6.string(),
26340
+ updateTitle: types$6.function([types$6.string()]),
26341
+ "name?": types$6.string(),
26342
+ style: types$6.TitleDesign(),
26343
+ "defaultStyle?": types$6.object({}),
26344
+ updateStyle: types$6.function([types$6.object({})])
26345
+ }, {
26515
26346
  title: "",
26516
26347
  placeholder: ""
26517
- };
26348
+ });
26518
26349
  updateTitle(value) {
26519
26350
  this.props.updateTitle(value);
26520
26351
  }
@@ -26532,12 +26363,12 @@ var AxisDesignEditor = class extends Component {
26532
26363
  NumberInput,
26533
26364
  DateInput
26534
26365
  };
26535
- static props = {
26536
- chartId: String,
26537
- definition: Object,
26538
- updateChart: Function,
26539
- axesList: Array
26540
- };
26366
+ props = (0, _odoo_owl.props)({
26367
+ chartId: types$6.UID(),
26368
+ definition: types$6.ChartWithAxisDefinition(),
26369
+ updateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult()),
26370
+ axesList: types$6.ArrayOf()
26371
+ });
26541
26372
  state = (0, _odoo_owl.proxy)({ currentAxis: "x" });
26542
26373
  defaultFontSize = 12;
26543
26374
  get axisTitleStyle() {
@@ -26707,17 +26538,13 @@ var AxisDesignEditor = class extends Component {
26707
26538
  //#region src/components/side_panel/components/radio_selection/radio_selection.ts
26708
26539
  var RadioSelection = class extends Component {
26709
26540
  static template = "o-spreadsheet.RadioSelection";
26710
- static props = {
26711
- choices: Array,
26712
- onChange: Function,
26713
- selectedValue: { optional: false },
26714
- name: String,
26715
- direction: {
26716
- type: String,
26717
- optional: true
26718
- }
26719
- };
26720
- static defaultProps = { direction: "horizontal" };
26541
+ props = (0, _odoo_owl.props)({
26542
+ choices: types$6.ArrayOf(),
26543
+ onChange: types$6.function([types$6.any()]),
26544
+ selectedValue: types$6.string(),
26545
+ name: types$6.string(),
26546
+ "direction?": types$6.or([types$6.literal("horizontal"), types$6.literal("vertical")])
26547
+ }, { direction: "horizontal" });
26721
26548
  };
26722
26549
 
26723
26550
  //#endregion
@@ -26728,21 +26555,12 @@ var RoundColorPicker = class extends Component {
26728
26555
  Section,
26729
26556
  ColorPicker
26730
26557
  };
26731
- static props = {
26732
- currentColor: {
26733
- type: String,
26734
- optional: true
26735
- },
26736
- title: {
26737
- type: String,
26738
- optional: true
26739
- },
26740
- onColorPicked: Function,
26741
- disableNoColor: {
26742
- type: Boolean,
26743
- optional: true
26744
- }
26745
- };
26558
+ props = (0, _odoo_owl.props)({
26559
+ "currentColor?": types$6.string(),
26560
+ "title?": types$6.string(),
26561
+ onColorPicked: types$6.function([types$6.string()]),
26562
+ "disableNoColor?": types$6.boolean()
26563
+ });
26746
26564
  colorPickerButtonRef = (0, _odoo_owl.signal)(null);
26747
26565
  state;
26748
26566
  setup() {
@@ -26778,18 +26596,13 @@ var GeneralDesignEditor = class extends Component {
26778
26596
  SidePanelCollapsible,
26779
26597
  RadioSelection
26780
26598
  };
26781
- static props = {
26782
- ...ChartSidePanelPropsObject,
26783
- defaultChartTitleFontSize: {
26784
- type: Number,
26785
- optional: true
26786
- },
26787
- slots: {
26788
- type: Object,
26789
- optional: true
26790
- }
26791
- };
26792
- static defaultProps = { defaultChartTitleFontSize: 16 };
26599
+ props = (0, _odoo_owl.props)({
26600
+ chartId: types$6.UID(),
26601
+ definition: types$6.ChartDefinition(),
26602
+ canUpdateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult()),
26603
+ updateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult()),
26604
+ "defaultChartTitleFontSize?": types$6.number()
26605
+ }, { defaultChartTitleFontSize: 16 });
26793
26606
  state;
26794
26607
  setup() {
26795
26608
  this.state = (0, _odoo_owl.proxy)({ activeTool: "" });
@@ -26826,7 +26639,7 @@ var GeneralDesignEditor = class extends Component {
26826
26639
  var ChartHumanizeNumbers = class extends Component {
26827
26640
  static template = "o-spreadsheet-ChartHumanizeNumbers";
26828
26641
  static components = { Checkbox };
26829
- static props = ChartSidePanelPropsObject;
26642
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
26830
26643
  get title() {
26831
26644
  const locale = this.env.model.getters.getLocale();
26832
26645
  return _t("E.g. 1234567 -> %(value)s", { value: formatValue(1234567, {
@@ -26844,14 +26657,13 @@ var ChartLegend = class extends Component {
26844
26657
  Section,
26845
26658
  Select
26846
26659
  };
26847
- static props = {
26848
- ...ChartSidePanelPropsObject,
26849
- isDisabled: {
26850
- type: Boolean,
26851
- optional: true
26852
- }
26853
- };
26854
- static defaultProps = { isDisabled: false };
26660
+ props = (0, _odoo_owl.props)({
26661
+ chartId: types$6.string(),
26662
+ definition: types$6.ChartDefinitionWithDataSource(),
26663
+ canUpdateChart: types$6.function(),
26664
+ updateChart: types$6.function(),
26665
+ "isDisabled?": types$6.boolean()
26666
+ }, { isDisabled: false });
26855
26667
  updateLegendPosition(value) {
26856
26668
  this.props.updateChart(this.props.chartId, { legendPosition: value });
26857
26669
  }
@@ -26891,13 +26703,12 @@ var SeriesDesignEditor = class extends Component {
26891
26703
  RoundColorPicker,
26892
26704
  Select
26893
26705
  };
26894
- static props = {
26895
- ...ChartSidePanelPropsObject,
26896
- slots: {
26897
- type: Object,
26898
- optional: true
26899
- }
26900
- };
26706
+ props = (0, _odoo_owl.props)({
26707
+ chartId: types$6.UID(),
26708
+ definition: types$6.ChartDefinitionWithDataSource(),
26709
+ canUpdateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult()),
26710
+ updateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult())
26711
+ });
26901
26712
  state = (0, _odoo_owl.proxy)({ dataSetId: this.getDataSeries()[0]?.dataSetId || "" });
26902
26713
  getRuntime() {
26903
26714
  const runtime = this.env.model.getters.getChartRuntime(this.props.chartId);
@@ -26957,13 +26768,12 @@ var SeriesWithAxisDesignEditor = class extends Component {
26957
26768
  NumberInput,
26958
26769
  Select
26959
26770
  };
26960
- static props = {
26961
- ...ChartSidePanelPropsObject,
26962
- slots: {
26963
- type: Object,
26964
- optional: true
26965
- }
26966
- };
26771
+ props = (0, _odoo_owl.props)({
26772
+ chartId: types$6.UID(),
26773
+ definition: types$6.ChartDefinitionWithDataSource(),
26774
+ canUpdateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult()),
26775
+ updateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult())
26776
+ });
26967
26777
  axisChoices = CHART_AXIS_CHOICES;
26968
26778
  updateDataSeriesAxis(dataSetId, axis) {
26969
26779
  const dataSetStyles = { ...this.props.definition.dataSetStyles };
@@ -27098,13 +26908,13 @@ var SeriesWithAxisDesignEditor = class extends Component {
27098
26908
  var ChartShowValues = class extends Component {
27099
26909
  static template = "o-spreadsheet-ChartShowValues";
27100
26910
  static components = { Checkbox };
27101
- static props = {
27102
- ...ChartSidePanelPropsObject,
27103
- defaultValue: {
27104
- type: Boolean,
27105
- optional: true
27106
- }
27107
- };
26911
+ props = (0, _odoo_owl.props)({
26912
+ chartId: types$6.UID(),
26913
+ definition: types$6.ChartDefinitionWithDataSource(),
26914
+ canUpdateChart: types$6.function([]),
26915
+ updateChart: types$6.function([]),
26916
+ "defaultValue?": types$6.boolean()
26917
+ });
27108
26918
  };
27109
26919
 
27110
26920
  //#endregion
@@ -27121,7 +26931,7 @@ var ChartWithAxisDesignPanel = class extends Component {
27121
26931
  ChartShowValues,
27122
26932
  ChartHumanizeNumbers
27123
26933
  };
27124
- static props = ChartSidePanelPropsObject;
26934
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
27125
26935
  get axesList() {
27126
26936
  const { useLeftAxis, useRightAxis } = getDefinedAxis(this.props.definition);
27127
26937
  const axes = [{
@@ -27171,7 +26981,7 @@ var BubbleChartConfigPanel = class extends Component {
27171
26981
  ChartLabelRange,
27172
26982
  ChartErrorSection
27173
26983
  };
27174
- static props = ChartSidePanelPropsObject;
26984
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
27175
26985
  state = (0, _odoo_owl.proxy)({
27176
26986
  datasetDispatchResult: void 0,
27177
26987
  labelsDispatchResult: void 0,
@@ -27307,7 +27117,7 @@ var BubbleChartDesignPanel = class extends Component {
27307
27117
  RoundColorPicker,
27308
27118
  Checkbox
27309
27119
  };
27310
- static props = ChartSidePanelPropsObject;
27120
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
27311
27121
  get axesList() {
27312
27122
  return [{
27313
27123
  id: "x",
@@ -28300,10 +28110,7 @@ function getBarChartLegend(definition, args) {
28300
28110
  toggleDataVisibility: toggleLineBarDataVisibility
28301
28111
  }),
28302
28112
  ...getLegendDisplayOptions(definition),
28303
- ...getCustomLegendLabels(chartFontColor(definition.background), {
28304
- pointStyle: "rect",
28305
- lineWidth: 3
28306
- })
28113
+ ...getCustomLegendLabels(chartFontColor(definition.background), { lineWidth: 3 })
28307
28114
  };
28308
28115
  }
28309
28116
  function getPyramidChartLegend(definition, args) {
@@ -29111,6 +28918,7 @@ const BarChart = {
29111
28918
  "stacked",
29112
28919
  "aggregated",
29113
28920
  "showValues",
28921
+ "showTotalLine",
29114
28922
  "zoomable"
29115
28923
  ],
29116
28924
  fromStrDefinition: (definition) => ({
@@ -29136,6 +28944,7 @@ const BarChart = {
29136
28944
  type: "bar",
29137
28945
  axesDesign: context.axesDesign,
29138
28946
  showValues: context.showValues,
28947
+ showTotalLine: context.showTotalLine,
29139
28948
  horizontal: context.horizontal,
29140
28949
  zoomable: context.zoomable,
29141
28950
  humanize: context.humanize
@@ -29737,29 +29546,17 @@ var ChartRangeDataSourceComponent = class extends Component {
29737
29546
  ChartDataSeries,
29738
29547
  ChartLabelRange
29739
29548
  };
29740
- static props = {
29741
- chartId: String,
29742
- definition: Object,
29743
- dataSource: Object,
29744
- updateChart: Function,
29745
- canUpdateChart: Function,
29746
- onErrorMessagesChanged: {
29747
- type: Function,
29748
- optional: true
29749
- },
29750
- dataSeriesTitle: {
29751
- type: String,
29752
- optional: true
29753
- },
29754
- labelRangeTitle: {
29755
- type: String,
29756
- optional: true
29757
- },
29758
- getLabelRangeOptions: {
29759
- type: Function,
29760
- optional: true
29761
- }
29762
- };
29549
+ props = (0, _odoo_owl.props)({
29550
+ chartId: types$6.UID(),
29551
+ definition: types$6.ChartDefinitionWithDataSource(),
29552
+ dataSource: types$6.ChartRangeDataSource(),
29553
+ updateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult()),
29554
+ canUpdateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult()),
29555
+ "onErrorMessagesChanged?": types$6.function([types$6.array(types$6.string())]),
29556
+ "dataSeriesTitle?": types$6.string(),
29557
+ "labelRangeTitle?": types$6.string(),
29558
+ "getLabelRangeOptions?": types$6.function([])
29559
+ });
29763
29560
  state = (0, _odoo_owl.proxy)({
29764
29561
  datasetDispatchResult: void 0,
29765
29562
  labelsDispatchResult: void 0
@@ -30609,10 +30406,10 @@ var ColorScalePicker = class extends Component {
30609
30406
  RoundColorPicker,
30610
30407
  Popover
30611
30408
  };
30612
- static props = {
30613
- definition: Object,
30614
- onUpdateColorScale: Function
30615
- };
30409
+ props = (0, _odoo_owl.props)({
30410
+ definition: types$6.object({ "colorScale?": types$6.ChartColorScale() }),
30411
+ onUpdateColorScale: types$6.function([types$6.ChartColorScale()])
30412
+ });
30616
30413
  colorScales = COLORSCALES.map((colorScale) => ({
30617
30414
  value: colorScale,
30618
30415
  label: ChartTerms.ColorScales[colorScale],
@@ -30703,7 +30500,7 @@ var CalendarChartDesignPanel = class extends Component {
30703
30500
  RoundColorPicker,
30704
30501
  Select
30705
30502
  };
30706
- static props = ChartSidePanelPropsObject;
30503
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
30707
30504
  get axesList() {
30708
30505
  return [{
30709
30506
  id: "x",
@@ -30748,7 +30545,7 @@ var CalendarChartDesignPanel = class extends Component {
30748
30545
  var ChartShowDataMarkers = class extends Component {
30749
30546
  static template = "o-spreadsheet-ChartShowDataMarkers";
30750
30547
  static components = { Checkbox };
30751
- static props = ChartSidePanelPropsObject;
30548
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
30752
30549
  };
30753
30550
 
30754
30551
  //#endregion
@@ -30811,12 +30608,10 @@ var FunnelChartDesignPanel = class extends Component {
30811
30608
  Section,
30812
30609
  ChartHumanizeNumbers
30813
30610
  };
30814
- static props = {
30815
- chartId: String,
30816
- definition: Object,
30817
- updateChart: Function,
30818
- canUpdateChart: Function
30819
- };
30611
+ props = (0, _odoo_owl.props)({
30612
+ ...chartSidePanelPropsDefinition,
30613
+ definition: types$6.FunnelChartDefinition()
30614
+ });
30820
30615
  getFunnelColorItems() {
30821
30616
  const labels = this.env.model.getters.getChartRuntime(this.props.chartId).chartJsConfig.data.labels || [];
30822
30617
  const colors = getFunnelLabelColors(labels, this.props.definition.funnelColors);
@@ -30839,7 +30634,7 @@ var GaugeChartConfigPanel = class extends Component {
30839
30634
  ChartErrorSection,
30840
30635
  ChartDataSeries
30841
30636
  };
30842
- static props = ChartSidePanelPropsObject;
30637
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
30843
30638
  state = (0, _odoo_owl.proxy)({ dataRangeDispatchResult: void 0 });
30844
30639
  dataRange = this.props.definition.dataRange;
30845
30640
  get configurationErrorMessages() {
@@ -30864,15 +30659,12 @@ var GaugeChartConfigPanel = class extends Component {
30864
30659
  //#region src/components/composer/autocomplete_dropdown/autocomplete_dropdown.ts
30865
30660
  var TextValueProvider = class extends Component {
30866
30661
  static template = "o-spreadsheet-TextValueProvider";
30867
- static props = {
30868
- proposals: Array,
30869
- selectedIndex: {
30870
- type: Number,
30871
- optional: true
30872
- },
30873
- onValueSelected: Function,
30874
- onValueHovered: Function
30875
- };
30662
+ props = (0, _odoo_owl.props)({
30663
+ proposals: types$6.array(types$6.AutoCompleteProposal()),
30664
+ "selectedIndex?": types$6.number(),
30665
+ onValueSelected: types$6.function([types$6.AutoCompleteProposal()]),
30666
+ onValueHovered: types$6.function([types$6.string()])
30667
+ });
30876
30668
  autoCompleteListRef = (0, _odoo_owl.signal)(null);
30877
30669
  setup() {
30878
30670
  (0, _odoo_owl.useEffect)(() => {
@@ -31089,15 +30881,12 @@ function isEmptyParagraph(node) {
31089
30881
  //#region src/components/composer/formula_assistant/formula_assistant.ts
31090
30882
  var FunctionDescriptionProvider = class extends Component {
31091
30883
  static template = "o-spreadsheet-FunctionDescriptionProvider";
31092
- static props = {
31093
- functionDescription: Object,
31094
- argsToFocus: Array,
31095
- repeatingArgGroupIndex: {
31096
- type: Number,
31097
- optional: true
31098
- }
31099
- };
31100
30884
  static components = { Collapse };
30885
+ props = (0, _odoo_owl.props)({
30886
+ functionDescription: types$6.FunctionDescription(),
30887
+ argsToFocus: types$6.array(types$6.number()),
30888
+ "repeatingArgGroupIndex?": types$6.number()
30889
+ });
31101
30890
  state = (0, _odoo_owl.proxy)({ isCollapsed: true });
31102
30891
  toggle() {
31103
30892
  this.state.isCollapsed = !this.state.isCollapsed;
@@ -31161,11 +30950,11 @@ var FunctionDescriptionProvider = class extends Component {
31161
30950
  const BUBBLE_ARROW_SIZE = 7;
31162
30951
  var SpeechBubble = class extends Component {
31163
30952
  static template = "o-spreadsheet-SpeechBubble";
31164
- static props = {
31165
- content: String,
31166
- anchorRect: Object
31167
- };
31168
30953
  static components = {};
30954
+ props = (0, _odoo_owl.props)({
30955
+ content: types$6.string(),
30956
+ anchorRect: types$6.Rect()
30957
+ });
31169
30958
  spreadsheetRect = useSpreadsheetRect();
31170
30959
  bubbleRef = (0, _odoo_owl.signal)(null);
31171
30960
  setup() {
@@ -31192,62 +30981,30 @@ const highlightParenthesisClass = "highlight-parenthesis-flag";
31192
30981
  const highlightClass = "highlight-flag";
31193
30982
  var Composer = class extends Component {
31194
30983
  static template = "o-spreadsheet-Composer";
31195
- static props = {
31196
- focus: { validate: (value) => [
31197
- "inactive",
31198
- "cellFocus",
31199
- "contentFocus"
31200
- ].includes(value) },
31201
- inputStyle: {
31202
- type: String,
31203
- optional: true
31204
- },
31205
- rect: {
31206
- type: Object,
31207
- optional: true
31208
- },
31209
- delimitation: {
31210
- type: Object,
31211
- optional: true
31212
- },
31213
- onComposerCellFocused: {
31214
- type: Function,
31215
- optional: true
31216
- },
31217
- onComposerContentFocused: Function,
31218
- isDefaultFocus: {
31219
- type: Boolean,
31220
- optional: true
31221
- },
31222
- onInputContextMenu: {
31223
- type: Function,
31224
- optional: true
31225
- },
31226
- composerStore: Object,
31227
- placeholder: {
31228
- type: String,
31229
- optional: true
31230
- },
31231
- inputMode: {
31232
- type: String,
31233
- optional: true
31234
- },
31235
- showAssistant: {
31236
- type: Boolean,
31237
- optional: true
31238
- }
31239
- };
31240
30984
  static components = {
31241
30985
  TextValueProvider,
31242
30986
  FunctionDescriptionProvider,
31243
30987
  SpeechBubble
31244
30988
  };
31245
- static defaultProps = {
30989
+ props = (0, _odoo_owl.props)({
30990
+ focus: types$6.ComposerFocusType(),
30991
+ "inputStyle?": types$6.string(),
30992
+ "rect?": types$6.Rect(),
30993
+ "delimitation?": types$6.DOMDimension(),
30994
+ "onComposerCellFocused?": types$6.function([types$6.string()]),
30995
+ onComposerContentFocused: types$6.function([types$6.ComposerSelection()]),
30996
+ "isDefaultFocus?": types$6.boolean(),
30997
+ "onInputContextMenu?": types$6.function([types$6.instanceOf(MouseEvent)]),
30998
+ composerStore: types$6.Store(),
30999
+ "placeholder?": types$6.string(),
31000
+ "inputMode?": types$6.string(),
31001
+ "showAssistant?": types$6.boolean()
31002
+ }, {
31246
31003
  inputStyle: "",
31247
31004
  isDefaultFocus: false,
31248
31005
  inputMode: "text",
31249
31006
  showAssistant: true
31250
- };
31007
+ });
31251
31008
  DOMFocusableElementStore;
31252
31009
  composerRef = (0, _odoo_owl.signal)(null);
31253
31010
  containerRef = (0, _odoo_owl.signal)(null);
@@ -32812,54 +32569,23 @@ var StandaloneComposerStore = class extends AbstractComposerStore {
32812
32569
  //#region src/components/composer/standalone_composer/standalone_composer.ts
32813
32570
  var StandaloneComposer = class extends Component {
32814
32571
  static template = "o-spreadsheet-StandaloneComposer";
32815
- static props = {
32816
- composerContent: {
32817
- type: String,
32818
- optional: true
32819
- },
32820
- defaultRangeSheetId: {
32821
- type: String,
32822
- optional: true
32823
- },
32824
- defaultStatic: {
32825
- type: Boolean,
32826
- optional: true
32827
- },
32828
- onConfirm: Function,
32829
- contextualAutocomplete: {
32830
- type: Object,
32831
- optional: true
32832
- },
32833
- placeholder: {
32834
- type: String,
32835
- optional: true
32836
- },
32837
- title: {
32838
- type: String,
32839
- optional: true
32840
- },
32841
- class: {
32842
- type: String,
32843
- optional: true
32844
- },
32845
- invalid: {
32846
- type: Boolean,
32847
- optional: true
32848
- },
32849
- autofocus: {
32850
- type: Boolean,
32851
- optional: true
32852
- },
32853
- getContextualColoredSymbolToken: {
32854
- type: Function,
32855
- optional: true
32856
- }
32857
- };
32858
32572
  static components = { Composer };
32859
- static defaultProps = {
32573
+ props = (0, _odoo_owl.props)({
32574
+ onConfirm: types$6.function([types$6.string()]),
32575
+ "composerContent?": types$6.string(),
32576
+ defaultRangeSheetId: types$6.UID(),
32577
+ "defaultStatic?": types$6.boolean(),
32578
+ "contextualAutocomplete?": types$6.AutoCompleteProviderDefinition(),
32579
+ "placeholder?": types$6.string(),
32580
+ "title?": types$6.string(),
32581
+ "class?": types$6.string(),
32582
+ "invalid?": types$6.boolean(),
32583
+ "autofocus?": types$6.boolean(),
32584
+ "getContextualColoredSymbolToken?": types$6.function([types$6.Token()], types$6.Color())
32585
+ }, {
32860
32586
  composerContent: "",
32861
32587
  defaultStatic: false
32862
- };
32588
+ });
32863
32589
  composerFocusStore;
32864
32590
  standaloneComposerStore;
32865
32591
  composerInterface;
@@ -32923,7 +32649,7 @@ var GaugeChartDesignPanel = class extends Component {
32923
32649
  ChartHumanizeNumbers,
32924
32650
  Select
32925
32651
  };
32926
- static props = ChartSidePanelPropsObject;
32652
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
32927
32653
  state;
32928
32654
  setup() {
32929
32655
  this.state = (0, _odoo_owl.proxy)({
@@ -33054,11 +32780,11 @@ var GeoChartRegionSelectSection = class extends Component {
33054
32780
  Section,
33055
32781
  Select
33056
32782
  };
33057
- static props = {
33058
- chartId: String,
33059
- definition: Object,
33060
- updateChart: Function
33061
- };
32783
+ props = (0, _odoo_owl.props)({
32784
+ chartId: types$6.UID(),
32785
+ definition: types$6.GeoChartDefinition(),
32786
+ updateChart: types$6.function([types$6.UID(), types$6.object({})], types$6.DispatchResult())
32787
+ });
33062
32788
  updateSelectedRegion(value) {
33063
32789
  this.props.updateChart(this.props.chartId, { region: value });
33064
32790
  }
@@ -33208,10 +32934,10 @@ var PieHoleSize = class extends Component {
33208
32934
  Section,
33209
32935
  NumberInput
33210
32936
  };
33211
- static props = {
33212
- onValueChange: Function,
33213
- value: Number
33214
- };
32937
+ props = (0, _odoo_owl.props)({
32938
+ onValueChange: types$6.function([types$6.number()]),
32939
+ value: types$6.number()
32940
+ });
33215
32941
  onChange(value) {
33216
32942
  if (!isNaN(Number(value))) this.props.onValueChange(clip(Number(value), 0, 95));
33217
32943
  }
@@ -33233,7 +32959,7 @@ var PieChartDesignPanel = class extends Component {
33233
32959
  RoundColorPicker,
33234
32960
  Select
33235
32961
  };
33236
- static props = ChartSidePanelPropsObject;
32962
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33237
32963
  state = (0, _odoo_owl.proxy)({ index: 0 });
33238
32964
  get runtime() {
33239
32965
  return this.env.model.getters.getChartRuntime(this.props.chartId);
@@ -33293,7 +33019,7 @@ var RadarChartDesignPanel = class extends Component {
33293
33019
  Checkbox,
33294
33020
  ChartHumanizeNumbers
33295
33021
  };
33296
- static props = ChartSidePanelPropsObject;
33022
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33297
33023
  };
33298
33024
 
33299
33025
  //#endregion
@@ -33343,7 +33069,7 @@ var ScorecardChartConfigPanel = class extends Component {
33343
33069
  Section,
33344
33070
  Select
33345
33071
  };
33346
- static props = ChartSidePanelPropsObject;
33072
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33347
33073
  state = (0, _odoo_owl.proxy)({
33348
33074
  keyValueDispatchResult: void 0,
33349
33075
  baselineDispatchResult: void 0
@@ -33417,7 +33143,7 @@ var ScorecardChartDesignPanel = class extends Component {
33417
33143
  ChartTitle,
33418
33144
  ChartHumanizeNumbers
33419
33145
  };
33420
- static props = ChartSidePanelPropsObject;
33146
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33421
33147
  get colorsSectionTitle() {
33422
33148
  return this.props.definition.baselineMode === "progress" ? _t("Progress bar colors") : _t("Baseline colors");
33423
33149
  }
@@ -33498,7 +33224,7 @@ var SunburstChartDesignPanel = class extends Component {
33498
33224
  PieHoleSize,
33499
33225
  ChartHumanizeNumbers
33500
33226
  };
33501
- static props = ChartSidePanelPropsObject;
33227
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33502
33228
  defaults = SunburstChartDefaults;
33503
33229
  get showValues() {
33504
33230
  return this.props.definition.showValues ?? SunburstChartDefaults.showValues;
@@ -33531,11 +33257,11 @@ var TreeMapCategoryColors = class extends Component {
33531
33257
  Checkbox,
33532
33258
  RoundColorPicker
33533
33259
  };
33534
- static props = {
33535
- chartId: String,
33536
- definition: Object,
33537
- onColorChanged: Function
33538
- };
33260
+ props = (0, _odoo_owl.props)({
33261
+ chartId: types$6.UID(),
33262
+ definition: types$6.TreeMapChartDefinition(),
33263
+ onColorChanged: types$6.function([types$6.TreeMapCategoryColorOptions()], types$6.DispatchResult())
33264
+ });
33539
33265
  get coloringOptions() {
33540
33266
  const coloringOptions = this.props.definition.coloringOptions ?? TreeMapChartDefaults.coloringOptions;
33541
33267
  if (coloringOptions.type !== "categoryColor") throw new Error("Coloring options is not solid color");
@@ -33563,11 +33289,11 @@ var TreeMapCategoryColors = class extends Component {
33563
33289
  var TreeMapColorScale = class extends Component {
33564
33290
  static template = "o-spreadsheet-TreeMapColorScale";
33565
33291
  static components = { RoundColorPicker };
33566
- static props = {
33567
- chartId: String,
33568
- definition: Object,
33569
- onColorChanged: Function
33570
- };
33292
+ props = (0, _odoo_owl.props)({
33293
+ chartId: types$6.UID(),
33294
+ definition: types$6.TreeMapChartDefinition(),
33295
+ onColorChanged: types$6.function([types$6.TreeMapColorScaleOptions()], types$6.DispatchResult())
33296
+ });
33571
33297
  get coloringOptions() {
33572
33298
  const coloringOptions = this.props.definition.coloringOptions ?? TreeMapChartDefaults.coloringOptions;
33573
33299
  if (coloringOptions.type !== "colorScale") throw new Error("Coloring options is not a color scale");
@@ -33609,7 +33335,7 @@ var TreeMapChartDesignPanel = class extends Component {
33609
33335
  TreeMapColorScale,
33610
33336
  ChartHumanizeNumbers
33611
33337
  };
33612
- static props = ChartSidePanelPropsObject;
33338
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33613
33339
  savedColors = {
33614
33340
  categoryColors: DEFAULT_SOLID_COLOR,
33615
33341
  colorScale: DEFAULT_COLOR_SCALE
@@ -33666,7 +33392,7 @@ var WaterfallChartDesignPanel = class extends Component {
33666
33392
  ChartLegend,
33667
33393
  ChartHumanizeNumbers
33668
33394
  };
33669
- static props = ChartSidePanelPropsObject;
33395
+ props = (0, _odoo_owl.props)(chartSidePanelPropsDefinition);
33670
33396
  axisChoices = CHART_AXIS_CHOICES;
33671
33397
  onUpdateShowSubTotals(showSubTotals) {
33672
33398
  this.props.updateChart(this.props.chartId, { showSubTotals });
@@ -33780,10 +33506,10 @@ var ChartTypePicker = class extends Component {
33780
33506
  Section,
33781
33507
  Popover
33782
33508
  };
33783
- static props = {
33784
- chartId: String,
33785
- chartPanelStore: Object
33786
- };
33509
+ props = (0, _odoo_owl.props)({
33510
+ chartId: types$6.UID(),
33511
+ chartPanelStore: types$6.Store()
33512
+ });
33787
33513
  categories = chartCategories;
33788
33514
  chartTypeByCategories = {};
33789
33515
  popoverRef = (0, _odoo_owl.signal)(null);
@@ -33958,10 +33684,10 @@ var ChartPanel = class extends Component {
33958
33684
  Section,
33959
33685
  ChartTypePicker
33960
33686
  };
33961
- static props = {
33962
- onCloseSidePanel: Function,
33963
- chartId: String
33964
- };
33687
+ props = (0, _odoo_owl.props)({
33688
+ onCloseSidePanel: types$6.function([]),
33689
+ chartId: types$6.UID()
33690
+ });
33965
33691
  store;
33966
33692
  get chartId() {
33967
33693
  return this.props.chartId;
@@ -34352,13 +34078,13 @@ var ColumnStatisticsStore = class extends SpreadsheetStore {
34352
34078
  //#region src/components/side_panel/column_stats/column_stats_panel.ts
34353
34079
  var ColumnStatsPanel = class extends Component {
34354
34080
  static template = "o-spreadsheet-ColumnStatsPanel";
34355
- static props = { onCloseSidePanel: Function };
34356
34081
  static components = {
34357
34082
  NumberInput,
34358
34083
  SidePanelCollapsible,
34359
34084
  BadgeSelection,
34360
34085
  Section
34361
34086
  };
34087
+ props = (0, _odoo_owl.props)({ onCloseSidePanel: types$6.function([]) });
34362
34088
  state = (0, _odoo_owl.proxy)({
34363
34089
  currentChart: "count",
34364
34090
  currentFrequencyOrder: "descending",
@@ -34601,7 +34327,7 @@ var CellIsRuleEditor = class extends Component {
34601
34327
  ColorPickerWidget,
34602
34328
  Select
34603
34329
  };
34604
- static props = { store: Object };
34330
+ props = (0, _odoo_owl.props)({ store: types$6.Store() });
34605
34331
  getTextDecoration = getTextDecoration;
34606
34332
  get rule() {
34607
34333
  return this.props.store.state.rules.cellIs;
@@ -34611,18 +34337,12 @@ var CellIsRuleEditor = class extends Component {
34611
34337
  //#endregion
34612
34338
  //#region src/components/side_panel/criterion_form/criterion_form.ts
34613
34339
  var CriterionForm = class extends Component {
34614
- static props = {
34615
- criterion: Object,
34616
- onCriterionChanged: Function,
34617
- disableFormulas: {
34618
- type: Boolean,
34619
- optional: true
34620
- },
34621
- autofocus: {
34622
- type: Boolean,
34623
- optional: true
34624
- }
34625
- };
34340
+ props = (0, _odoo_owl.props)({
34341
+ criterion: types$6.object({}),
34342
+ onCriterionChanged: types$6.function([types$6.object({})]),
34343
+ "disableFormulas?": types$6.boolean(),
34344
+ "autofocus?": types$6.boolean()
34345
+ });
34626
34346
  setup() {
34627
34347
  const composerFocusStore = useStore(ComposerFocusStore);
34628
34348
  if (composerFocusStore.activeComposer.editionMode !== "inactive") composerFocusStore.activeComposer.stopEdition();
@@ -35203,41 +34923,22 @@ function getOccurrencesInRanges(criterionRanges, getters) {
35203
34923
  //#region src/components/side_panel/criterion_form/criterion_input/criterion_input.ts
35204
34924
  var CriterionInput = class extends Component {
35205
34925
  static template = "o-spreadsheet-CriterionInput";
35206
- static props = {
35207
- value: {
35208
- type: String,
35209
- optional: true
35210
- },
35211
- criterionType: String,
35212
- onValueChanged: Function,
35213
- onKeyDown: {
35214
- type: Function,
35215
- optional: true
35216
- },
35217
- focused: {
35218
- type: Boolean,
35219
- optional: true
35220
- },
35221
- onBlur: {
35222
- type: Function,
35223
- optional: true
35224
- },
35225
- onFocus: {
35226
- type: Function,
35227
- optional: true
35228
- },
35229
- disableFormulas: {
35230
- type: Boolean,
35231
- optional: true
35232
- }
35233
- };
35234
- static defaultProps = {
34926
+ static components = { StandaloneComposer };
34927
+ props = (0, _odoo_owl.props)({
34928
+ "value?": types$6.string(),
34929
+ criterionType: types$6.DataValidationCriterionType(),
34930
+ onValueChanged: types$6.function([types$6.string()]),
34931
+ "onKeyDown?": types$6.function([types$6.instanceOf(KeyboardEvent)]),
34932
+ "focused?": types$6.boolean(),
34933
+ "onBlur?": types$6.function([]),
34934
+ "onFocus?": types$6.function([]),
34935
+ "disableFormulas?": types$6.boolean()
34936
+ }, {
35235
34937
  value: "",
35236
34938
  onKeyDown: () => {},
35237
34939
  focused: false,
35238
34940
  onBlur: () => {}
35239
- };
35240
- static components = { StandaloneComposer };
34941
+ });
35241
34942
  inputRef = (0, _odoo_owl.signal)(null);
35242
34943
  setup() {
35243
34944
  useLayoutEffect(() => {
@@ -36064,10 +35765,14 @@ var ColorScaleRuleEditorThreshold = class extends Component {
36064
35765
  StandaloneComposer,
36065
35766
  Select
36066
35767
  };
36067
- static props = {
36068
- store: Object,
36069
- thresholdType: String
36070
- };
35768
+ props = (0, _odoo_owl.props)({
35769
+ store: types$6.Store(),
35770
+ thresholdType: types$6.or([
35771
+ types$6.literal("minimum"),
35772
+ types$6.literal("midpoint"),
35773
+ types$6.literal("maximum")
35774
+ ])
35775
+ });
36071
35776
  get rule() {
36072
35777
  return this.props.store.state.rules.colorScale;
36073
35778
  }
@@ -36138,7 +35843,7 @@ var ColorScaleRuleEditorThreshold = class extends Component {
36138
35843
  var ColorScaleRuleEditor = class extends Component {
36139
35844
  static template = "o-spreadsheet-ColorScaleRuleEditor";
36140
35845
  static components = { ColorScaleRuleEditorThreshold };
36141
- static props = { store: Object };
35846
+ props = (0, _odoo_owl.props)({ store: types$6.Store() });
36142
35847
  };
36143
35848
 
36144
35849
  //#endregion
@@ -36149,7 +35854,7 @@ var DataBarRuleEditor = class extends Component {
36149
35854
  SelectionInput,
36150
35855
  RoundColorPicker
36151
35856
  };
36152
- static props = { store: Object };
35857
+ props = (0, _odoo_owl.props)({ store: types$6.Store() });
36153
35858
  get rule() {
36154
35859
  return this.props.store.state.rules.dataBar;
36155
35860
  }
@@ -36160,7 +35865,7 @@ var DataBarRuleEditor = class extends Component {
36160
35865
  //#region src/components/icon_picker/icon_picker.ts
36161
35866
  var IconPicker = class extends Component {
36162
35867
  static template = "o-spreadsheet-IconPicker";
36163
- static props = { onIconPicked: Function };
35868
+ props = (0, _odoo_owl.props)({ onIconPicked: types$6.function([types$6.string()]) });
36164
35869
  onIconClick(icon) {
36165
35870
  if (icon) this.props.onIconPicked(icon);
36166
35871
  }
@@ -36181,7 +35886,7 @@ var IconSetRuleEditor = class extends Component {
36181
35886
  StandaloneComposer,
36182
35887
  Select
36183
35888
  };
36184
- static props = { store: Object };
35889
+ props = (0, _odoo_owl.props)({ store: types$6.Store() });
36185
35890
  get rule() {
36186
35891
  return this.props.store.state.rules.iconSet;
36187
35892
  }
@@ -36260,11 +35965,11 @@ var ConditionalFormattingEditor = class extends Component {
36260
35965
  IconSetRuleEditor,
36261
35966
  DataBarRuleEditor
36262
35967
  };
36263
- static props = {
36264
- cf: Object,
36265
- isNewCf: Boolean,
36266
- onCloseSidePanel: Function
36267
- };
35968
+ props = (0, _odoo_owl.props)({
35969
+ cf: types$6.ConditionalFormat(),
35970
+ isNewCf: types$6.boolean(),
35971
+ onCloseSidePanel: types$6.function([])
35972
+ });
36268
35973
  activeSheetId;
36269
35974
  store;
36270
35975
  setup() {
@@ -36320,11 +36025,11 @@ var ConditionalFormattingEditor = class extends Component {
36320
36025
  //#region src/components/side_panel/conditional_formatting/cf_preview/cf_preview.ts
36321
36026
  var ConditionalFormatPreview = class extends Component {
36322
36027
  static template = "o-spreadsheet-ConditionalFormatPreview";
36323
- static props = {
36324
- conditionalFormat: Object,
36325
- onMouseDown: Function,
36326
- class: String
36327
- };
36028
+ props = (0, _odoo_owl.props)({
36029
+ conditionalFormat: types$6.ConditionalFormat(),
36030
+ onMouseDown: types$6.function([types$6.instanceOf(MouseEvent)]),
36031
+ class: types$6.string()
36032
+ });
36328
36033
  icons = ICONS;
36329
36034
  cfPreviewRef = (0, _odoo_owl.signal)(null);
36330
36035
  setup() {
@@ -36380,8 +36085,8 @@ var ConditionalFormatPreview = class extends Component {
36380
36085
  //#region src/components/side_panel/conditional_formatting/cf_preview_list/cf_preview_list.ts
36381
36086
  var ConditionalFormatPreviewList = class extends Component {
36382
36087
  static template = "o-spreadsheet-ConditionalFormatPreviewList";
36383
- static props = { onCloseSidePanel: Function };
36384
36088
  static components = { ConditionalFormatPreview };
36089
+ props = (0, _odoo_owl.props)({ onCloseSidePanel: types$6.function([]) });
36385
36090
  dragAndDrop = useDragAndDropListItems();
36386
36091
  cfListRef = (0, _odoo_owl.signal)(null);
36387
36092
  get conditionalFormats() {
@@ -36450,7 +36155,7 @@ var ConditionalFormatPreviewList = class extends Component {
36450
36155
  //#region src/components/side_panel/data_validation/dv_preview/dv_preview.ts
36451
36156
  var DataValidationPreview = class extends Component {
36452
36157
  static template = "o-spreadsheet-DataValidationPreview";
36453
- static props = { rule: Object };
36158
+ props = (0, _odoo_owl.props)({ rule: types$6.DataValidationRule() });
36454
36159
  dvPreviewRef = (0, _odoo_owl.signal)(null);
36455
36160
  setup() {
36456
36161
  useHighlightsOnHover(this.dvPreviewRef, this);
@@ -36485,8 +36190,8 @@ var DataValidationPreview = class extends Component {
36485
36190
  //#region src/components/side_panel/data_validation/data_validation_panel.ts
36486
36191
  var DataValidationPanel = class extends Component {
36487
36192
  static template = "o-spreadsheet-DataValidationPanel";
36488
- static props = { onCloseSidePanel: Function };
36489
36193
  static components = { DataValidationPreview };
36194
+ props = (0, _odoo_owl.props)({ onCloseSidePanel: types$6.function([]) });
36490
36195
  addDataValidationRule() {
36491
36196
  this.env.replaceSidePanel("DataValidationEditor", "DataValidation", { ruleId: UuidGenerator.smallUuid() });
36492
36197
  }
@@ -36540,14 +36245,11 @@ var DataValidationEditor = class extends Component {
36540
36245
  Section,
36541
36246
  ValidationMessages
36542
36247
  };
36543
- static props = {
36544
- ruleId: String,
36545
- onCancel: {
36546
- type: Function,
36547
- optional: true
36548
- },
36549
- onCloseSidePanel: Function
36550
- };
36248
+ props = (0, _odoo_owl.props)({
36249
+ ruleId: types$6.UID(),
36250
+ "onCancel?": types$6.function([]),
36251
+ onCloseSidePanel: types$6.function([])
36252
+ });
36551
36253
  state = (0, _odoo_owl.proxy)({
36552
36254
  rule: this.defaultDataValidationRule,
36553
36255
  errors: [],
@@ -36994,7 +36696,7 @@ var FindAndReplacePanel = class extends Component {
36994
36696
  ValidationMessages,
36995
36697
  Select
36996
36698
  };
36997
- static props = { onCloseSidePanel: Function };
36699
+ props = (0, _odoo_owl.props)({ onCloseSidePanel: types$6.function([]) });
36998
36700
  searchInputRef = (0, _odoo_owl.signal)(null);
36999
36701
  store;
37000
36702
  state;
@@ -37820,13 +37522,6 @@ var MoreFormatsStore = class extends SpreadsheetStore {
37820
37522
  //#region src/components/side_panel/more_formats/more_formats.ts
37821
37523
  var MoreFormatsPanel = class extends Component {
37822
37524
  static template = "o-spreadsheet-MoreFormatsPanel";
37823
- static props = {
37824
- onCloseSidePanel: Function,
37825
- category: {
37826
- type: String,
37827
- optional: true
37828
- }
37829
- };
37830
37525
  static components = {
37831
37526
  BadgeSelection,
37832
37527
  Section,
@@ -37834,6 +37529,14 @@ var MoreFormatsPanel = class extends Component {
37834
37529
  Checkbox,
37835
37530
  Select
37836
37531
  };
37532
+ props = (0, _odoo_owl.props)({
37533
+ onCloseSidePanel: types$6.function([]),
37534
+ "category?": types$6.or([
37535
+ types$6.literal("number"),
37536
+ types$6.literal("date"),
37537
+ types$6.literal("currency")
37538
+ ])
37539
+ });
37837
37540
  store;
37838
37541
  setup() {
37839
37542
  this.store = useLocalStore(MoreFormatsStore, this.props.category);
@@ -37889,11 +37592,11 @@ function handleResult(env, result) {
37889
37592
  //#region src/components/side_panel/named_ranges_panel/named_range_preview/named_range_preview.ts
37890
37593
  var NamedRangePreview = class extends Component {
37891
37594
  static template = "o-spreadsheet-NamedRangePreview";
37892
- static props = { namedRange: Object };
37893
37595
  static components = {
37894
37596
  SelectionInput,
37895
37597
  TextInput
37896
37598
  };
37599
+ props = (0, _odoo_owl.props)({ namedRange: types$6.NamedRange() });
37897
37600
  state = (0, _odoo_owl.proxy)({});
37898
37601
  namedRangePreviewRef = (0, _odoo_owl.signal)(null);
37899
37602
  setup() {
@@ -37945,12 +37648,12 @@ var NamedRangePreview = class extends Component {
37945
37648
  //#region src/components/side_panel/named_ranges_panel/named_ranges_panel.ts
37946
37649
  var NamedRangesPanel = class extends Component {
37947
37650
  static template = "o-spreadsheet-NamedRangesPanel";
37948
- static props = { onCloseSidePanel: Function };
37949
37651
  static components = {
37950
37652
  NamedRangePreview,
37951
37653
  SelectionInput,
37952
37654
  TextInput
37953
37655
  };
37656
+ props = (0, _odoo_owl.props)({ onCloseSidePanel: types$6.function([]) });
37954
37657
  get namedRanges() {
37955
37658
  return this.env.model.getters.getNamedRanges();
37956
37659
  }
@@ -37971,7 +37674,7 @@ const HIGHLIGHT_COLOR = "#e28f08";
37971
37674
  var PerfProfilePanel = class extends Component {
37972
37675
  static template = "o-spreadsheet-PerfProfilePanel";
37973
37676
  static components = { Section };
37974
- static props = { onCloseSidePanel: Function };
37677
+ props = (0, _odoo_owl.props)({ onCloseSidePanel: types$6.function([]) });
37975
37678
  state = (0, _odoo_owl.proxy)({
37976
37679
  selectedIndex: void 0,
37977
37680
  lastProfiledTime: 0
@@ -38187,11 +37890,11 @@ var PivotMeasureDisplayPanelStore = class extends SpreadsheetStore {
38187
37890
  //#region src/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel.ts
38188
37891
  var PivotMeasureDisplayPanel = class extends Component {
38189
37892
  static template = "o-spreadsheet-PivotMeasureDisplayPanel";
38190
- static props = {
38191
- onCloseSidePanel: Function,
38192
- pivotId: String,
38193
- measure: Object
38194
- };
37893
+ props = (0, _odoo_owl.props)({
37894
+ onCloseSidePanel: types$6.function([]),
37895
+ pivotId: types$6.UID(),
37896
+ measure: types$6.PivotCoreMeasure()
37897
+ });
38195
37898
  static components = {
38196
37899
  Section,
38197
37900
  Checkbox,
@@ -38253,13 +37956,13 @@ function getVisiblePivotCellPositions(getters, pivotId) {
38253
37956
  //#region src/components/side_panel/pivot/pivot_defer_update/pivot_defer_update.ts
38254
37957
  var PivotDeferUpdate = class extends Component {
38255
37958
  static template = "o-spreadsheet-PivotDeferUpdate";
38256
- static props = {
38257
- deferUpdate: Boolean,
38258
- isDirty: Boolean,
38259
- toggleDeferUpdate: Function,
38260
- discard: Function,
38261
- apply: Function
38262
- };
37959
+ props = (0, _odoo_owl.props)({
37960
+ deferUpdate: types$6.boolean(),
37961
+ isDirty: types$6.boolean(),
37962
+ toggleDeferUpdate: types$6.function([types$6.boolean()]),
37963
+ discard: types$6.function([]),
37964
+ apply: types$6.function([])
37965
+ });
38263
37966
  static components = {
38264
37967
  Section,
38265
37968
  Checkbox
@@ -38272,6 +37975,150 @@ var PivotDeferUpdate = class extends Component {
38272
37975
  }
38273
37976
  };
38274
37977
 
37978
+ //#endregion
37979
+ //#region src/helpers/pivot/pivot_runtime_definition.ts
37980
+ /**
37981
+ * Represent a pivot runtime definition. A pivot runtime definition is a pivot
37982
+ * definition that has been enriched to include the display name of its attributes
37983
+ * (measures, columns, rows).
37984
+ */
37985
+ var PivotRuntimeDefinition = class {
37986
+ measures;
37987
+ columns;
37988
+ rows;
37989
+ filters;
37990
+ sortedColumn;
37991
+ collapsedDomains;
37992
+ customFields;
37993
+ constructor(definition, fields) {
37994
+ this.columns = definition.columns.map((dimension) => this.createPivotDimension(fields, dimension));
37995
+ this.rows = definition.rows.map((dimension) => this.createPivotDimension(fields, dimension));
37996
+ this.measures = definition.measures.map((measure) => this.createMeasure(fields, measure));
37997
+ this.filters = (definition.filters ?? []).map((filter) => this.createPivotFilter(fields, filter));
37998
+ this.sortedColumn = definition.sortedColumn;
37999
+ this.collapsedDomains = definition.collapsedDomains;
38000
+ this.customFields = definition.customFields;
38001
+ }
38002
+ getDimension(nameWithGranularity) {
38003
+ const dimension = this.columns.find((d) => d.nameWithGranularity === nameWithGranularity) || this.rows.find((d) => d.nameWithGranularity === nameWithGranularity);
38004
+ if (!dimension) throw new EvaluationError(_t("Dimension %s does not exist", nameWithGranularity));
38005
+ return dimension;
38006
+ }
38007
+ getMeasure(id) {
38008
+ const measure = this.measures.find((measure) => measure.id === id);
38009
+ if (!measure) throw new EvaluationError(_t("Field %s is not a measure", id));
38010
+ return measure;
38011
+ }
38012
+ get invalidAggregatorsForCustomField() {
38013
+ return [];
38014
+ }
38015
+ createMeasure(fields, measure) {
38016
+ const fieldName = measure.fieldName;
38017
+ const field = fieldName === "__count" ? {
38018
+ name: "__count",
38019
+ string: _t("Count"),
38020
+ type: "integer",
38021
+ aggregator: "sum"
38022
+ } : fields[fieldName];
38023
+ const aggregator = measure.aggregator;
38024
+ let isValid = !!(field || measure.computedBy);
38025
+ for (const dimension of [...this.rows, ...this.columns]) if (fields[dimension.fieldName]?.isCustomField && this.invalidAggregatorsForCustomField.includes(aggregator)) {
38026
+ isValid = false;
38027
+ break;
38028
+ }
38029
+ return {
38030
+ /**
38031
+ * Get the id of the measure, as it is stored in the pivot formula
38032
+ */
38033
+ id: measure.id,
38034
+ /**
38035
+ * Display name of the measure
38036
+ * e.g. "__count" -> "Count", "amount_total" -> "Total Amount"
38037
+ */
38038
+ get displayName() {
38039
+ return measure.userDefinedName ?? field?.string ?? measure.fieldName;
38040
+ },
38041
+ userDefinedName: measure.userDefinedName,
38042
+ /**
38043
+ * Get the name of the field of the measure
38044
+ */
38045
+ fieldName,
38046
+ /**
38047
+ * Get the aggregator of the measure
38048
+ */
38049
+ aggregator,
38050
+ /**
38051
+ * Get the type of the measure field
38052
+ * e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
38053
+ */
38054
+ type: fieldName === "__count" ? "integer" : field?.type ?? "integer",
38055
+ isValid,
38056
+ isHidden: measure.isHidden,
38057
+ format: measure.format,
38058
+ computedBy: measure.computedBy,
38059
+ display: measure.display
38060
+ };
38061
+ }
38062
+ createPivotDimension(fields, dimension) {
38063
+ const field = fields[dimension.fieldName];
38064
+ const type = field?.type ?? "integer";
38065
+ const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
38066
+ return {
38067
+ /**
38068
+ * Get the display name of the dimension
38069
+ * e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
38070
+ */
38071
+ displayName: field?.string ?? dimension.fieldName,
38072
+ /**
38073
+ * Get the name of the dimension, as it is stored in the pivot formula
38074
+ * e.g. "stage_id", "create_date:month"
38075
+ */
38076
+ nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
38077
+ /**
38078
+ * Get the name of the field of the dimension
38079
+ * e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
38080
+ */
38081
+ fieldName: dimension.fieldName,
38082
+ /**
38083
+ * Get the aggregate operator of the dimension
38084
+ * e.g. "stage_id" -> undefined, "create_date:month" -> "month"
38085
+ */
38086
+ granularity,
38087
+ /**
38088
+ * Get the type of the field of the dimension
38089
+ * e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
38090
+ */
38091
+ type: field?.isCustomField ? "custom" : type,
38092
+ order: dimension.order,
38093
+ isValid: !!field,
38094
+ isCustomField: !!field?.isCustomField,
38095
+ customGroups: field?.customGroups,
38096
+ parentField: field?.parentField
38097
+ };
38098
+ }
38099
+ createPivotFilter(fields, filter) {
38100
+ const field = fields[filter.fieldName];
38101
+ return {
38102
+ ...filter,
38103
+ displayName: field?.name ?? filter.fieldName,
38104
+ isValid: !!field
38105
+ };
38106
+ }
38107
+ };
38108
+
38109
+ //#endregion
38110
+ //#region src/helpers/pivot/spreadsheet_pivot/runtime_definition_spreadsheet_pivot.ts
38111
+ var SpreadsheetPivotRuntimeDefinition = class extends PivotRuntimeDefinition {
38112
+ range;
38113
+ constructor(definition, fields, getters) {
38114
+ super(definition, fields);
38115
+ if (definition.dataSet) {
38116
+ const { sheetId, zone } = definition.dataSet;
38117
+ this.range = getters.getRangeFromZone(sheetId, zone);
38118
+ }
38119
+ }
38120
+ };
38121
+
38275
38122
  //#endregion
38276
38123
  //#region src/types/table.ts
38277
38124
  const filterCriterions = [
@@ -38337,12 +38184,12 @@ const filterDateCriterionOperators = [
38337
38184
  //#region src/components/filters/filter_menu_criterion/filter_menu_criterion.ts
38338
38185
  var FilterMenuCriterion = class extends Component {
38339
38186
  static template = "o-spreadsheet-FilterMenuCriterion";
38340
- static props = {
38341
- criterion: Object,
38342
- onCriterionChanged: Function,
38343
- criterionOperators: Array
38344
- };
38345
38187
  static components = { Select };
38188
+ props = (0, _odoo_owl.props)({
38189
+ criterion: types$6.CriterionFilter(),
38190
+ criterionOperators: types$6.array(types$6.GenericCriterionType()),
38191
+ onCriterionChanged: types$6.function([types$6.CriterionFilter()])
38192
+ });
38346
38193
  state;
38347
38194
  setup() {
38348
38195
  (0, _odoo_owl.onWillUpdateProps)((nextProps) => {
@@ -38375,17 +38222,14 @@ var FilterMenuCriterion = class extends Component {
38375
38222
  var FilterMenuValueItem = class extends Component {
38376
38223
  static template = "o-spreadsheet-FilterMenuValueItem";
38377
38224
  static components = { Checkbox };
38378
- static props = {
38379
- value: String,
38380
- isChecked: Boolean,
38381
- isSelected: Boolean,
38382
- onMouseMove: Function,
38383
- onClick: Function,
38384
- scrolledTo: {
38385
- type: String,
38386
- optional: true
38387
- }
38388
- };
38225
+ props = (0, _odoo_owl.props)({
38226
+ value: _odoo_owl.types.string(),
38227
+ isChecked: _odoo_owl.types.boolean(),
38228
+ isSelected: _odoo_owl.types.boolean(),
38229
+ onMouseMove: _odoo_owl.types.function([]),
38230
+ onClick: _odoo_owl.types.function([]),
38231
+ "scrolledTo?": _odoo_owl.types.or([_odoo_owl.types.literal("top"), _odoo_owl.types.literal("bottom")])
38232
+ });
38389
38233
  itemRef = (0, _odoo_owl.signal)(null);
38390
38234
  setup() {
38391
38235
  (0, _odoo_owl.onWillPatch)(() => {
@@ -38403,11 +38247,15 @@ var FilterMenuValueItem = class extends Component {
38403
38247
  //#region src/components/filters/filter_menu_value_list/filter_menu_value_list.ts
38404
38248
  var FilterMenuValueList = class extends Component {
38405
38249
  static template = "o-spreadsheet-FilterMenuValueList";
38406
- static props = {
38407
- values: Object,
38408
- onUpdateHiddenValues: Function
38409
- };
38410
38250
  static components = { FilterMenuValueItem };
38251
+ props = (0, _odoo_owl.props)({
38252
+ values: types$6.array(types$6.object({
38253
+ checked: types$6.boolean(),
38254
+ string: types$6.string(),
38255
+ "scrolledTo?": types$6.or([types$6.literal("top"), types$6.literal("bottom")])
38256
+ })),
38257
+ onUpdateHiddenValues: types$6.function([types$6.array(types$6.string())])
38258
+ });
38411
38259
  state = (0, _odoo_owl.proxy)({
38412
38260
  displayedValues: [],
38413
38261
  textFilter: "",
@@ -38508,17 +38356,6 @@ var FilterMenuValueList = class extends Component {
38508
38356
  //#region src/components/filters/pivot_filter_menu/pivot_filter_menu.ts
38509
38357
  var PivotFilterMenu = class extends Component {
38510
38358
  static template = "o-spreadsheet-PivotFilterMenu";
38511
- static props = {
38512
- pivotId: String,
38513
- definition: Object,
38514
- filter: Object,
38515
- values: Object,
38516
- onClosed: {
38517
- type: Function,
38518
- optional: true
38519
- },
38520
- onConfirmed: Function
38521
- };
38522
38359
  static components = {
38523
38360
  FilterMenuValueList,
38524
38361
  SidePanelCollapsible,
@@ -38526,6 +38363,18 @@ var PivotFilterMenu = class extends Component {
38526
38363
  };
38527
38364
  criterionCategory = "char";
38528
38365
  updatedCriterionValue;
38366
+ props = (0, _odoo_owl.props)({
38367
+ pivotId: types$6.UID(),
38368
+ definition: types$6.instanceOf(SpreadsheetPivotRuntimeDefinition),
38369
+ filter: types$6.PivotFilter(),
38370
+ values: types$6.array(types$6.object({
38371
+ checked: types$6.boolean(),
38372
+ string: types$6.string(),
38373
+ "scrolledTo?": types$6.or([types$6.literal("top"), types$6.literal("bottom")])
38374
+ })),
38375
+ "onClosed?": types$6.function([]),
38376
+ onConfirmed: types$6.function([types$6.DataFilterValue()])
38377
+ });
38529
38378
  setup() {
38530
38379
  (0, _odoo_owl.onWillUpdateProps)((nextProps) => {
38531
38380
  if (!deepEquals(nextProps.definition, this.props.definition)) {
@@ -38577,21 +38426,29 @@ var PivotFilterMenu = class extends Component {
38577
38426
  //#region src/components/side_panel/pivot/pivot_layout_configurator/pivot_dimension/pivot_dimension.ts
38578
38427
  var PivotDimension = class extends Component {
38579
38428
  static template = "o-spreadsheet-PivotDimension";
38580
- static props = {
38581
- dimension: Object,
38582
- onRemoved: {
38583
- type: Function,
38584
- optional: true
38585
- },
38586
- onNameUpdated: {
38587
- type: Function,
38588
- optional: true
38589
- },
38590
- slots: {
38591
- type: Object,
38592
- optional: true
38593
- }
38594
- };
38429
+ props = (0, _odoo_owl.props)({
38430
+ dimension: types$6.or([
38431
+ types$6.PivotDimension(),
38432
+ types$6.PivotMeasure(),
38433
+ types$6.PivotFilter()
38434
+ ]),
38435
+ "onRemoved?": types$6.function([types$6.or([
38436
+ types$6.PivotDimension(),
38437
+ types$6.PivotMeasure(),
38438
+ types$6.PivotFilter()
38439
+ ])]),
38440
+ "onNameUpdated?": types$6.function([types$6.or([
38441
+ types$6.PivotDimension(),
38442
+ types$6.PivotMeasure(),
38443
+ types$6.PivotFilter()
38444
+ ]), types$6.string()]),
38445
+ "type?": types$6.or([
38446
+ types$6.literal("row"),
38447
+ types$6.literal("col"),
38448
+ types$6.literal("measure"),
38449
+ types$6.literal("filter")
38450
+ ])
38451
+ });
38595
38452
  static components = {
38596
38453
  CogWheelMenu,
38597
38454
  TextInput
@@ -38614,12 +38471,12 @@ var PivotFilterEditor = class extends Component {
38614
38471
  Popover,
38615
38472
  PivotFilterMenu
38616
38473
  };
38617
- static props = {
38618
- pivotId: String,
38619
- definition: Object,
38620
- filter: Object,
38621
- onFiltersUpdated: Function
38622
- };
38474
+ props = (0, _odoo_owl.props)({
38475
+ pivotId: types$6.UID(),
38476
+ definition: types$6.instanceOf(SpreadsheetPivotRuntimeDefinition),
38477
+ filter: types$6.PivotFilter(),
38478
+ onFiltersUpdated: types$6.function([types$6.SpreadsheetPivotCoreDefinition()])
38479
+ });
38623
38480
  state;
38624
38481
  buttonFilter = (0, _odoo_owl.signal)(null);
38625
38482
  popover;
@@ -38746,14 +38603,10 @@ var AddDimensionButton = class extends Component {
38746
38603
  Popover,
38747
38604
  TextValueProvider
38748
38605
  };
38749
- static props = {
38750
- onFieldPicked: Function,
38751
- fields: Array,
38752
- slots: {
38753
- type: Object,
38754
- optional: true
38755
- }
38756
- };
38606
+ props = (0, _odoo_owl.props)({
38607
+ onFieldPicked: types$6.function([types$6.string()]),
38608
+ fields: types$6.array()
38609
+ });
38757
38610
  buttonRef = (0, _odoo_owl.signal)(null);
38758
38611
  popover = (0, _odoo_owl.proxy)({ isOpen: false });
38759
38612
  search = (0, _odoo_owl.proxy)({ input: "" });
@@ -38845,11 +38698,11 @@ var AddDimensionButton = class extends Component {
38845
38698
  //#region src/components/side_panel/pivot/pivot_custom_groups_collapsible/pivot_custom_groups_collapsible.ts
38846
38699
  var PivotCustomGroupsCollapsible = class extends Component {
38847
38700
  static template = "o-spreadsheet-PivotCustomGroupsCollapsible";
38848
- static props = {
38849
- pivotId: String,
38850
- customField: Object,
38851
- onCustomFieldUpdated: Function
38852
- };
38701
+ props = (0, _odoo_owl.props)({
38702
+ pivotId: types$6.UID(),
38703
+ customField: types$6.PivotCustomGroupedField(),
38704
+ onCustomFieldUpdated: types$6.function([types$6.object({})])
38705
+ });
38853
38706
  static components = {
38854
38707
  SidePanelCollapsible,
38855
38708
  TextInput,
@@ -38909,12 +38762,12 @@ var PivotCustomGroupsCollapsible = class extends Component {
38909
38762
  //#region src/components/side_panel/pivot/pivot_layout_configurator/pivot_dimension_granularity/pivot_dimension_granularity.ts
38910
38763
  var PivotDimensionGranularity = class extends Component {
38911
38764
  static template = "o-spreadsheet-PivotDimensionGranularity";
38912
- static props = {
38913
- dimension: Object,
38914
- onUpdated: Function,
38915
- availableGranularities: Set,
38916
- allGranularities: Array
38917
- };
38765
+ props = (0, _odoo_owl.props)({
38766
+ dimension: types$6.PivotDimension(),
38767
+ onUpdated: types$6.function([types$6.PivotDimension(), types$6.instanceOf(InputEvent)]),
38768
+ availableGranularities: types$6.SetOf(),
38769
+ allGranularities: types$6.array()
38770
+ });
38918
38771
  static components = { Select };
38919
38772
  periods = ALL_PERIODS;
38920
38773
  get granularityOptions() {
@@ -38930,10 +38783,10 @@ var PivotDimensionGranularity = class extends Component {
38930
38783
  //#region src/components/side_panel/pivot/pivot_layout_configurator/pivot_dimension_order/pivot_dimension_order.ts
38931
38784
  var PivotDimensionOrder = class extends Component {
38932
38785
  static template = "o-spreadsheet-PivotDimensionOrder";
38933
- static props = {
38934
- dimension: Object,
38935
- onUpdated: Function
38936
- };
38786
+ props = (0, _odoo_owl.props)({
38787
+ dimension: types$6.PivotDimension(),
38788
+ onUpdated: types$6.function([types$6.PivotDimension(), types$6.instanceOf(InputEvent)])
38789
+ });
38937
38790
  static components = { Select };
38938
38791
  get orderSelectOptions() {
38939
38792
  const options = [{
@@ -39003,15 +38856,15 @@ var PivotMeasureEditor = class extends Component {
39003
38856
  StandaloneComposer,
39004
38857
  Select
39005
38858
  };
39006
- static props = {
39007
- definition: Object,
39008
- measure: Object,
39009
- onMeasureUpdated: Function,
39010
- onRemoved: Function,
39011
- generateMeasureId: Function,
39012
- aggregators: Object,
39013
- pivotId: String
39014
- };
38859
+ props = (0, _odoo_owl.props)({
38860
+ pivotId: types$6.string(),
38861
+ definition: types$6.PivotRuntimeDefinition(),
38862
+ measure: types$6.PivotMeasure(),
38863
+ onMeasureUpdated: types$6.function([types$6.PivotMeasure()]),
38864
+ onRemoved: types$6.function([]),
38865
+ generateMeasureId: types$6.function([types$6.string(), types$6.string()], types$6.string()),
38866
+ aggregators: types$6.object({})
38867
+ });
39015
38868
  getMeasureAutocomplete() {
39016
38869
  return createMeasureAutoComplete(this.props.definition, this.props.measure);
39017
38870
  }
@@ -39091,10 +38944,10 @@ var PivotMeasureEditor = class extends Component {
39091
38944
  var PivotSortSection = class extends Component {
39092
38945
  static template = "o-spreadsheet-PivotSortSection";
39093
38946
  static components = { Section };
39094
- static props = {
39095
- definition: Object,
39096
- pivotId: String
39097
- };
38947
+ props = (0, _odoo_owl.props)({
38948
+ definition: types$6.PivotRuntimeDefinition(),
38949
+ pivotId: types$6.UID()
38950
+ });
39098
38951
  get hasValidSort() {
39099
38952
  const pivot = this.env.model.getters.getPivot(this.props.pivotId);
39100
38953
  return !!this.props.definition.sortedColumn && isSortedColumnValid(this.props.definition.sortedColumn, pivot);
@@ -39146,21 +38999,18 @@ var PivotLayoutConfigurator = class extends Component {
39146
38999
  PivotCustomGroupsCollapsible,
39147
39000
  SidePanelCollapsible
39148
39001
  };
39149
- static props = {
39150
- definition: Object,
39151
- onDimensionsUpdated: Function,
39152
- onFiltersUpdated: Function,
39153
- unusedGroupableFields: Array,
39154
- measureFields: Array,
39155
- unusedGranularities: Object,
39156
- dateGranularities: Array,
39157
- datetimeGranularities: Array,
39158
- getScrollableContainerEl: {
39159
- type: Function,
39160
- optional: true
39161
- },
39162
- pivotId: String
39163
- };
39002
+ props = (0, _odoo_owl.props)({
39003
+ definition: types$6.instanceOf(PivotRuntimeDefinition),
39004
+ onDimensionsUpdated: types$6.function([types$6.PivotCoreDefinition()]),
39005
+ onFiltersUpdated: types$6.function([types$6.PivotCoreDefinition()]),
39006
+ unusedGroupableFields: types$6.array(types$6.PivotField()),
39007
+ measureFields: types$6.array(types$6.PivotField()),
39008
+ unusedGranularities: types$6.RecordOf(),
39009
+ dateGranularities: types$6.array(types$6.string()),
39010
+ datetimeGranularities: types$6.array(types$6.string()),
39011
+ "getScrollableContainerEl?": types$6.function([], types$6.instanceOf(HTMLElement)),
39012
+ pivotId: types$6.UID()
39013
+ });
39164
39014
  dimensionsRef = (0, _odoo_owl.signal)(null);
39165
39015
  dragAndDrop = useDragAndDropListItems();
39166
39016
  AGGREGATORS = AGGREGATORS;
@@ -39374,10 +39224,10 @@ var PivotTitleSection = class extends Component {
39374
39224
  Section,
39375
39225
  TextInput
39376
39226
  };
39377
- static props = {
39378
- pivotId: String,
39379
- flipAxis: Function
39380
- };
39227
+ props = (0, _odoo_owl.props)({
39228
+ pivotId: types$6.UID(),
39229
+ flipAxis: types$6.function([])
39230
+ });
39381
39231
  get cogWheelMenuItems() {
39382
39232
  return [
39383
39233
  {
@@ -39443,150 +39293,6 @@ var PivotTitleSection = class extends Component {
39443
39293
  }
39444
39294
  };
39445
39295
 
39446
- //#endregion
39447
- //#region src/helpers/pivot/pivot_runtime_definition.ts
39448
- /**
39449
- * Represent a pivot runtime definition. A pivot runtime definition is a pivot
39450
- * definition that has been enriched to include the display name of its attributes
39451
- * (measures, columns, rows).
39452
- */
39453
- var PivotRuntimeDefinition = class {
39454
- measures;
39455
- columns;
39456
- rows;
39457
- filters;
39458
- sortedColumn;
39459
- collapsedDomains;
39460
- customFields;
39461
- constructor(definition, fields) {
39462
- this.columns = definition.columns.map((dimension) => this.createPivotDimension(fields, dimension));
39463
- this.rows = definition.rows.map((dimension) => this.createPivotDimension(fields, dimension));
39464
- this.measures = definition.measures.map((measure) => this.createMeasure(fields, measure));
39465
- this.filters = (definition.filters ?? []).map((filter) => this.createPivotFilter(fields, filter));
39466
- this.sortedColumn = definition.sortedColumn;
39467
- this.collapsedDomains = definition.collapsedDomains;
39468
- this.customFields = definition.customFields;
39469
- }
39470
- getDimension(nameWithGranularity) {
39471
- const dimension = this.columns.find((d) => d.nameWithGranularity === nameWithGranularity) || this.rows.find((d) => d.nameWithGranularity === nameWithGranularity);
39472
- if (!dimension) throw new EvaluationError(_t("Dimension %s does not exist", nameWithGranularity));
39473
- return dimension;
39474
- }
39475
- getMeasure(id) {
39476
- const measure = this.measures.find((measure) => measure.id === id);
39477
- if (!measure) throw new EvaluationError(_t("Field %s is not a measure", id));
39478
- return measure;
39479
- }
39480
- get invalidAggregatorsForCustomField() {
39481
- return [];
39482
- }
39483
- createMeasure(fields, measure) {
39484
- const fieldName = measure.fieldName;
39485
- const field = fieldName === "__count" ? {
39486
- name: "__count",
39487
- string: _t("Count"),
39488
- type: "integer",
39489
- aggregator: "sum"
39490
- } : fields[fieldName];
39491
- const aggregator = measure.aggregator;
39492
- let isValid = !!(field || measure.computedBy);
39493
- for (const dimension of [...this.rows, ...this.columns]) if (fields[dimension.fieldName]?.isCustomField && this.invalidAggregatorsForCustomField.includes(aggregator)) {
39494
- isValid = false;
39495
- break;
39496
- }
39497
- return {
39498
- /**
39499
- * Get the id of the measure, as it is stored in the pivot formula
39500
- */
39501
- id: measure.id,
39502
- /**
39503
- * Display name of the measure
39504
- * e.g. "__count" -> "Count", "amount_total" -> "Total Amount"
39505
- */
39506
- get displayName() {
39507
- return measure.userDefinedName ?? field?.string ?? measure.fieldName;
39508
- },
39509
- userDefinedName: measure.userDefinedName,
39510
- /**
39511
- * Get the name of the field of the measure
39512
- */
39513
- fieldName,
39514
- /**
39515
- * Get the aggregator of the measure
39516
- */
39517
- aggregator,
39518
- /**
39519
- * Get the type of the measure field
39520
- * e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
39521
- */
39522
- type: fieldName === "__count" ? "integer" : field?.type ?? "integer",
39523
- isValid,
39524
- isHidden: measure.isHidden,
39525
- format: measure.format,
39526
- computedBy: measure.computedBy,
39527
- display: measure.display
39528
- };
39529
- }
39530
- createPivotDimension(fields, dimension) {
39531
- const field = fields[dimension.fieldName];
39532
- const type = field?.type ?? "integer";
39533
- const granularity = field && isDateOrDatetimeField(field) ? dimension.granularity : void 0;
39534
- return {
39535
- /**
39536
- * Get the display name of the dimension
39537
- * e.g. "stage_id" -> "Stage", "create_date:month" -> "Create Date"
39538
- */
39539
- displayName: field?.string ?? dimension.fieldName,
39540
- /**
39541
- * Get the name of the dimension, as it is stored in the pivot formula
39542
- * e.g. "stage_id", "create_date:month"
39543
- */
39544
- nameWithGranularity: dimension.fieldName + (granularity ? `:${granularity}` : ""),
39545
- /**
39546
- * Get the name of the field of the dimension
39547
- * e.g. "stage_id" -> "stage_id", "create_date:month" -> "create_date"
39548
- */
39549
- fieldName: dimension.fieldName,
39550
- /**
39551
- * Get the aggregate operator of the dimension
39552
- * e.g. "stage_id" -> undefined, "create_date:month" -> "month"
39553
- */
39554
- granularity,
39555
- /**
39556
- * Get the type of the field of the dimension
39557
- * e.g. "stage_id" -> "many2one", "create_date:month" -> "date"
39558
- */
39559
- type: field?.isCustomField ? "custom" : type,
39560
- order: dimension.order,
39561
- isValid: !!field,
39562
- isCustomField: !!field?.isCustomField,
39563
- customGroups: field?.customGroups,
39564
- parentField: field?.parentField
39565
- };
39566
- }
39567
- createPivotFilter(fields, filter) {
39568
- const field = fields[filter.fieldName];
39569
- return {
39570
- ...filter,
39571
- displayName: field?.name ?? filter.fieldName,
39572
- isValid: !!field
39573
- };
39574
- }
39575
- };
39576
-
39577
- //#endregion
39578
- //#region src/helpers/pivot/spreadsheet_pivot/runtime_definition_spreadsheet_pivot.ts
39579
- var SpreadsheetPivotRuntimeDefinition = class extends PivotRuntimeDefinition {
39580
- range;
39581
- constructor(definition, fields, getters) {
39582
- super(definition, fields);
39583
- if (definition.dataSet) {
39584
- const { sheetId, zone } = definition.dataSet;
39585
- this.range = getters.getRangeFromZone(sheetId, zone);
39586
- }
39587
- }
39588
- };
39589
-
39590
39296
  //#endregion
39591
39297
  //#region src/helpers/filter_helpers.ts
39592
39298
  /**
@@ -41138,10 +40844,6 @@ var PivotSidePanelStore = class extends SpreadsheetStore {
41138
40844
  //#region src/components/side_panel/pivot/pivot_side_panel/pivot_spreadsheet_side_panel/pivot_spreadsheet_side_panel.ts
41139
40845
  var PivotSpreadsheetSidePanel = class extends Component {
41140
40846
  static template = "o-spreadsheet-PivotSpreadsheetSidePanel";
41141
- static props = {
41142
- pivotId: String,
41143
- onCloseSidePanel: Function
41144
- };
41145
40847
  static components = {
41146
40848
  PivotLayoutConfigurator,
41147
40849
  Section,
@@ -41152,6 +40854,10 @@ var PivotSpreadsheetSidePanel = class extends Component {
41152
40854
  AddDimensionButton,
41153
40855
  PivotFilterEditor
41154
40856
  };
40857
+ props = (0, _odoo_owl.props)({
40858
+ pivotId: types$6.UID(),
40859
+ onCloseSidePanel: types$6.function([])
40860
+ });
41155
40861
  store;
41156
40862
  state;
41157
40863
  pivotSidePanelRef = (0, _odoo_owl.signal)(null);
@@ -42386,23 +42092,14 @@ function drawTexts(ctx, tableStyle, params) {
42386
42092
  var TableStylePreview = class extends Component {
42387
42093
  static template = "o-spreadsheet-TableStylePreview";
42388
42094
  static components = { MenuPopover };
42389
- static props = {
42390
- tableConfig: Object,
42391
- tableStyle: Object,
42392
- type: String,
42393
- styleId: {
42394
- type: String,
42395
- optional: true
42396
- },
42397
- selected: {
42398
- type: Boolean,
42399
- optional: true
42400
- },
42401
- onClick: {
42402
- type: Function,
42403
- optional: true
42404
- }
42405
- };
42095
+ props = (0, _odoo_owl.props)({
42096
+ tableConfig: types$6.TableConfig(),
42097
+ tableStyle: types$6.TableStyle(),
42098
+ type: types$6.or([types$6.literal("table"), types$6.literal("pivot")]),
42099
+ "styleId?": types$6.string(),
42100
+ "selected?": types$6.boolean(),
42101
+ "onClick?": types$6.function([])
42102
+ });
42406
42103
  canvasRef = (0, _odoo_owl.signal)(null);
42407
42104
  menu = (0, _odoo_owl.proxy)({
42408
42105
  isOpen: false,
@@ -42488,21 +42185,15 @@ var TableStylesPopover = class extends Component {
42488
42185
  Popover,
42489
42186
  TableStylePreview
42490
42187
  };
42491
- static props = {
42492
- tableConfig: Object,
42493
- popoverProps: {
42494
- type: Object,
42495
- optional: true
42496
- },
42497
- closePopover: Function,
42498
- onStylePicked: Function,
42499
- selectedStyleId: {
42500
- type: String,
42501
- optional: true
42502
- },
42503
- tableStyles: Object,
42504
- type: String
42505
- };
42188
+ props = (0, _odoo_owl.props)({
42189
+ tableConfig: types$6.object({}),
42190
+ "popoverProps?": types$6.object({}),
42191
+ closePopover: types$6.function([]),
42192
+ onStylePicked: types$6.function([types$6.string()]),
42193
+ "selectedStyleId?": types$6.string(),
42194
+ tableStyles: types$6.RecordOf(),
42195
+ type: types$6.or([types$6.literal("table"), types$6.literal("pivot")])
42196
+ });
42506
42197
  tableStyleListRef = (0, _odoo_owl.signal)(null);
42507
42198
  state = (0, _odoo_owl.proxy)({ selectedCategory: this.initialSelectedCategory });
42508
42199
  setup() {
@@ -42542,12 +42233,12 @@ var TableStylePicker = class extends Component {
42542
42233
  TableStylesPopover,
42543
42234
  TableStylePreview
42544
42235
  };
42545
- static props = {
42546
- tableConfig: Object,
42547
- onStylePicked: Function,
42548
- tableStyles: Object,
42549
- type: String
42550
- };
42236
+ props = (0, _odoo_owl.props)({
42237
+ tableConfig: types$6.TableConfig(),
42238
+ onStylePicked: types$6.function([types$6.string()]),
42239
+ tableStyles: types$6.RecordOf(),
42240
+ type: types$6.or([types$6.literal("table"), types$6.literal("pivot")])
42241
+ });
42551
42242
  state = (0, _odoo_owl.proxy)({ popoverProps: void 0 });
42552
42243
  getDisplayedTableStyles() {
42553
42244
  const allStyles = this.props.tableStyles;
@@ -42588,13 +42279,13 @@ var TableStylePicker = class extends Component {
42588
42279
  //#region src/components/side_panel/pivot/pivot_side_panel/pivot_design_panel/pivot_design_panel.ts
42589
42280
  var PivotDesignPanel = class extends Component {
42590
42281
  static template = "o-spreadsheet-PivotDesignPanel";
42591
- static props = { pivotId: String };
42592
42282
  static components = {
42593
42283
  Section,
42594
42284
  Checkbox,
42595
42285
  NumberInput,
42596
42286
  TableStylePicker
42597
42287
  };
42288
+ props = (0, _odoo_owl.props)({ pivotId: types$6.UID() });
42598
42289
  store;
42599
42290
  setup() {
42600
42291
  this.store = useLocalStore(PivotSidePanelStore, this.props.pivotId, "neverDefer");
@@ -42643,20 +42334,16 @@ var PivotDesignPanel = class extends Component {
42643
42334
  //#region src/components/side_panel/pivot/pivot_side_panel/pivot_side_panel.ts
42644
42335
  var PivotSidePanel = class extends Component {
42645
42336
  static template = "o-spreadsheet-PivotSidePanel";
42646
- static props = {
42647
- pivotId: String,
42648
- onCloseSidePanel: Function,
42649
- openTab: {
42650
- type: String,
42651
- optional: true
42652
- }
42653
- };
42654
- static defaultProps = { openTab: "configuration" };
42655
42337
  static components = {
42656
42338
  PivotLayoutConfigurator,
42657
42339
  Section,
42658
42340
  PivotDesignPanel
42659
42341
  };
42342
+ props = (0, _odoo_owl.props)({
42343
+ pivotId: types$6.UID(),
42344
+ onCloseSidePanel: types$6.function([]),
42345
+ "openTab?": types$6.or([types$6.literal("configuration"), types$6.literal("design")])
42346
+ }, { openTab: "configuration" });
42660
42347
  state = (0, _odoo_owl.proxy)({ panel: this.props.openTab || "configuration" });
42661
42348
  setup() {
42662
42349
  useHighlights(this);
@@ -42686,7 +42373,7 @@ var RemoveDuplicatesPanel = class extends Component {
42686
42373
  Section,
42687
42374
  Checkbox
42688
42375
  };
42689
- static props = { onCloseSidePanel: Function };
42376
+ props = (0, _odoo_owl.props)({ onCloseSidePanel: types$6.function([]) });
42690
42377
  state = (0, _odoo_owl.proxy)({
42691
42378
  hasHeader: false,
42692
42379
  columns: {}
@@ -42770,7 +42457,7 @@ var SettingsPanel = class extends Component {
42770
42457
  BadgeSelection,
42771
42458
  Select
42772
42459
  };
42773
- static props = { onCloseSidePanel: Function };
42460
+ props = (0, _odoo_owl.props)({ onCloseSidePanel: types$6.function([]) });
42774
42461
  loadedLocales = [];
42775
42462
  setup() {
42776
42463
  (0, _odoo_owl.onWillStart)(() => this.loadLocales());
@@ -42888,7 +42575,7 @@ var SplitIntoColumnsPanel = class extends Component {
42888
42575
  Checkbox,
42889
42576
  Select
42890
42577
  };
42891
- static props = { onCloseSidePanel: Function };
42578
+ props = (0, _odoo_owl.props)({ onCloseSidePanel: types$6.function([]) });
42892
42579
  state = (0, _odoo_owl.proxy)({
42893
42580
  separatorValue: "auto",
42894
42581
  addNewColumns: false,
@@ -42964,10 +42651,10 @@ var TablePanel = class extends Component {
42964
42651
  Section,
42965
42652
  NumberInput
42966
42653
  };
42967
- static props = {
42968
- onCloseSidePanel: Function,
42969
- table: Object
42970
- };
42654
+ props = (0, _odoo_owl.props)({
42655
+ onCloseSidePanel: types$6.function([]),
42656
+ table: types$6.CoreTable()
42657
+ });
42971
42658
  state;
42972
42659
  setup() {
42973
42660
  const sheetId = this.env.model.getters.getActiveSheetId();
@@ -43124,17 +42811,11 @@ var TableStyleEditorPanel = class extends Component {
43124
42811
  RoundColorPicker,
43125
42812
  TableStylePreview
43126
42813
  };
43127
- static props = {
43128
- onCloseSidePanel: Function,
43129
- onStylePicked: {
43130
- type: Function,
43131
- optional: true
43132
- },
43133
- styleId: {
43134
- type: String,
43135
- optional: true
43136
- }
43137
- };
42814
+ props = (0, _odoo_owl.props)({
42815
+ onCloseSidePanel: types$6.function([]),
42816
+ "onStylePicked?": types$6.function([types$6.string()]),
42817
+ "styleId?": types$6.string()
42818
+ });
43138
42819
  state = (0, _odoo_owl.proxy)(this.getInitialState());
43139
42820
  setup() {
43140
42821
  useExternalListener(window, "click", () => this.state.pickerOpened = false);
@@ -45464,10 +45145,10 @@ function adjustIndexWithinBounds(index, position, max) {
45464
45145
  //#region src/components/autofill/autofill.ts
45465
45146
  var Autofill = class extends Component {
45466
45147
  static template = "o-spreadsheet-Autofill";
45467
- static props = {
45468
- position: Object,
45469
- isVisible: Boolean
45470
- };
45148
+ props = (0, _odoo_owl.props)({
45149
+ position: types$6.DOMCoordinates(),
45150
+ isVisible: types$6.boolean()
45151
+ });
45471
45152
  state = (0, _odoo_owl.proxy)({
45472
45153
  position: {
45473
45154
  x: 0,
@@ -45542,7 +45223,7 @@ var Autofill = class extends Component {
45542
45223
  }
45543
45224
  };
45544
45225
  var TooltipComponent = class extends Component {
45545
- static props = { content: String };
45226
+ props = (0, _odoo_owl.props)({ content: types$6.string() });
45546
45227
  static template = _odoo_owl.xml`
45547
45228
  <div t-out="this.props.content"/>
45548
45229
  `;
@@ -45552,13 +45233,13 @@ var TooltipComponent = class extends Component {
45552
45233
  //#region src/components/collaborative_client_tag/collaborative_client_tag.ts
45553
45234
  var ClientTag = class extends Component {
45554
45235
  static template = "o-spreadsheet-ClientTag";
45555
- static props = {
45556
- active: Boolean,
45557
- name: String,
45558
- color: String,
45559
- col: Number,
45560
- row: Number
45561
- };
45236
+ props = (0, _odoo_owl.props)({
45237
+ active: types$6.boolean(),
45238
+ name: types$6.string(),
45239
+ color: types$6.Color(),
45240
+ col: types$6.HeaderIndex(),
45241
+ row: types$6.HeaderIndex()
45242
+ });
45562
45243
  get tagStyle() {
45563
45244
  const { col, row, color } = this.props;
45564
45245
  const { height } = this.env.model.getters.getSheetViewDimensionWithHeaders();
@@ -46132,11 +45813,11 @@ const GRID_CELL_REFERENCE_TOP_OFFSET = 28;
46132
45813
  */
46133
45814
  var GridComposer = class extends Component {
46134
45815
  static template = "o-spreadsheet-GridComposer";
46135
- static props = {
46136
- gridDims: Object,
46137
- onInputContextMenu: Function
46138
- };
46139
45816
  static components = { Composer };
45817
+ props = (0, _odoo_owl.props)({
45818
+ gridDims: types$6.DOMDimension(),
45819
+ onInputContextMenu: types$6.function([types$6.instanceOf(MouseEvent)])
45820
+ });
46140
45821
  rect = this.defaultRect;
46141
45822
  isEditing = false;
46142
45823
  isCellReferenceVisible = false;
@@ -46596,7 +46277,6 @@ function getAxis(getters, figureUI, dnd, axisType) {
46596
46277
  */
46597
46278
  var FiguresContainer = class extends Component {
46598
46279
  static template = "o-spreadsheet-FiguresContainer";
46599
- static props = {};
46600
46280
  static components = { FigureComponent };
46601
46281
  dnd = (0, _odoo_owl.proxy)({
46602
46282
  draggedFigure: void 0,
@@ -46947,7 +46627,6 @@ var FiguresContainer = class extends Component {
46947
46627
  //#region src/components/grid_add_rows_footer/grid_add_rows_footer.ts
46948
46628
  var GridAddRowsFooter = class extends Component {
46949
46629
  static template = "o-spreadsheet-GridAddRowsFooter";
46950
- static props = {};
46951
46630
  static components = { ValidationMessages };
46952
46631
  DOMFocusableElementStore;
46953
46632
  inputRef = (0, _odoo_owl.signal)(null);
@@ -47255,40 +46934,32 @@ function useCellHovered(env, gridRef) {
47255
46934
  }
47256
46935
  var GridOverlay = class extends Component {
47257
46936
  static template = "o-spreadsheet-GridOverlay";
47258
- static props = {
47259
- onCellDoubleClicked: {
47260
- type: Function,
47261
- optional: true
47262
- },
47263
- onCellClicked: {
47264
- type: Function,
47265
- optional: true
47266
- },
47267
- onCellRightClicked: {
47268
- type: Function,
47269
- optional: true
47270
- },
47271
- onGridResized: {
47272
- type: Function,
47273
- optional: true
47274
- },
47275
- onGridMoved: Function,
47276
- gridOverlayDimensions: String,
47277
- slots: {
47278
- type: Object,
47279
- optional: true
47280
- }
47281
- };
47282
46937
  static components = {
47283
46938
  FiguresContainer,
47284
46939
  GridAddRowsFooter
47285
46940
  };
47286
- static defaultProps = {
46941
+ props = (0, _odoo_owl.props)({
46942
+ "onCellDoubleClicked?": types$6.function([types$6.HeaderIndex(), types$6.HeaderIndex()]),
46943
+ "onCellClicked?": types$6.function([
46944
+ types$6.HeaderIndex(),
46945
+ types$6.HeaderIndex(),
46946
+ types$6.GridClickModifiers(),
46947
+ types$6.ZoomedMouseEvent()
46948
+ ]),
46949
+ "onCellRightClicked?": types$6.function([
46950
+ types$6.HeaderIndex(),
46951
+ types$6.HeaderIndex(),
46952
+ types$6.DOMCoordinates()
46953
+ ]),
46954
+ "onGridResized?": types$6.function([]),
46955
+ onGridMoved: types$6.function([types$6.Pixel(), types$6.Pixel()]),
46956
+ gridOverlayDimensions: types$6.string()
46957
+ }, {
47287
46958
  onCellDoubleClicked: () => {},
47288
46959
  onCellClicked: () => {},
47289
46960
  onCellRightClicked: () => {},
47290
46961
  onGridResized: () => {}
47291
- };
46962
+ });
47292
46963
  gridOverlayRef = (0, _odoo_owl.signal)(null);
47293
46964
  cellPopovers;
47294
46965
  paintFormatStore;
@@ -47398,12 +47069,12 @@ var GridOverlay = class extends Component {
47398
47069
  //#region src/components/grid_popover/grid_popover.ts
47399
47070
  var GridPopover = class extends Component {
47400
47071
  static template = "o-spreadsheet-GridPopover";
47401
- static props = {
47402
- onClosePopover: Function,
47403
- onMouseWheel: Function,
47404
- gridRect: Object
47405
- };
47406
47072
  static components = { Popover };
47073
+ props = (0, _odoo_owl.props)({
47074
+ onClosePopover: types$6.function([]),
47075
+ onMouseWheel: types$6.function([types$6.instanceOf(WheelEvent)]),
47076
+ gridRect: types$6.Rect()
47077
+ });
47407
47078
  cellPopovers;
47408
47079
  setup() {
47409
47080
  this.cellPopovers = useStore(CellPopoverStore);
@@ -47427,15 +47098,14 @@ var GridPopover = class extends Component {
47427
47098
  //#region src/components/headers_overlay/unhide_headers.ts
47428
47099
  var UnhideRowHeaders = class extends Component {
47429
47100
  static template = "o-spreadsheet-UnhideRowHeaders";
47430
- static props = {
47431
- headersGroups: Array,
47432
- headerRange: Object,
47433
- offset: {
47434
- type: Number,
47435
- optional: true
47436
- }
47437
- };
47438
- static defaultProps = { offset: 0 };
47101
+ props = (0, _odoo_owl.props)({
47102
+ headersGroups: types$6.array(),
47103
+ headerRange: types$6.object({
47104
+ start: types$6.HeaderIndex(),
47105
+ end: types$6.HeaderIndex()
47106
+ }),
47107
+ "offset?": types$6.number()
47108
+ }, { offset: 0 });
47439
47109
  get sheetId() {
47440
47110
  return this.env.model.getters.getActiveSheetId();
47441
47111
  }
@@ -47471,15 +47141,14 @@ var UnhideRowHeaders = class extends Component {
47471
47141
  };
47472
47142
  var UnhideColumnHeaders = class extends Component {
47473
47143
  static template = "o-spreadsheet-UnhideColumnHeaders";
47474
- static props = {
47475
- headersGroups: Array,
47476
- headerRange: Object,
47477
- offset: {
47478
- type: Number,
47479
- optional: true
47480
- }
47481
- };
47482
- static defaultProps = { offset: 0 };
47144
+ props = (0, _odoo_owl.props)({
47145
+ headersGroups: types$6.array(),
47146
+ headerRange: types$6.object({
47147
+ start: types$6.HeaderIndex(),
47148
+ end: types$6.HeaderIndex()
47149
+ }),
47150
+ "offset?": types$6.number()
47151
+ }, { offset: 0 });
47483
47152
  get sheetId() {
47484
47153
  return this.env.model.getters.getActiveSheetId();
47485
47154
  }
@@ -47510,8 +47179,13 @@ var UnhideColumnHeaders = class extends Component {
47510
47179
 
47511
47180
  //#endregion
47512
47181
  //#region src/components/headers_overlay/headers_overlay.ts
47182
+ const resizerPropsDefinition = { onOpenContextMenu: types$6.function([
47183
+ types$6.ContextMenuType(),
47184
+ types$6.Pixel(),
47185
+ types$6.Pixel()
47186
+ ]) };
47513
47187
  var AbstractResizer = class extends Component {
47514
- static props = { onOpenContextMenu: Function };
47188
+ props = (0, _odoo_owl.props)(resizerPropsDefinition);
47515
47189
  composerFocusStore;
47516
47190
  PADDING = 0;
47517
47191
  MAX_SIZE_MARGIN = 0;
@@ -47709,7 +47383,6 @@ var AbstractResizer = class extends Component {
47709
47383
  }
47710
47384
  };
47711
47385
  var ColResizer = class extends AbstractResizer {
47712
- static props = { onOpenContextMenu: Function };
47713
47386
  static template = "o-spreadsheet-ColResizer";
47714
47387
  static components = { UnhideColumnHeaders };
47715
47388
  colResizerRef = (0, _odoo_owl.signal)(null);
@@ -47844,7 +47517,6 @@ var ColResizer = class extends AbstractResizer {
47844
47517
  }
47845
47518
  };
47846
47519
  var RowResizer = class extends AbstractResizer {
47847
- static props = { onOpenContextMenu: Function };
47848
47520
  static template = "o-spreadsheet-RowResizer";
47849
47521
  static components = { UnhideRowHeaders };
47850
47522
  rowResizerRef = (0, _odoo_owl.signal)(null);
@@ -47975,8 +47647,8 @@ var RowResizer = class extends AbstractResizer {
47975
47647
  }
47976
47648
  };
47977
47649
  var HeadersOverlay = class extends Component {
47978
- static props = { onOpenContextMenu: Function };
47979
47650
  static template = "o-spreadsheet-HeadersOverlay";
47651
+ props = (0, _odoo_owl.props)(resizerPropsDefinition);
47980
47652
  static components = {
47981
47653
  ColResizer,
47982
47654
  RowResizer
@@ -48964,12 +48636,17 @@ function useWheelHandler(handler) {
48964
48636
  //#region src/components/highlight/border/border.ts
48965
48637
  var Border = class extends Component {
48966
48638
  static template = "o-spreadsheet-Border";
48967
- static props = {
48968
- zone: Object,
48969
- orientation: String,
48970
- isMoving: Boolean,
48971
- onMoveHighlight: Function
48972
- };
48639
+ props = (0, _odoo_owl.props)({
48640
+ zone: types$6.Zone(),
48641
+ orientation: types$6.or([
48642
+ types$6.literal("n"),
48643
+ types$6.literal("s"),
48644
+ types$6.literal("w"),
48645
+ types$6.literal("e")
48646
+ ]),
48647
+ isMoving: types$6.boolean(),
48648
+ onMoveHighlight: types$6.function([types$6.instanceOf(PointerEvent)])
48649
+ });
48973
48650
  get style() {
48974
48651
  const isTop = [
48975
48652
  "n",
@@ -49012,13 +48689,26 @@ var Border = class extends Component {
49012
48689
  const MOBILE_HANDLER_WIDTH = 40;
49013
48690
  var Corner = class extends Component {
49014
48691
  static template = "o-spreadsheet-Corner";
49015
- static props = {
49016
- zone: Object,
49017
- color: String,
49018
- orientation: String,
49019
- isResizing: Boolean,
49020
- onResizeHighlight: Function
49021
- };
48692
+ props = (0, _odoo_owl.props)({
48693
+ zone: types$6.Zone(),
48694
+ color: types$6.Color(),
48695
+ orientation: types$6.or([
48696
+ types$6.literal("nw"),
48697
+ types$6.literal("ne"),
48698
+ types$6.literal("sw"),
48699
+ types$6.literal("se"),
48700
+ types$6.literal("n"),
48701
+ types$6.literal("s"),
48702
+ types$6.literal("e"),
48703
+ types$6.literal("w")
48704
+ ]),
48705
+ isResizing: types$6.boolean(),
48706
+ onResizeHighlight: types$6.function([
48707
+ types$6.instanceOf(PointerEvent),
48708
+ types$6.ResizeDirection(),
48709
+ types$6.ResizeDirection()
48710
+ ])
48711
+ });
49022
48712
  dirX;
49023
48713
  dirY;
49024
48714
  setup() {
@@ -49073,14 +48763,14 @@ function orientationToDir(or) {
49073
48763
  //#region src/components/highlight/highlight/highlight.ts
49074
48764
  var Highlight = class extends Component {
49075
48765
  static template = "o-spreadsheet-Highlight";
49076
- static props = {
49077
- range: Object,
49078
- color: String
49079
- };
49080
48766
  static components = {
49081
48767
  Corner,
49082
48768
  Border
49083
48769
  };
48770
+ props = (0, _odoo_owl.props)({
48771
+ range: types$6.Range(),
48772
+ color: types$6.Color()
48773
+ });
49084
48774
  highlightState = (0, _odoo_owl.proxy)({ shiftingMode: "none" });
49085
48775
  dragNDropGrid = useDragAndDropBeyondTheViewport(this.env);
49086
48776
  get cornerOrientations() {
@@ -49221,20 +48911,20 @@ var ScrollBar = class extends Component {
49221
48911
  <div t-att-style="this.sizeCss"/>
49222
48912
  </div>
49223
48913
  `;
48914
+ props = (0, _odoo_owl.props)({
48915
+ "width?": types$6.Pixel(),
48916
+ "height?": types$6.Pixel(),
48917
+ direction: types$6.customValidator(types$6.string(), (direction) => ["horizontal", "vertical"].includes(direction)),
48918
+ position: types$6.CSSProperties(),
48919
+ offset: types$6.Pixel(),
48920
+ onScroll: types$6.function([types$6.Pixel()])
48921
+ }, {
48922
+ width: 1,
48923
+ height: 1
48924
+ });
49224
48925
  scrollbarRef = (0, _odoo_owl.signal)(null);
49225
48926
  scrollbar;
49226
48927
  setup() {
49227
- this.props = (0, _odoo_owl.props)({
49228
- "width?": _odoo_owl.types.number(),
49229
- "height?": _odoo_owl.types.number(),
49230
- direction: _odoo_owl.types.customValidator(_odoo_owl.types.string(), (direction) => ["horizontal", "vertical"].includes(direction)),
49231
- position: _odoo_owl.types.object({}),
49232
- offset: _odoo_owl.types.number(),
49233
- onScroll: _odoo_owl.types.function()
49234
- }, {
49235
- width: 1,
49236
- height: 1
49237
- });
49238
48928
  this.scrollbar = new ScrollBar$1(this.scrollbarRef(), this.props.direction);
49239
48929
  (0, _odoo_owl.onMounted)(() => {
49240
48930
  this.scrollbar.el = this.scrollbarRef();
@@ -49260,10 +48950,6 @@ var ScrollBar = class extends Component {
49260
48950
  //#endregion
49261
48951
  //#region src/components/scrollbar/scrollbar_horizontal.ts
49262
48952
  var HorizontalScrollBar = class extends Component {
49263
- static props = { leftOffset: {
49264
- type: Number,
49265
- optional: true
49266
- } };
49267
48953
  static components = { ScrollBar };
49268
48954
  static template = _odoo_owl.xml`
49269
48955
  <ScrollBar
@@ -49274,7 +48960,7 @@ var HorizontalScrollBar = class extends Component {
49274
48960
  direction="'horizontal'"
49275
48961
  onScroll.bind="this.onScroll"
49276
48962
  />`;
49277
- static defaultProps = { leftOffset: 0 };
48963
+ props = (0, _odoo_owl.props)({ "leftOffset?": types$6.number() }, { leftOffset: 0 });
49278
48964
  get offset() {
49279
48965
  return this.env.model.getters.getActiveSheetScrollInfo().scrollX;
49280
48966
  }
@@ -49307,10 +48993,6 @@ var HorizontalScrollBar = class extends Component {
49307
48993
  //#endregion
49308
48994
  //#region src/components/scrollbar/scrollbar_vertical.ts
49309
48995
  var VerticalScrollBar = class extends Component {
49310
- static props = { topOffset: {
49311
- type: Number,
49312
- optional: true
49313
- } };
49314
48996
  static components = { ScrollBar };
49315
48997
  static template = _odoo_owl.xml`
49316
48998
  <ScrollBar
@@ -49321,7 +49003,7 @@ var VerticalScrollBar = class extends Component {
49321
49003
  direction="'vertical'"
49322
49004
  onScroll.bind="(offset) => this.onScroll(offset)"
49323
49005
  />`;
49324
- static defaultProps = { topOffset: 0 };
49006
+ props = (0, _odoo_owl.props)({ "topOffset?": types$6.number() }, { topOffset: 0 });
49325
49007
  get offset() {
49326
49008
  return this.env.model.getters.getActiveSheetScrollInfo().scrollY;
49327
49009
  }
@@ -49355,7 +49037,6 @@ var VerticalScrollBar = class extends Component {
49355
49037
  //#region src/components/selection/selection.ts
49356
49038
  var Selection = class extends Component {
49357
49039
  static template = "o-spreadsheet-Selection";
49358
- static props = {};
49359
49040
  static components = { Highlight };
49360
49041
  get highlightProps() {
49361
49042
  const sheetId = this.env.model.getters.getActiveSheetId();
@@ -49373,7 +49054,7 @@ const SIZE = 3;
49373
49054
  const COLOR = "#777";
49374
49055
  var TableResizer = class extends Component {
49375
49056
  static template = "o-spreadsheet-TableResizer";
49376
- static props = { table: Object };
49057
+ props = (0, _odoo_owl.props)({ table: types$6.Table() });
49377
49058
  state = (0, _odoo_owl.proxy)({ highlightZone: void 0 });
49378
49059
  dragNDropGrid = useDragAndDropBeyondTheViewport(this.env);
49379
49060
  setup() {
@@ -49446,10 +49127,6 @@ const registries$1 = {
49446
49127
  };
49447
49128
  var Grid = class extends Component {
49448
49129
  static template = "o-spreadsheet-Grid";
49449
- static props = {
49450
- exposeFocus: Function,
49451
- getGridSize: Function
49452
- };
49453
49130
  static components = {
49454
49131
  GridComposer,
49455
49132
  GridOverlay,
@@ -49465,6 +49142,10 @@ var Grid = class extends Component {
49465
49142
  TableResizer,
49466
49143
  Selection
49467
49144
  };
49145
+ props = (0, _odoo_owl.props)({
49146
+ exposeFocus: types$6.function([types$6.function([])]),
49147
+ getGridSize: types$6.function([], types$6.DOMDimension())
49148
+ });
49468
49149
  HEADER_HEIGHT = 26;
49469
49150
  HEADER_WIDTH = 48;
49470
49151
  menuState;
@@ -50104,10 +49785,10 @@ supportedPivotPositionalFormulaRegistry.add("SPREADSHEET", false);
50104
49785
  //#region src/components/dashboard/clickable_cell_sort_icon/clickable_cell_sort_icon.ts
50105
49786
  var ClickableCellSortIcon = class extends Component {
50106
49787
  static template = "o-spreadsheet-ClickableCellSortIcon";
50107
- static props = {
50108
- position: Object,
50109
- sortDirection: String
50110
- };
49788
+ props = (0, _odoo_owl.props)({
49789
+ position: types$6.CellPosition(),
49790
+ sortDirection: types$6.or([types$6.SortDirection, types$6.literal("none")])
49791
+ });
50111
49792
  hoveredTableStore;
50112
49793
  setup() {
50113
49794
  this.hoveredTableStore = useStore(HoveredTableStore);
@@ -50140,7 +49821,6 @@ var ClickableCellSortIcon = class extends Component {
50140
49821
  //#region src/components/full_screen_figure/full_screen_figure.ts
50141
49822
  var FullScreenFigure = class extends Component {
50142
49823
  static template = "o-spreadsheet-FullScreenFigure";
50143
- static props = {};
50144
49824
  static components = { ChartFigure };
50145
49825
  fullScreenFigureStore;
50146
49826
  fullScreenFigureRef = (0, _odoo_owl.signal)(null);
@@ -50180,10 +49860,10 @@ var FullScreenFigure = class extends Component {
50180
49860
  var PivotHTMLRenderer = class extends Component {
50181
49861
  static template = "o_spreadsheet.PivotHTMLRenderer";
50182
49862
  static components = { Checkbox };
50183
- static props = {
50184
- pivotId: String,
50185
- onCellClicked: Function
50186
- };
49863
+ props = (0, _odoo_owl.props)({
49864
+ pivotId: types$6.UID(),
49865
+ onCellClicked: types$6.function([types$6.string()])
49866
+ });
50187
49867
  pivot = this.env.model.getters.getPivot(this.props.pivotId);
50188
49868
  data = {
50189
49869
  columns: [],
@@ -60902,7 +60582,8 @@ const invalidateTableStyleCommandsSet = new Set([
60902
60582
  "REMOVE_TABLE",
60903
60583
  "RESIZE_TABLE",
60904
60584
  "CREATE_TABLE_STYLE",
60905
- "REMOVE_TABLE_STYLE"
60585
+ "REMOVE_TABLE_STYLE",
60586
+ "DELETE_CONTENT"
60906
60587
  ]);
60907
60588
  function doesCommandInvalidatesTableStyle(cmd) {
60908
60589
  return invalidateTableStyleCommandsSet.has(cmd.type);
@@ -64705,7 +64386,7 @@ var ClipboardPlugin = class extends UIPlugin {
64705
64386
  if (this.getters.getFigure(figureSheetId, figureId).tag === "image") innerHTML = await this.craftImageHTML(figureId);
64706
64387
  else innerHTML = " ";
64707
64388
  } else innerHTML = " ";
64708
- else if (cells.length === 1 && cells[0].length === 1) innerHTML = `${this.getters.getCellText(cells[0][0].position)}`;
64389
+ else if (cells.length === 1 && cells[0].length === 1) innerHTML = xmlEscape(`${this.getters.getCellText(cells[0][0].position)}`);
64709
64390
  else if (!cells[0][0]) return "";
64710
64391
  else {
64711
64392
  let htmlTable = `<table border="1" style="border-collapse:collapse">`;
@@ -68062,20 +67743,22 @@ const RIPPLE_KEY_FRAMES = [
68062
67743
  ];
68063
67744
  var RippleEffect = class extends Component {
68064
67745
  static template = "o-spreadsheet-RippleEffect";
68065
- static props = {
68066
- x: String,
68067
- y: String,
68068
- color: String,
68069
- opacity: Number,
68070
- duration: Number,
68071
- width: Number,
68072
- height: Number,
68073
- offsetY: Number,
68074
- offsetX: Number,
68075
- allowOverflow: Boolean,
68076
- onAnimationEnd: Function,
68077
- style: String
68078
- };
67746
+ props = (0, _odoo_owl.props)({
67747
+ x: _odoo_owl.types.string(),
67748
+ y: _odoo_owl.types.string(),
67749
+ color: _odoo_owl.types.string(),
67750
+ opacity: _odoo_owl.types.number(),
67751
+ duration: _odoo_owl.types.number(),
67752
+ /** Width of the ripple. Defaults to the width of the element the ripple is on (without margins). */
67753
+ width: _odoo_owl.types.number(),
67754
+ /** Height of the ripple. Defaults to the height of the element the ripple is on (without margins). */
67755
+ height: _odoo_owl.types.number(),
67756
+ offsetY: _odoo_owl.types.number(),
67757
+ offsetX: _odoo_owl.types.number(),
67758
+ allowOverflow: _odoo_owl.types.boolean(),
67759
+ onAnimationEnd: _odoo_owl.types.function(),
67760
+ style: _odoo_owl.types.string()
67761
+ });
68079
67762
  rippleRef = (0, _odoo_owl.signal)(null);
68080
67763
  setup() {
68081
67764
  let animation = void 0;
@@ -68112,66 +67795,31 @@ var RippleEffect = class extends Component {
68112
67795
  };
68113
67796
  var Ripple = class extends Component {
68114
67797
  static template = "o-spreadsheet-Ripple";
68115
- static props = {
68116
- color: {
68117
- type: String,
68118
- optional: true
68119
- },
68120
- opacity: {
68121
- type: Number,
68122
- optional: true
68123
- },
68124
- duration: {
68125
- type: Number,
68126
- optional: true
68127
- },
68128
- ignoreClickPosition: {
68129
- type: Boolean,
68130
- optional: true
68131
- },
68132
- width: {
68133
- type: Number,
68134
- optional: true
68135
- },
68136
- height: {
68137
- type: Number,
68138
- optional: true
68139
- },
68140
- offsetY: {
68141
- type: Number,
68142
- optional: true
68143
- },
68144
- offsetX: {
68145
- type: Number,
68146
- optional: true
68147
- },
68148
- allowOverflow: {
68149
- type: Boolean,
68150
- optional: true
68151
- },
68152
- enabled: {
68153
- type: Boolean,
68154
- optional: true
68155
- },
68156
- onAnimationEnd: {
68157
- type: Function,
68158
- optional: true
68159
- },
68160
- slots: Object,
68161
- class: {
68162
- type: String,
68163
- optional: true
68164
- }
68165
- };
68166
67798
  static components = { RippleEffect };
68167
- static defaultProps = {
67799
+ props = (0, _odoo_owl.props)({
67800
+ "color?": _odoo_owl.types.string(),
67801
+ "opacity?": _odoo_owl.types.number(),
67802
+ "duration?": _odoo_owl.types.number(),
67803
+ /** If true, the ripple will play from the element center instead of the position of the click */
67804
+ "ignoreClickPosition?": _odoo_owl.types.boolean(),
67805
+ /** Width of the ripple. Defaults to the width of the element the ripple is on (without margins). */
67806
+ "width?": _odoo_owl.types.number(),
67807
+ /** Height of the ripple. Defaults to the height of the element the ripple is on (without margins). */
67808
+ "height?": _odoo_owl.types.number(),
67809
+ "offsetY?": _odoo_owl.types.number(),
67810
+ "offsetX?": _odoo_owl.types.number(),
67811
+ "allowOverflow?": _odoo_owl.types.boolean(),
67812
+ "enabled?": _odoo_owl.types.boolean(),
67813
+ "onAnimationEnd?": _odoo_owl.types.function(),
67814
+ "class?": _odoo_owl.types.string()
67815
+ }, {
68168
67816
  color: "#aaaaaa",
68169
67817
  opacity: .4,
68170
67818
  duration: 800,
68171
67819
  enabled: true,
68172
67820
  onAnimationEnd: () => {},
68173
67821
  class: ""
68174
- };
67822
+ });
68175
67823
  childContainerRef = (0, _odoo_owl.signal)(null);
68176
67824
  state = (0, _odoo_owl.proxy)({ ripples: [] });
68177
67825
  currentId = 1;
@@ -68419,26 +68067,19 @@ const getSheetLockAnimation = (duration, iterations) => {
68419
68067
  };
68420
68068
  var BottomBarSheet = class extends Component {
68421
68069
  static template = "o-spreadsheet-BottomBarSheet";
68422
- static props = {
68423
- sheetId: String,
68424
- openContextMenu: Function,
68425
- style: {
68426
- type: String,
68427
- optional: true
68428
- },
68429
- onMouseDown: {
68430
- type: Function,
68431
- optional: true
68432
- }
68433
- };
68434
68070
  static components = {
68435
68071
  Ripple,
68436
68072
  ColorPicker
68437
68073
  };
68438
- static defaultProps = {
68074
+ props = (0, _odoo_owl.props)({
68075
+ sheetId: _odoo_owl.types.string(),
68076
+ openContextMenu: _odoo_owl.types.function([_odoo_owl.types.instanceOf(MenuItemRegistry), _odoo_owl.types.instanceOf(MouseEvent)]),
68077
+ "style?": _odoo_owl.types.string(),
68078
+ "onMouseDown?": _odoo_owl.types.function([_odoo_owl.types.instanceOf(PointerEvent)])
68079
+ }, {
68439
68080
  onMouseDown: () => {},
68440
68081
  style: ""
68441
- };
68082
+ });
68442
68083
  state = (0, _odoo_owl.proxy)({
68443
68084
  isEditing: false,
68444
68085
  pickerOpened: false
@@ -68699,11 +68340,15 @@ var AggregateStatisticsStore = class extends SpreadsheetStore {
68699
68340
  //#region src/components/bottom_bar/bottom_bar_statistic/bottom_bar_statistic.ts
68700
68341
  var BottomBarStatistic = class extends Component {
68701
68342
  static template = "o-spreadsheet-BottomBarStatistic";
68702
- static props = {
68703
- openContextMenu: Function,
68704
- closeContextMenu: Function
68705
- };
68706
68343
  static components = { Ripple };
68344
+ props = (0, _odoo_owl.props)({
68345
+ openContextMenu: _odoo_owl.types.function([
68346
+ _odoo_owl.types.number(),
68347
+ _odoo_owl.types.number(),
68348
+ _odoo_owl.types.instanceOf(MenuItemRegistry)
68349
+ ]),
68350
+ closeContextMenu: _odoo_owl.types.function([])
68351
+ });
68707
68352
  state = (0, _odoo_owl.proxy)({ selectedStatisticFn: "" });
68708
68353
  store;
68709
68354
  setup() {
@@ -68746,7 +68391,7 @@ var BottomBarStatistic = class extends Component {
68746
68391
  const MENU_MAX_HEIGHT = 250;
68747
68392
  var BottomBar = class extends Component {
68748
68393
  static template = "o-spreadsheet-BottomBar";
68749
- static props = { onClick: Function };
68394
+ props = (0, _odoo_owl.props)({ onClick: _odoo_owl.types.function([]) });
68750
68395
  static components = {
68751
68396
  MenuPopover,
68752
68397
  Ripple,
@@ -69022,7 +68667,6 @@ var ClickableCellsStore = class extends SpreadsheetStore {
69022
68667
  //#region src/components/dashboard/dashboard.ts
69023
68668
  var SpreadsheetDashboard = class extends Component {
69024
68669
  static template = "o-spreadsheet-SpreadsheetDashboard";
69025
- static props = { getGridSize: Function };
69026
68670
  static components = {
69027
68671
  GridOverlay,
69028
68672
  GridPopover,
@@ -69030,6 +68674,7 @@ var SpreadsheetDashboard = class extends Component {
69030
68674
  VerticalScrollBar,
69031
68675
  HorizontalScrollBar
69032
68676
  };
68677
+ props = (0, _odoo_owl.props)({ getGridSize: types$6.function([], types$6.DOMDimension()) });
69033
68678
  cellPopovers;
69034
68679
  onMouseWheel;
69035
68680
  canvasPosition;
@@ -69142,11 +68787,11 @@ var SpreadsheetDashboard = class extends Component {
69142
68787
  //#region src/components/header_group/header_group.ts
69143
68788
  var AbstractHeaderGroup = class extends Component {
69144
68789
  static template = "o-spreadsheet-HeaderGroup";
69145
- static props = {
69146
- group: Object,
69147
- layerOffset: Number,
69148
- openContextMenu: Function
69149
- };
68790
+ props = (0, _odoo_owl.props)({
68791
+ group: types$6.HeaderGroup(),
68792
+ layerOffset: types$6.number(),
68793
+ openContextMenu: types$6.function([types$6.DOMCoordinates(), types$6.ArrayOf()])
68794
+ });
69150
68795
  toggleGroup() {
69151
68796
  const sheetId = this.env.model.getters.getActiveSheetId();
69152
68797
  const { start, end } = this.props.group;
@@ -69291,15 +68936,15 @@ var ColGroup = class extends AbstractHeaderGroup {
69291
68936
  //#region src/components/header_group/header_group_container.ts
69292
68937
  var HeaderGroupContainer = class extends Component {
69293
68938
  static template = "o-spreadsheet-HeaderGroupContainer";
69294
- static props = {
69295
- dimension: String,
69296
- layers: Array
69297
- };
69298
68939
  static components = {
69299
68940
  RowGroup,
69300
68941
  ColGroup,
69301
68942
  MenuPopover
69302
68943
  };
68944
+ props = (0, _odoo_owl.props)({
68945
+ dimension: types$6.Dimension(),
68946
+ layers: types$6.array()
68947
+ });
69303
68948
  menu = (0, _odoo_owl.proxy)({
69304
68949
  isOpen: false,
69305
68950
  anchorRect: null,
@@ -69372,29 +69017,17 @@ function useScreenWidth() {
69372
69017
  //#region src/components/side_panel/side_panel/side_panel.ts
69373
69018
  var SidePanel = class extends Component {
69374
69019
  static template = "o-spreadsheet-SidePanel";
69375
- static props = {
69376
- panelContent: Object,
69377
- panelProps: Object,
69378
- onCloseSidePanel: Function,
69379
- onStartHandleDrag: Function,
69380
- onResetPanelSize: Function,
69381
- isPinned: {
69382
- type: Boolean,
69383
- optional: true
69384
- },
69385
- onTogglePinPanel: {
69386
- type: Function,
69387
- optional: true
69388
- },
69389
- onToggleCollapsePanel: {
69390
- type: Function,
69391
- optional: true
69392
- },
69393
- isCollapsed: {
69394
- type: Boolean,
69395
- optional: true
69396
- }
69397
- };
69020
+ props = (0, _odoo_owl.props)({
69021
+ panelContent: types$6.SidePanelContent(),
69022
+ panelProps: types$6.SidePanelComponentProps(),
69023
+ onCloseSidePanel: types$6.function([]),
69024
+ onStartHandleDrag: types$6.function([types$6.instanceOf(MouseEvent)]),
69025
+ onResetPanelSize: types$6.function([]),
69026
+ "isPinned?": types$6.boolean(),
69027
+ "onTogglePinPanel?": types$6.function([]),
69028
+ "onToggleCollapsePanel?": types$6.function([]),
69029
+ "isCollapsed?": types$6.boolean()
69030
+ });
69398
69031
  spreadsheetRect = useSpreadsheetRect();
69399
69032
  getTitle() {
69400
69033
  const panel = this.props.panelContent;
@@ -69406,7 +69039,6 @@ var SidePanel = class extends Component {
69406
69039
  //#region src/components/side_panel/side_panels/side_panels.ts
69407
69040
  var SidePanels = class extends Component {
69408
69041
  static template = "o-spreadsheet-SidePanels";
69409
- static props = {};
69410
69042
  static components = { SidePanel };
69411
69043
  sidePanelStore;
69412
69044
  spreadsheetRect = useSpreadsheetRect();
@@ -69478,8 +69110,8 @@ var SidePanels = class extends Component {
69478
69110
  //#region src/components/small_bottom_bar/ribbon_menu/ribbon_menu.ts
69479
69111
  var RibbonMenu = class extends Component {
69480
69112
  static template = "o-spreadsheet-RibbonMenu";
69481
- static props = { onClose: Function };
69482
69113
  static components = { Menu };
69114
+ props = (0, _odoo_owl.props)({ onClose: types$6.function([]) });
69483
69115
  rootItems = topbarMenuRegistry.getMenuItems();
69484
69116
  menuRef = (0, _odoo_owl.signal)(null);
69485
69117
  containerRef = (0, _odoo_owl.signal)(null);
@@ -69517,9 +69149,6 @@ var RibbonMenu = class extends Component {
69517
69149
  onClickMenu: this.onClickMenu.bind(this)
69518
69150
  };
69519
69151
  }
69520
- get style() {
69521
- return cssPropertiesToCss({ height: `${this.props.height}px` });
69522
- }
69523
69152
  updateShadows() {
69524
69153
  const el = this.containerRef();
69525
69154
  if (!el) return;
@@ -69553,7 +69182,7 @@ var SmallBottomBar = class extends Component {
69553
69182
  RibbonMenu
69554
69183
  };
69555
69184
  static template = "o-spreadsheet-SmallBottomBar";
69556
- static props = { onClick: Function };
69185
+ props = (0, _odoo_owl.props)({ onClick: types$6.function([]) });
69557
69186
  composerFocusStore;
69558
69187
  composerStore;
69559
69188
  composerInterface;
@@ -69754,11 +69383,11 @@ var FigureRendererStore = class extends DisposableStore {
69754
69383
  //#region src/components/standalone_grid_canvas/standalone_grid_canvas.ts
69755
69384
  var StandaloneGridCanvas = class extends Component {
69756
69385
  static template = "o-spreadsheet-StandaloneGridCanvas";
69757
- static props = {
69758
- sheetId: String,
69759
- zone: Object,
69760
- renderingCtx: Object
69761
- };
69386
+ props = (0, _odoo_owl.props)({
69387
+ sheetId: types$6.UID(),
69388
+ zone: types$6.Zone(),
69389
+ renderingCtx: types$6.object({})
69390
+ });
69762
69391
  canvasRef = (0, _odoo_owl.signal)(null);
69763
69392
  rendererStore;
69764
69393
  figureRendererStore;
@@ -70079,7 +69708,7 @@ var SpreadsheetPrintStore = class extends SpreadsheetStore {
70079
69708
  //#region src/components/spreadsheet_print/spreadsheet_print.ts
70080
69709
  var SpreadsheetPrint = class extends Component {
70081
69710
  static template = "o-spreadsheet-SpreadsheetPrint";
70082
- static props = { onExitPrintMode: Function };
69711
+ props = (0, _odoo_owl.props)({ onExitPrintMode: types$6.function([]) });
70083
69712
  static components = {
70084
69713
  StandaloneGridCanvas,
70085
69714
  Section,
@@ -70141,7 +69770,6 @@ var SpreadsheetPrint = class extends Component {
70141
69770
  const COMPOSER_MAX_HEIGHT = 300;
70142
69771
  var TopBarComposer = class extends Component {
70143
69772
  static template = "o-spreadsheet-TopBarComposer";
70144
- static props = {};
70145
69773
  static components = { Composer };
70146
69774
  composerFocusStore;
70147
69775
  composerStore;
@@ -70226,7 +69854,6 @@ function useToolBarDropdownStore() {
70226
69854
  //#region src/components/named_range_selector/named_range_selector.ts
70227
69855
  var NamedRangeSelector = class extends Component {
70228
69856
  static template = "o-spreadsheet-NamedRangeSelector";
70229
- static props = {};
70230
69857
  static components = {
70231
69858
  TextInput,
70232
69859
  MenuPopover
@@ -70409,36 +70036,21 @@ const BORDER_POSITIONS = [[
70409
70036
  ]];
70410
70037
  var BorderEditor = class extends Component {
70411
70038
  static template = "o-spreadsheet-BorderEditor";
70412
- static props = {
70413
- class: {
70414
- type: String,
70415
- optional: true
70416
- },
70417
- currentBorderColor: {
70418
- type: String,
70419
- optional: false
70420
- },
70421
- currentBorderStyle: {
70422
- type: String,
70423
- optional: false
70424
- },
70425
- currentBorderPosition: {
70426
- type: String,
70427
- optional: true
70428
- },
70429
- onBorderColorPicked: Function,
70430
- onBorderStylePicked: Function,
70431
- onBorderPositionPicked: Function,
70432
- maxHeight: {
70433
- type: Number,
70434
- optional: true
70435
- },
70436
- anchorRect: Object
70437
- };
70438
70039
  static components = {
70439
70040
  ColorPickerWidget,
70440
70041
  Popover
70441
70042
  };
70043
+ props = (0, _odoo_owl.props)({
70044
+ "class?": types$6.string(),
70045
+ currentBorderColor: types$6.Color(),
70046
+ currentBorderStyle: types$6.BorderStyle(),
70047
+ "currentBorderPosition?": types$6.BorderPosition(),
70048
+ onBorderColorPicked: types$6.function([types$6.Color()]),
70049
+ onBorderStylePicked: types$6.function([types$6.BorderStyle()]),
70050
+ onBorderPositionPicked: types$6.function([types$6.BorderPosition()]),
70051
+ "maxHeight?": types$6.Pixel(),
70052
+ anchorRect: types$6.Rect()
70053
+ });
70442
70054
  BORDER_POSITIONS = BORDER_POSITIONS;
70443
70055
  lineStyleButtonRef = (0, _odoo_owl.signal)(null);
70444
70056
  borderStyles = borderStyles;
@@ -70499,21 +70111,12 @@ var BorderEditor = class extends Component {
70499
70111
  //#region src/components/border_editor/border_editor_widget.ts
70500
70112
  var BorderEditorWidget = class extends Component {
70501
70113
  static template = "o-spreadsheet-BorderEditorWidget";
70502
- static props = {
70503
- disabled: {
70504
- type: Boolean,
70505
- optional: true
70506
- },
70507
- dropdownMaxHeight: {
70508
- type: Number,
70509
- optional: true
70510
- },
70511
- class: {
70512
- type: String,
70513
- optional: true
70514
- }
70515
- };
70516
70114
  static components = { BorderEditor };
70115
+ props = (0, _odoo_owl.props)({
70116
+ "disabled?": types$6.boolean(),
70117
+ "dropdownMaxHeight?": types$6.Pixel(),
70118
+ "class?": types$6.string()
70119
+ });
70517
70120
  topBarToolStore;
70518
70121
  borderEditorButtonRef = (0, _odoo_owl.signal)(null);
70519
70122
  state = (0, _odoo_owl.proxy)({
@@ -70570,10 +70173,7 @@ var BorderEditorWidget = class extends Component {
70570
70173
  //#region src/components/paint_format_button/paint_format_button.ts
70571
70174
  var PaintFormatButton = class extends Component {
70572
70175
  static template = "o-spreadsheet-PaintFormatButton";
70573
- static props = { class: {
70574
- type: String,
70575
- optional: true
70576
- } };
70176
+ props = (0, _odoo_owl.props)({ "class?": types$6.string() });
70577
70177
  paintFormatStore;
70578
70178
  setup() {
70579
70179
  this.paintFormatStore = useStore(PaintFormatStore);
@@ -70598,10 +70198,7 @@ var TableDropdownButton = class extends Component {
70598
70198
  TableStylesPopover,
70599
70199
  ActionButton
70600
70200
  };
70601
- static props = { class: {
70602
- type: String,
70603
- optional: true
70604
- } };
70201
+ props = (0, _odoo_owl.props)({ "class?": types$6.string() });
70605
70202
  topBarToolStore;
70606
70203
  state = (0, _odoo_owl.proxy)({ popoverProps: void 0 });
70607
70204
  setup() {
@@ -70690,13 +70287,13 @@ var TableDropdownButton = class extends Component {
70690
70287
  //#region src/components/top_bar/color_editor/color_editor.ts
70691
70288
  var TopBarColorEditor = class extends Component {
70692
70289
  static components = { ColorPickerWidget };
70693
- static props = {
70694
- class: String,
70695
- style: String,
70696
- icon: String,
70697
- title: String
70698
- };
70699
70290
  static template = "o-spreadsheet-ColorEditor";
70291
+ props = (0, _odoo_owl.props)({
70292
+ class: types$6.string(),
70293
+ style: types$6.or([types$6.literal("textColor"), types$6.literal("fillColor")]),
70294
+ icon: types$6.string(),
70295
+ title: types$6.string()
70296
+ });
70700
70297
  topBarToolStore;
70701
70298
  state = (0, _odoo_owl.proxy)({ isOpen: false });
70702
70299
  setup() {
@@ -70726,12 +70323,12 @@ var DropdownAction = class extends Component {
70726
70323
  ActionButton,
70727
70324
  Popover
70728
70325
  };
70729
- static props = {
70730
- parentAction: Object,
70731
- childActions: Array,
70732
- class: String,
70733
- childClass: String
70734
- };
70326
+ props = (0, _odoo_owl.props)({
70327
+ parentAction: types$6.ActionSpec(),
70328
+ childActions: types$6.array(types$6.ActionSpec()),
70329
+ class: types$6.string(),
70330
+ childClass: types$6.string()
70331
+ });
70735
70332
  topBarToolStore;
70736
70333
  actionRef = (0, _odoo_owl.signal)(null);
70737
70334
  setup() {
@@ -70758,8 +70355,8 @@ var DropdownAction = class extends Component {
70758
70355
  //#region src/components/top_bar/font_size_editor/font_size_editor.ts
70759
70356
  var TopBarFontSizeEditor = class extends Component {
70760
70357
  static components = { FontSizeEditor };
70761
- static props = { class: String };
70762
70358
  static template = "o-spreadsheet-TopBarFontSizeEditor";
70359
+ props = (0, _odoo_owl.props)({ class: _odoo_owl.types.string() });
70763
70360
  topBarToolStore;
70764
70361
  setup() {
70765
70362
  this.topBarToolStore = useToolBarDropdownStore();
@@ -70793,7 +70390,7 @@ var NumberFormatsTool = class extends Component {
70793
70390
  MenuPopover,
70794
70391
  ActionButton
70795
70392
  };
70796
- static props = { class: String };
70393
+ props = (0, _odoo_owl.props)({ class: types$6.string() });
70797
70394
  formatNumberMenuItemSpec = formatNumberMenuItemSpec;
70798
70395
  topBarToolStore;
70799
70396
  buttonRef = (0, _odoo_owl.signal)(null);
@@ -70828,7 +70425,7 @@ var NumberFormatsTool = class extends Component {
70828
70425
  var ToolBarZoom = class extends Component {
70829
70426
  static template = "o-spreadsheet-TopBarZoom";
70830
70427
  static components = { NumberEditor };
70831
- static props = { class: String };
70428
+ props = (0, _odoo_owl.props)({ class: types$6.string() });
70832
70429
  topBarToolStore;
70833
70430
  valueList = ZOOM_VALUES;
70834
70431
  setup() {
@@ -71054,10 +70651,10 @@ topBarToolBarRegistry.add("edit").addChild("edit", {
71054
70651
  //#region src/components/top_bar/top_bar.ts
71055
70652
  var TopBar = class extends Component {
71056
70653
  static template = "o-spreadsheet-TopBar";
71057
- static props = {
71058
- onClick: Function,
71059
- dropdownMaxHeight: Number
71060
- };
70654
+ props = (0, _odoo_owl.props)({
70655
+ onClick: types$6.function([]),
70656
+ dropdownMaxHeight: types$6.Pixel()
70657
+ });
71061
70658
  static components = {
71062
70659
  MenuPopover,
71063
70660
  TopBarComposer,
@@ -71332,21 +70929,16 @@ var WebClipboardWrapper = class {
71332
70929
  //#region src/components/spreadsheet/spreadsheet.ts
71333
70930
  var Spreadsheet = class extends Component {
71334
70931
  static template = "o-spreadsheet-Spreadsheet";
71335
- static props = {
71336
- model: Object,
71337
- notifyUser: {
71338
- type: Function,
71339
- optional: true
71340
- },
71341
- raiseError: {
71342
- type: Function,
71343
- optional: true
71344
- },
71345
- askConfirmation: {
71346
- type: Function,
71347
- optional: true
71348
- }
71349
- };
70932
+ props = (0, _odoo_owl.props)({
70933
+ model: types$6.Model(),
70934
+ "notifyUser?": types$6.function([types$6.InformationNotification()]),
70935
+ "raiseError?": types$6.function([types$6.string(), types$6.function([])]),
70936
+ "askConfirmation?": types$6.function([
70937
+ types$6.string(),
70938
+ types$6.function([]),
70939
+ types$6.function([])
70940
+ ])
70941
+ });
71350
70942
  static components = {
71351
70943
  TopBar,
71352
70944
  Grid,
@@ -76924,13 +76516,10 @@ const ERROR_TOOLTIP_MAX_HEIGHT = 80;
76924
76516
  var ErrorToolTip = class extends Component {
76925
76517
  static maxSize = { maxHeight: ERROR_TOOLTIP_MAX_HEIGHT };
76926
76518
  static template = "o-spreadsheet-ErrorToolTip";
76927
- static props = {
76928
- cellPosition: Object,
76929
- onClosed: {
76930
- type: Function,
76931
- optional: true
76932
- }
76933
- };
76519
+ props = (0, _odoo_owl.props)({
76520
+ cellPosition: types$6.CellPosition(),
76521
+ "onClosed?": types$6.function([])
76522
+ });
76934
76523
  get dataValidationErrorMessage() {
76935
76524
  return this.env.model.getters.getInvalidDataValidationMessage(this.props.cellPosition);
76936
76525
  }
@@ -77006,18 +76595,15 @@ const ErrorToolTipPopoverBuilder = { onHover: (position, getters) => {
77006
76595
  //#region src/components/filters/filter_menu/filter_menu.ts
77007
76596
  var FilterMenu = class extends Component {
77008
76597
  static template = "o-spreadsheet-FilterMenu";
77009
- static props = {
77010
- filterPosition: Object,
77011
- onClosed: {
77012
- type: Function,
77013
- optional: true
77014
- }
77015
- };
77016
76598
  static components = {
77017
76599
  FilterMenuValueList,
77018
76600
  SidePanelCollapsible,
77019
76601
  FilterMenuCriterion
77020
76602
  };
76603
+ props = (0, _odoo_owl.props)({
76604
+ filterPosition: types$6.Position(),
76605
+ "onClosed?": types$6.function([])
76606
+ });
77021
76607
  state;
77022
76608
  criterionCategory = "text";
77023
76609
  updatedCriterionValue;
@@ -77194,13 +76780,10 @@ const FilterMenuPopoverBuilder = { onOpen: (position, getters) => {
77194
76780
  //#region src/components/link/link_display/link_display.ts
77195
76781
  var LinkDisplay = class extends Component {
77196
76782
  static template = "o-spreadsheet-LinkDisplay";
77197
- static props = {
77198
- cellPosition: Object,
77199
- onClosed: {
77200
- type: Function,
77201
- optional: true
77202
- }
77203
- };
76783
+ props = (0, _odoo_owl.props)({
76784
+ cellPosition: types$6.CellPosition(),
76785
+ "onClosed?": types$6.function([])
76786
+ });
77204
76787
  cellPopovers;
77205
76788
  setup() {
77206
76789
  this.cellPopovers = useStore(CellPopoverStore);
@@ -77270,14 +76853,11 @@ const LinkCellPopoverBuilder = { onHover: (position, getters) => {
77270
76853
  //#region src/components/link/link_editor/link_editor.ts
77271
76854
  var LinkEditor = class extends Component {
77272
76855
  static template = "o-spreadsheet-LinkEditor";
77273
- static props = {
77274
- cellPosition: Object,
77275
- onClosed: {
77276
- type: Function,
77277
- optional: true
77278
- }
77279
- };
77280
76856
  static components = { MenuPopover };
76857
+ props = (0, _odoo_owl.props)({
76858
+ cellPosition: types$6.CellPosition(),
76859
+ "onClosed?": types$6.function([])
76860
+ });
77281
76861
  static size = { maxHeight: 500 };
77282
76862
  urlInput = (0, _odoo_owl.signal)(null);
77283
76863
  suggestionListRef = (0, _odoo_owl.signal)(null);
@@ -86664,7 +86244,8 @@ const registries = {
86664
86244
  supportedPivotPositionalFormulaRegistry,
86665
86245
  pivotToFunctionValueRegistry,
86666
86246
  migrationStepRegistry,
86667
- chartJsExtensionRegistry
86247
+ chartJsExtensionRegistry,
86248
+ onIterationEndEvaluationRegistry
86668
86249
  };
86669
86250
  const helpers = {
86670
86251
  arg,
@@ -86737,7 +86318,10 @@ const helpers = {
86737
86318
  parseFormat,
86738
86319
  isFormula,
86739
86320
  domainToColRowDomain,
86740
- collapseHierarchicalDisplayName
86321
+ collapseHierarchicalDisplayName,
86322
+ getCanonicalSymbolName,
86323
+ fuzzyLookup,
86324
+ replaceSymbolInFormula
86741
86325
  };
86742
86326
  const links = {
86743
86327
  isMarkdownLink,
@@ -86788,6 +86372,7 @@ const components = {
86788
86372
  MenuPopover,
86789
86373
  Popover,
86790
86374
  SelectionInput,
86375
+ StandaloneComposer,
86791
86376
  ValidationMessages,
86792
86377
  AddDimensionButton,
86793
86378
  PivotDimensionGranularity,
@@ -86909,12 +86494,14 @@ exports.astToFormula = astToFormula;
86909
86494
  exports.availableConditionalFormatOperators = availableConditionalFormatOperators;
86910
86495
  exports.availableDataValidationOperators = availableDataValidationOperators;
86911
86496
  exports.availableFiltersOperators = availableFiltersOperators;
86497
+ exports.borderPositions = borderPositions;
86912
86498
  exports.borderStyles = borderStyles;
86913
86499
  exports.canExecuteInReadonly = canExecuteInReadonly;
86914
86500
  exports.categories = categories;
86915
86501
  exports.chartHelpers = chartHelpers;
86916
86502
  exports.compatibility = compatibility;
86917
86503
  exports.components = components;
86504
+ exports.composerFocusTypes = composerFocusTypes;
86918
86505
  exports.constants = constants;
86919
86506
  exports.convertAstNodes = convertAstNodes;
86920
86507
  exports.coreTypes = coreTypes;
@@ -86958,6 +86545,6 @@ exports.stores = stores;
86958
86545
  exports.tokenColors = tokenColors;
86959
86546
  exports.tokenize = tokenize;
86960
86547
 
86961
- __info__.version = "19.4.0-alpha.10";
86962
- __info__.date = "2026-06-02T12:07:58.355Z";
86963
- __info__.hash = "41144f9";
86548
+ __info__.version = "19.4.0-alpha.11";
86549
+ __info__.date = "2026-06-03T11:42:34.595Z";
86550
+ __info__.hash = "6f35bc7";