@odoo/o-spreadsheet 18.0.55 → 18.0.67

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 (551) hide show
  1. package/dist/o-spreadsheet.cjs.js +60099 -68434
  2. package/dist/o-spreadsheet.esm.js +59914 -68433
  3. package/dist/o-spreadsheet.iife.js +65385 -73903
  4. package/dist/o-spreadsheet.iife.min.js +764 -727
  5. package/dist/o_spreadsheet.xml +9 -6
  6. package/dist/types/actions/action.d.ts +84 -0
  7. package/dist/types/actions/data_actions.d.ts +12 -0
  8. package/dist/types/actions/edit_actions.d.ts +23 -0
  9. package/dist/types/actions/format_actions.d.ts +63 -0
  10. package/dist/types/actions/insert_actions.d.ts +32 -0
  11. package/dist/types/actions/menu_items_actions.d.ts +55 -0
  12. package/dist/types/actions/sheet_actions.d.ts +13 -0
  13. package/dist/types/actions/view_actions.d.ts +26 -0
  14. package/dist/types/clipboard_handlers/abstract_cell_clipboard_handler.d.ts +7 -0
  15. package/dist/types/clipboard_handlers/abstract_clipboard_handler.d.ts +12 -0
  16. package/dist/types/clipboard_handlers/abstract_figure_clipboard_handler.d.ts +5 -0
  17. package/dist/types/clipboard_handlers/borders_clipboard.d.ts +17 -0
  18. package/dist/types/clipboard_handlers/cell_clipboard.d.ts +29 -0
  19. package/dist/types/clipboard_handlers/chart_clipboard.d.ts +15 -0
  20. package/dist/types/clipboard_handlers/conditional_format_clipboard.d.ts +25 -0
  21. package/dist/types/clipboard_handlers/data_validation_clipboard.d.ts +25 -0
  22. package/dist/types/clipboard_handlers/image_clipboard.d.ts +16 -0
  23. package/dist/types/clipboard_handlers/index.d.ts +7 -0
  24. package/dist/types/clipboard_handlers/merge_clipboard.d.ts +16 -0
  25. package/dist/types/clipboard_handlers/references_clipboard.d.ts +11 -0
  26. package/dist/types/clipboard_handlers/sheet_clipboard.d.ts +11 -0
  27. package/dist/types/clipboard_handlers/tables_clipboard.d.ts +33 -0
  28. package/dist/types/collaborative/local_transport_service.d.ts +8 -0
  29. package/dist/types/collaborative/ot/ot.d.ts +22 -0
  30. package/dist/types/collaborative/ot/ot_helpers.d.ts +3 -0
  31. package/dist/types/collaborative/ot/ot_specific.d.ts +1 -0
  32. package/dist/types/collaborative/revisions.d.ts +22 -0
  33. package/dist/types/collaborative/session.d.ts +101 -0
  34. package/dist/types/components/action_button/action_button.d.ts +42 -0
  35. package/dist/types/components/animation/ripple.d.ts +118 -0
  36. package/dist/types/components/autofill/autofill.d.ts +29 -0
  37. package/dist/types/components/border_editor/border_editor.d.ts +67 -0
  38. package/dist/types/components/border_editor/border_editor_widget.d.ts +47 -0
  39. package/dist/types/components/bottom_bar/bottom_bar.d.ts +59 -0
  40. package/dist/types/components/bottom_bar/bottom_bar_sheet/bottom_bar_sheet.d.ts +62 -0
  41. package/dist/types/components/bottom_bar/bottom_bar_statistic/aggregate_statistics_store.d.ts +15 -0
  42. package/dist/types/components/bottom_bar/bottom_bar_statistic/bottom_bar_statistic.d.ts +25 -0
  43. package/dist/types/components/collaborative_client_tag/collaborative_client_tag.d.ts +21 -0
  44. package/dist/types/components/color_picker/color_picker.d.ts +57 -0
  45. package/dist/types/components/color_picker/color_picker_widget.d.ts +52 -0
  46. package/dist/types/components/composer/autocomplete_dropdown/autocomplete_dropdown.d.ts +23 -0
  47. package/dist/types/components/composer/autocomplete_dropdown/autocomplete_dropdown_store.d.ts +12 -0
  48. package/dist/types/components/composer/composer/abstract_composer_store.d.ts +113 -0
  49. package/dist/types/components/composer/composer/cell_composer_store.d.ts +18 -0
  50. package/dist/types/components/composer/composer/composer.d.ts +172 -0
  51. package/dist/types/components/composer/composer_focus_store.d.ts +28 -0
  52. package/dist/types/components/composer/content_editable_helper.d.ts +60 -0
  53. package/dist/types/components/composer/formula_assistant/formula_assistant.d.ts +18 -0
  54. package/dist/types/components/composer/grid_composer/grid_composer.d.ts +47 -0
  55. package/dist/types/components/composer/standalone_composer/standalone_composer.d.ts +60 -0
  56. package/dist/types/components/composer/standalone_composer/standalone_composer_store.d.ts +22 -0
  57. package/dist/types/components/composer/top_bar_composer/top_bar_composer.d.ts +19 -0
  58. package/dist/types/components/dashboard/clickable_cell_store.d.ts +15 -0
  59. package/dist/types/components/dashboard/dashboard.d.ts +49 -0
  60. package/dist/types/components/data_validation_overlay/data_validation_overlay.d.ts +16 -0
  61. package/dist/types/components/data_validation_overlay/dv_checkbox/dv_checkbox.d.ts +19 -0
  62. package/dist/types/components/data_validation_overlay/dv_list_icon/dv_list_icon.d.ts +13 -0
  63. package/dist/types/components/error_tooltip/error_tooltip.d.ts +25 -0
  64. package/dist/types/components/figures/chart/chartJs/chartjs.d.ts +23 -0
  65. package/dist/types/components/figures/chart/chartJs/chartjs_show_values_plugin.d.ts +16 -0
  66. package/dist/types/components/figures/chart/chartJs/chartjs_waterfall_plugin.d.ts +12 -0
  67. package/dist/types/components/figures/chart/gauge/gauge_chart_component.d.ts +13 -0
  68. package/dist/types/components/figures/chart/scorecard/chart_scorecard.d.ts +18 -0
  69. package/dist/types/components/figures/figure/figure.d.ts +54 -0
  70. package/dist/types/components/figures/figure_chart/figure_chart.d.ts +16 -0
  71. package/dist/types/components/figures/figure_container/figure_container.d.ts +117 -0
  72. package/dist/types/components/figures/figure_image/figure_image.d.ts +15 -0
  73. package/dist/types/components/filters/filter_icon/filter_icon.d.ts +19 -0
  74. package/dist/types/components/filters/filter_icons_overlay/filter_icons_overlay.d.ts +13 -0
  75. package/dist/types/components/filters/filter_menu/filter_menu.d.ts +46 -0
  76. package/dist/types/components/filters/filter_menu_item/filter_menu_value_item.d.ts +28 -0
  77. package/dist/types/components/focus_store.d.ts +6 -0
  78. package/dist/types/components/font_size_editor/font_size_editor.d.ts +34 -0
  79. package/dist/types/components/grid/grid.d.ts +105 -0
  80. package/dist/types/components/grid/hovered_cell_store.d.ts +10 -0
  81. package/dist/types/components/grid_add_rows_footer/grid_add_rows_footer.d.ts +29 -0
  82. package/dist/types/components/grid_cell_icon/grid_cell_icon.d.ts +26 -0
  83. package/dist/types/components/grid_overlay/grid_overlay.d.ts +68 -0
  84. package/dist/types/components/grid_popover/grid_popover.d.ts +28 -0
  85. package/dist/types/components/header_group/header_group.d.ts +46 -0
  86. package/dist/types/components/header_group/header_group_container.d.ts +33 -0
  87. package/dist/types/components/headers_overlay/headers_overlay.d.ts +131 -0
  88. package/dist/types/components/helpers/autofocus_hook.d.ts +3 -0
  89. package/dist/types/components/helpers/css.d.ts +40 -0
  90. package/dist/types/components/helpers/dom_helpers.d.ts +34 -0
  91. package/dist/types/components/helpers/drag_and_drop.d.ts +20 -0
  92. package/dist/types/components/helpers/drag_and_drop_hook.d.ts +24 -0
  93. package/dist/types/components/helpers/draw_grid_hook.d.ts +3 -0
  94. package/dist/types/components/helpers/figure_container_helper.d.ts +14 -0
  95. package/dist/types/components/helpers/figure_drag_helper.d.ts +6 -0
  96. package/dist/types/components/helpers/figure_snap_helper.d.ts +25 -0
  97. package/dist/types/components/helpers/highlight_hook.d.ts +4 -0
  98. package/dist/types/components/helpers/html_content_helpers.d.ts +2 -0
  99. package/dist/types/components/helpers/index.d.ts +1 -0
  100. package/dist/types/components/helpers/listener_hook.d.ts +13 -0
  101. package/dist/types/components/helpers/position_hook.d.ts +25 -0
  102. package/dist/types/components/helpers/selection_helpers.d.ts +2 -0
  103. package/dist/types/components/helpers/time_hooks.d.ts +17 -0
  104. package/dist/types/components/helpers/touch_scroll_hook.d.ts +3 -0
  105. package/dist/types/components/helpers/wheel_hook.d.ts +1 -0
  106. package/dist/types/components/highlight/border/border.d.ts +21 -0
  107. package/dist/types/components/highlight/corner/corner.d.ts +25 -0
  108. package/dist/types/components/highlight/highlight/highlight.d.ts +26 -0
  109. package/dist/types/components/icon_picker/icon_picker.d.ts +68 -0
  110. package/dist/types/components/icons/icons.d.ts +56 -0
  111. package/dist/types/components/index.d.ts +1 -0
  112. package/dist/types/components/link/index.d.ts +2 -0
  113. package/dist/types/components/link/link_display/link_display.d.ts +28 -0
  114. package/dist/types/components/link/link_editor/link_editor.d.ts +46 -0
  115. package/dist/types/components/menu/menu.d.ts +99 -0
  116. package/dist/types/components/paint_format_button/paint_format_button.d.ts +20 -0
  117. package/dist/types/components/paint_format_button/paint_format_store.d.ts +27 -0
  118. package/dist/types/components/pivot_html_renderer/pivot_html_renderer.d.ts +87 -0
  119. package/dist/types/components/popover/cell_popover_store.d.ts +22 -0
  120. package/dist/types/components/popover/index.d.ts +3 -0
  121. package/dist/types/components/popover/popover.d.ts +80 -0
  122. package/dist/types/components/popover/popover_builders.d.ts +1 -0
  123. package/dist/types/components/scrollbar/index.d.ts +2 -0
  124. package/dist/types/components/scrollbar/scrollbar.d.ts +39 -0
  125. package/dist/types/components/scrollbar/scrollbar_horizontal.d.ts +32 -0
  126. package/dist/types/components/scrollbar/scrollbar_vertical.d.ts +32 -0
  127. package/dist/types/components/scrollbar.d.ts +9 -0
  128. package/dist/types/components/selection_input/selection_input.d.ts +81 -0
  129. package/dist/types/components/selection_input/selection_input_store.d.ts +96 -0
  130. package/dist/types/components/side_panel/chart/bar_chart/bar_chart_config_panel.d.ts +7 -0
  131. package/dist/types/components/side_panel/chart/building_blocks/axis_design/axis_design_editor.d.ts +46 -0
  132. package/dist/types/components/side_panel/chart/building_blocks/data_series/data_series.d.ts +30 -0
  133. package/dist/types/components/side_panel/chart/building_blocks/error_section/error_section.d.ts +21 -0
  134. package/dist/types/components/side_panel/chart/building_blocks/general_design/general_design_editor.d.ts +41 -0
  135. package/dist/types/components/side_panel/chart/building_blocks/generic_side_panel/config_panel.d.ts +87 -0
  136. package/dist/types/components/side_panel/chart/building_blocks/label_range/label_range.d.ts +42 -0
  137. package/dist/types/components/side_panel/chart/building_blocks/title/title.d.ts +76 -0
  138. package/dist/types/components/side_panel/chart/chart_type_picker/chart_type_picker.d.ts +49 -0
  139. package/dist/types/components/side_panel/chart/chart_with_axis/design_panel.d.ts +63 -0
  140. package/dist/types/components/side_panel/chart/combo_chart/combo_chart_config_panel.d.ts +4 -0
  141. package/dist/types/components/side_panel/chart/combo_chart/combo_chart_design_panel.d.ts +19 -0
  142. package/dist/types/components/side_panel/chart/gauge_chart_panel/gauge_chart_config_panel.d.ts +32 -0
  143. package/dist/types/components/side_panel/chart/gauge_chart_panel/gauge_chart_design_panel.d.ts +48 -0
  144. package/dist/types/components/side_panel/chart/index.d.ts +15 -0
  145. package/dist/types/components/side_panel/chart/line_chart/line_chart_config_panel.d.ts +16 -0
  146. package/dist/types/components/side_panel/chart/main_chart_panel/main_chart_panel.d.ts +31 -0
  147. package/dist/types/components/side_panel/chart/main_chart_panel/main_chart_panel_store.d.ts +10 -0
  148. package/dist/types/components/side_panel/chart/pie_chart/pie_chart_design_panel.d.ts +31 -0
  149. package/dist/types/components/side_panel/chart/scatter_chart/scatter_chart_config_panel.d.ts +12 -0
  150. package/dist/types/components/side_panel/chart/scorecard_chart_panel/scorecard_chart_config_panel.d.ts +40 -0
  151. package/dist/types/components/side_panel/chart/scorecard_chart_panel/scorecard_chart_design_panel.d.ts +41 -0
  152. package/dist/types/components/side_panel/chart/waterfall_chart/waterfall_chart_design_panel.d.ts +53 -0
  153. package/dist/types/components/side_panel/components/badge_selection/badge_selection.d.ts +20 -0
  154. package/dist/types/components/side_panel/components/checkbox/checkbox.d.ts +47 -0
  155. package/dist/types/components/side_panel/components/cog_wheel_menu/cog_wheel_menu.d.ts +22 -0
  156. package/dist/types/components/side_panel/components/collapsible/side_panel_collapsible.d.ts +16 -0
  157. package/dist/types/components/side_panel/components/radio_selection/radio_selection.d.ts +32 -0
  158. package/dist/types/components/side_panel/components/round_color_picker/round_color_picker.d.ts +45 -0
  159. package/dist/types/components/side_panel/components/section/section.d.ts +16 -0
  160. package/dist/types/components/side_panel/conditional_formatting/cf_editor/cf_editor.d.ts +167 -0
  161. package/dist/types/components/side_panel/conditional_formatting/cf_preview/cf_preview.d.ts +57 -0
  162. package/dist/types/components/side_panel/conditional_formatting/cf_preview_list/cf_preview_list.d.ts +64 -0
  163. package/dist/types/components/side_panel/conditional_formatting/conditional_formatting.d.ts +30 -0
  164. package/dist/types/components/side_panel/custom_currency/custom_currency.d.ts +43 -0
  165. package/dist/types/components/side_panel/data_validation/data_validation_panel.d.ts +28 -0
  166. package/dist/types/components/side_panel/data_validation/data_validation_panel_helper.d.ts +14 -0
  167. package/dist/types/components/side_panel/data_validation/dv_criterion_form/dv_criterion_form.d.ts +15 -0
  168. package/dist/types/components/side_panel/data_validation/dv_criterion_form/dv_date_criterion/dv_date_criterion.d.ts +16 -0
  169. package/dist/types/components/side_panel/data_validation/dv_criterion_form/dv_double_input_criterion/dv_double_input_criterion.d.ts +10 -0
  170. package/dist/types/components/side_panel/data_validation/dv_criterion_form/dv_input/dv_input.d.ts +54 -0
  171. package/dist/types/components/side_panel/data_validation/dv_criterion_form/dv_single_input_criterion/dv_single_input_criterion.d.ts +9 -0
  172. package/dist/types/components/side_panel/data_validation/dv_criterion_form/dv_value_in_list_criterion/dv_value_in_list_criterion.d.ts +23 -0
  173. package/dist/types/components/side_panel/data_validation/dv_criterion_form/dv_value_in_range_criterion/dv_value_in_range_criterion.d.ts +12 -0
  174. package/dist/types/components/side_panel/data_validation/dv_editor/dv_editor.d.ts +48 -0
  175. package/dist/types/components/side_panel/data_validation/dv_preview/dv_preview.d.ts +20 -0
  176. package/dist/types/components/side_panel/find_and_replace/find_and_replace.d.ts +46 -0
  177. package/dist/types/components/side_panel/find_and_replace/find_and_replace_store.d.ts +72 -0
  178. package/dist/types/components/side_panel/more_formats/more_formats.d.ts +13 -0
  179. package/dist/types/components/side_panel/pivot/editable_name/editable_name.d.ts +21 -0
  180. package/dist/types/components/side_panel/pivot/pivot_defer_update/pivot_defer_update.d.ts +28 -0
  181. package/dist/types/components/side_panel/pivot/pivot_layout_configurator/add_dimension_button/add_dimension_button.d.ts +46 -0
  182. package/dist/types/components/side_panel/pivot/pivot_layout_configurator/pivot_dimension/pivot_dimension.d.ts +35 -0
  183. package/dist/types/components/side_panel/pivot/pivot_layout_configurator/pivot_dimension_granularity/pivot_dimension_granularity.d.ts +34 -0
  184. package/dist/types/components/side_panel/pivot/pivot_layout_configurator/pivot_dimension_order/pivot_dimension_order.d.ts +15 -0
  185. package/dist/types/components/side_panel/pivot/pivot_layout_configurator/pivot_layout_configurator.d.ts +73 -0
  186. package/dist/types/components/side_panel/pivot/pivot_layout_configurator/pivot_measure/pivot_measure.d.ts +37 -0
  187. package/dist/types/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel.d.ts +68 -0
  188. package/dist/types/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel_store.d.ts +34 -0
  189. package/dist/types/components/side_panel/pivot/pivot_side_panel/pivot_side_panel.d.ts +21 -0
  190. package/dist/types/components/side_panel/pivot/pivot_side_panel/pivot_side_panel_store.d.ts +35 -0
  191. package/dist/types/components/side_panel/pivot/pivot_side_panel/pivot_spreadsheet_side_panel/pivot_spreadsheet_side_panel.d.ts +49 -0
  192. package/dist/types/components/side_panel/pivot/pivot_title_section/pivot_title_section.d.ts +29 -0
  193. package/dist/types/components/side_panel/remove_duplicates/remove_duplicates.d.ts +39 -0
  194. package/dist/types/components/side_panel/select_menu/select_menu.d.ts +37 -0
  195. package/dist/types/components/side_panel/settings/settings_panel.d.ts +28 -0
  196. package/dist/types/components/side_panel/side_panel/side_panel.d.ts +15 -0
  197. package/dist/types/components/side_panel/side_panel/side_panel_store.d.ts +32 -0
  198. package/dist/types/components/side_panel/split_to_columns_panel/split_to_columns_panel.d.ts +42 -0
  199. package/dist/types/components/side_panel/table_panel/table_panel.d.ts +52 -0
  200. package/dist/types/components/side_panel/table_style_editor_panel/table_style_editor_panel.d.ts +50 -0
  201. package/dist/types/components/spreadsheet/spreadsheet.d.ts +63 -0
  202. package/dist/types/components/tables/table_dropdown_button/table_dropdown_button.d.ts +25 -0
  203. package/dist/types/components/tables/table_resizer/table_resizer.d.ts +20 -0
  204. package/dist/types/components/tables/table_style_picker/table_style_picker.d.ts +28 -0
  205. package/dist/types/components/tables/table_style_preview/table_canvas_helpers.d.ts +2 -0
  206. package/dist/types/components/tables/table_style_preview/table_style_preview.d.ts +45 -0
  207. package/dist/types/components/tables/table_styles_popover/table_styles_popover.d.ts +53 -0
  208. package/dist/types/components/text_input/text_input.d.ts +35 -0
  209. package/dist/types/components/top_bar/top_bar.d.ts +70 -0
  210. package/dist/types/components/translations_terms.d.ts +191 -0
  211. package/dist/types/components/validation_messages/validation_messages.d.ts +21 -0
  212. package/dist/types/constants.d.ts +179 -0
  213. package/dist/types/formulas/code_builder.d.ts +24 -0
  214. package/dist/types/formulas/compiler.d.ts +26 -0
  215. package/dist/types/formulas/composer_tokenizer.d.ts +48 -0
  216. package/dist/types/formulas/helpers.d.ts +7 -0
  217. package/dist/types/formulas/index.d.ts +14 -0
  218. package/dist/types/formulas/parser.d.ts +76 -0
  219. package/dist/types/formulas/range_tokenizer.d.ts +8 -0
  220. package/dist/types/formulas/tokenizer.d.ts +25 -0
  221. package/dist/types/functions/arguments.d.ts +10 -0
  222. package/dist/types/functions/helper_assert.d.ts +6 -0
  223. package/dist/types/functions/helper_financial.d.ts +51 -0
  224. package/dist/types/functions/helper_logical.d.ts +9 -0
  225. package/dist/types/functions/helper_lookup.d.ts +9 -0
  226. package/dist/types/functions/helper_math.d.ts +3 -0
  227. package/dist/types/functions/helper_matrices.d.ts +24 -0
  228. package/dist/types/functions/helper_parser.d.ts +95 -0
  229. package/dist/types/functions/helper_statistical.d.ts +19 -0
  230. package/dist/types/functions/helpers.d.ts +146 -0
  231. package/dist/types/functions/index.d.ts +18 -0
  232. package/dist/types/functions/module_array.d.ts +122 -0
  233. package/dist/types/functions/module_custom.d.ts +6 -0
  234. package/dist/types/functions/module_database.d.ts +73 -0
  235. package/dist/types/functions/module_date.d.ts +185 -0
  236. package/dist/types/functions/module_engineering.d.ts +7 -0
  237. package/dist/types/functions/module_filter.d.ts +16 -0
  238. package/dist/types/functions/module_financial.d.ts +295 -0
  239. package/dist/types/functions/module_info.d.ts +63 -0
  240. package/dist/types/functions/module_logical.d.ts +31 -0
  241. package/dist/types/functions/module_lookup.d.ts +108 -0
  242. package/dist/types/functions/module_math.d.ts +354 -0
  243. package/dist/types/functions/module_operators.d.ts +77 -0
  244. package/dist/types/functions/module_parser.d.ts +7 -0
  245. package/dist/types/functions/module_statistical.d.ts +244 -0
  246. package/dist/types/functions/module_text.d.ts +132 -0
  247. package/dist/types/functions/module_web.d.ts +7 -0
  248. package/dist/types/helpers/cells/cell_evaluation.d.ts +4 -0
  249. package/dist/types/helpers/cells/index.d.ts +2 -0
  250. package/dist/types/helpers/chart_date.d.ts +8 -0
  251. package/dist/types/helpers/clipboard/clipboard_helpers.d.ts +32 -0
  252. package/dist/types/helpers/clipboard/navigator_clipboard_wrapper.d.ts +13 -0
  253. package/dist/types/helpers/color.d.ts +80 -0
  254. package/dist/types/helpers/coordinates.d.ts +38 -0
  255. package/dist/types/helpers/data_normalization.d.ts +14 -0
  256. package/dist/types/helpers/data_validation_helpers.d.ts +6 -0
  257. package/dist/types/helpers/dates.d.ts +92 -0
  258. package/dist/types/helpers/edge_scrolling.d.ts +9 -0
  259. package/dist/types/helpers/event_bus.d.ts +45 -0
  260. package/dist/types/helpers/figures/charts/abstract_chart.d.ts +56 -0
  261. package/dist/types/helpers/figures/charts/bar_chart.d.ts +32 -0
  262. package/dist/types/helpers/figures/charts/chart_common.d.ts +122 -0
  263. package/dist/types/helpers/figures/charts/chart_common_line_scatter.d.ts +16 -0
  264. package/dist/types/helpers/figures/charts/chart_factory.d.ts +35 -0
  265. package/dist/types/helpers/figures/charts/chart_ui_common.d.ts +51 -0
  266. package/dist/types/helpers/figures/charts/combo_chart.d.ts +29 -0
  267. package/dist/types/helpers/figures/charts/gauge_chart.d.ts +23 -0
  268. package/dist/types/helpers/figures/charts/gauge_chart_rendering.d.ts +48 -0
  269. package/dist/types/helpers/figures/charts/index.d.ts +10 -0
  270. package/dist/types/helpers/figures/charts/line_chart.d.ts +33 -0
  271. package/dist/types/helpers/figures/charts/pie_chart.d.ts +29 -0
  272. package/dist/types/helpers/figures/charts/pyramid_chart.d.ts +32 -0
  273. package/dist/types/helpers/figures/charts/scatter_chart.d.ts +31 -0
  274. package/dist/types/helpers/figures/charts/scorecard_chart.d.ts +32 -0
  275. package/dist/types/helpers/figures/charts/scorecard_chart_config_builder.d.ts +44 -0
  276. package/dist/types/helpers/figures/charts/waterfall_chart.d.ts +37 -0
  277. package/dist/types/helpers/figures/figure/figure.d.ts +6 -0
  278. package/dist/types/helpers/figures/images/image_provider.d.ts +10 -0
  279. package/dist/types/helpers/format/format.d.ts +45 -0
  280. package/dist/types/helpers/format/format_parser.d.ts +38 -0
  281. package/dist/types/helpers/format/format_tokenizer.d.ts +39 -0
  282. package/dist/types/helpers/index.d.ts +17 -0
  283. package/dist/types/helpers/internal_viewport.d.ts +82 -0
  284. package/dist/types/helpers/inverse_commands.d.ts +2 -0
  285. package/dist/types/helpers/links.d.ts +23 -0
  286. package/dist/types/helpers/locale.d.ts +58 -0
  287. package/dist/types/helpers/misc.d.ts +211 -0
  288. package/dist/types/helpers/numbers.d.ts +25 -0
  289. package/dist/types/helpers/pivot/pivot_composer_helpers.d.ts +61 -0
  290. package/dist/types/helpers/pivot/pivot_domain_helpers.d.ts +68 -0
  291. package/dist/types/helpers/pivot/pivot_helpers.d.ts +55 -0
  292. package/dist/types/helpers/pivot/pivot_highlight.d.ts +2 -0
  293. package/dist/types/helpers/pivot/pivot_menu_items.d.ts +3 -0
  294. package/dist/types/helpers/pivot/pivot_positional_formula_registry.d.ts +7 -0
  295. package/dist/types/helpers/pivot/pivot_presence_tracker.d.ts +9 -0
  296. package/dist/types/helpers/pivot/pivot_presentation.d.ts +91 -0
  297. package/dist/types/helpers/pivot/pivot_registry.d.ts +28 -0
  298. package/dist/types/helpers/pivot/pivot_runtime_definition.d.ts +14 -0
  299. package/dist/types/helpers/pivot/pivot_side_panel_registry.d.ts +6 -0
  300. package/dist/types/helpers/pivot/pivot_time_adapter.d.ts +5 -0
  301. package/dist/types/helpers/pivot/spreadsheet_pivot/data_entry_spreadsheet_pivot.d.ts +20 -0
  302. package/dist/types/helpers/pivot/spreadsheet_pivot/date_spreadsheet_pivot.d.ts +7 -0
  303. package/dist/types/helpers/pivot/spreadsheet_pivot/runtime_definition_spreadsheet_pivot.d.ts +7 -0
  304. package/dist/types/helpers/pivot/spreadsheet_pivot/spreadsheet_pivot.d.ts +96 -0
  305. package/dist/types/helpers/pivot/table_spreadsheet_pivot.d.ts +80 -0
  306. package/dist/types/helpers/range.d.ts +59 -0
  307. package/dist/types/helpers/recompute_zones.d.ts +130 -0
  308. package/dist/types/helpers/rectangle.d.ts +7 -0
  309. package/dist/types/helpers/reference_type.d.ts +29 -0
  310. package/dist/types/helpers/references.d.ts +25 -0
  311. package/dist/types/helpers/rendering.d.ts +2 -0
  312. package/dist/types/helpers/search.d.ts +19 -0
  313. package/dist/types/helpers/sheet.d.ts +7 -0
  314. package/dist/types/helpers/sort.d.ts +16 -0
  315. package/dist/types/helpers/state_manager_helpers.d.ts +6 -0
  316. package/dist/types/helpers/table_helpers.d.ts +9 -0
  317. package/dist/types/helpers/table_presets.d.ts +23 -0
  318. package/dist/types/helpers/text_helper.d.ts +35 -0
  319. package/dist/types/helpers/ui/cut_interactive.d.ts +2 -0
  320. package/dist/types/helpers/ui/freeze_interactive.d.ts +2 -0
  321. package/dist/types/helpers/ui/merge_interactive.d.ts +6 -0
  322. package/dist/types/helpers/ui/paste_interactive.d.ts +10 -0
  323. package/dist/types/helpers/ui/sheet_interactive.d.ts +2 -0
  324. package/dist/types/helpers/ui/split_to_columns_interactive.d.ts +6 -0
  325. package/dist/types/helpers/ui/table_interactive.d.ts +7 -0
  326. package/dist/types/helpers/ui/toggle_group_interactive.d.ts +6 -0
  327. package/dist/types/helpers/uuid.d.ts +20 -0
  328. package/dist/types/helpers/zones.d.ts +150 -0
  329. package/dist/types/history/branch.d.ts +62 -0
  330. package/dist/types/history/factory.d.ts +9 -0
  331. package/dist/types/history/operation.d.ts +17 -0
  332. package/dist/types/history/operation_sequence.d.ts +31 -0
  333. package/dist/types/history/repeat_commands/repeat_commands_generic.d.ts +7 -0
  334. package/dist/types/history/repeat_commands/repeat_commands_specific.d.ts +13 -0
  335. package/dist/types/history/repeat_commands/repeat_revision.d.ts +5 -0
  336. package/dist/types/history/selective_history.d.ts +80 -0
  337. package/dist/types/history/tree.d.ts +175 -0
  338. package/dist/types/index.d.ts +364 -0
  339. package/dist/types/migrations/data.d.ts +30 -0
  340. package/dist/types/migrations/legacy_tools.d.ts +15 -0
  341. package/dist/types/migrations/locale.d.ts +94 -0
  342. package/dist/types/migrations/migration_steps.d.ts +6 -0
  343. package/dist/types/model.d.ts +193 -0
  344. package/dist/types/plugins/base_plugin.d.ts +64 -0
  345. package/dist/types/plugins/core/borders.d.ts +127 -0
  346. package/dist/types/plugins/core/cell.d.ts +115 -0
  347. package/dist/types/plugins/core/chart.d.ts +41 -0
  348. package/dist/types/plugins/core/conditional_format.d.ts +53 -0
  349. package/dist/types/plugins/core/data_validation.d.ts +33 -0
  350. package/dist/types/plugins/core/figures.d.ts +34 -0
  351. package/dist/types/plugins/core/header_grouping.d.ts +83 -0
  352. package/dist/types/plugins/core/header_size.d.ts +23 -0
  353. package/dist/types/plugins/core/header_visibility.d.ts +20 -0
  354. package/dist/types/plugins/core/image.d.ts +32 -0
  355. package/dist/types/plugins/core/index.d.ts +13 -0
  356. package/dist/types/plugins/core/merge.d.ts +82 -0
  357. package/dist/types/plugins/core/pivot.d.ts +66 -0
  358. package/dist/types/plugins/core/range.d.ts +75 -0
  359. package/dist/types/plugins/core/settings.d.ts +12 -0
  360. package/dist/types/plugins/core/sheet.d.ts +148 -0
  361. package/dist/types/plugins/core/spreadsheet_pivot.d.ts +6 -0
  362. package/dist/types/plugins/core/table_style.d.ts +22 -0
  363. package/dist/types/plugins/core/tables.d.ts +56 -0
  364. package/dist/types/plugins/core_plugin.d.ts +50 -0
  365. package/dist/types/plugins/index.d.ts +7 -0
  366. package/dist/types/plugins/ui_core_views/cell_evaluation/binary_grid.d.ts +36 -0
  367. package/dist/types/plugins/ui_core_views/cell_evaluation/compilation_parameters.d.ts +14 -0
  368. package/dist/types/plugins/ui_core_views/cell_evaluation/evaluation_plugin.d.ts +58 -0
  369. package/dist/types/plugins/ui_core_views/cell_evaluation/evaluator.d.ts +59 -0
  370. package/dist/types/plugins/ui_core_views/cell_evaluation/formula_dependency_graph.d.ts +24 -0
  371. package/dist/types/plugins/ui_core_views/cell_evaluation/index.d.ts +1 -0
  372. package/dist/types/plugins/ui_core_views/cell_evaluation/position_map.d.ts +11 -0
  373. package/dist/types/plugins/ui_core_views/cell_evaluation/position_set.d.ts +28 -0
  374. package/dist/types/plugins/ui_core_views/cell_evaluation/r_tree.d.ts +108 -0
  375. package/dist/types/plugins/ui_core_views/cell_evaluation/spreading_relation.d.ts +63 -0
  376. package/dist/types/plugins/ui_core_views/custom_colors.d.ts +28 -0
  377. package/dist/types/plugins/ui_core_views/dynamic_tables.d.ts +32 -0
  378. package/dist/types/plugins/ui_core_views/evaluation_chart.d.ts +24 -0
  379. package/dist/types/plugins/ui_core_views/evaluation_conditional_format.d.ts +41 -0
  380. package/dist/types/plugins/ui_core_views/evaluation_data_validation.d.ts +38 -0
  381. package/dist/types/plugins/ui_core_views/header_sizes_ui.d.ts +32 -0
  382. package/dist/types/plugins/ui_core_views/index.d.ts +5 -0
  383. package/dist/types/plugins/ui_core_views/pivot_ui.d.ts +49 -0
  384. package/dist/types/plugins/ui_feature/autofill.d.ts +61 -0
  385. package/dist/types/plugins/ui_feature/automatic_sum.d.ts +101 -0
  386. package/dist/types/plugins/ui_feature/cell_computed_style.d.ts +13 -0
  387. package/dist/types/plugins/ui_feature/collaborative.d.ts +25 -0
  388. package/dist/types/plugins/ui_feature/data_cleanup.d.ts +16 -0
  389. package/dist/types/plugins/ui_feature/datavalidation_insertion.d.ts +5 -0
  390. package/dist/types/plugins/ui_feature/format.d.ts +25 -0
  391. package/dist/types/plugins/ui_feature/header_visibility_ui.d.ts +21 -0
  392. package/dist/types/plugins/ui_feature/index.d.ts +10 -0
  393. package/dist/types/plugins/ui_feature/insert_pivot.d.ts +14 -0
  394. package/dist/types/plugins/ui_feature/local_history.d.ts +36 -0
  395. package/dist/types/plugins/ui_feature/pivot_presence_plugin.d.ts +10 -0
  396. package/dist/types/plugins/ui_feature/sort.d.ts +29 -0
  397. package/dist/types/plugins/ui_feature/split_to_columns.d.ts +21 -0
  398. package/dist/types/plugins/ui_feature/table_autofill.d.ts +6 -0
  399. package/dist/types/plugins/ui_feature/table_computed_style.d.ts +26 -0
  400. package/dist/types/plugins/ui_feature/table_resize_ui.d.ts +6 -0
  401. package/dist/types/plugins/ui_feature/ui_options.d.ts +8 -0
  402. package/dist/types/plugins/ui_feature/ui_sheet.d.ts +48 -0
  403. package/dist/types/plugins/ui_plugin.d.ts +38 -0
  404. package/dist/types/plugins/ui_stateful/clipboard.d.ts +58 -0
  405. package/dist/types/plugins/ui_stateful/filter_evaluation.d.ts +25 -0
  406. package/dist/types/plugins/ui_stateful/header_positions.d.ts +28 -0
  407. package/dist/types/plugins/ui_stateful/index.d.ts +4 -0
  408. package/dist/types/plugins/ui_stateful/selection.d.ts +74 -0
  409. package/dist/types/plugins/ui_stateful/sheetview.d.ts +175 -0
  410. package/dist/types/registries/auto_completes/auto_complete_registry.d.ts +56 -0
  411. package/dist/types/registries/auto_completes/data_validation_auto_complete.d.ts +1 -0
  412. package/dist/types/registries/auto_completes/function_auto_complete.d.ts +1 -0
  413. package/dist/types/registries/auto_completes/index.d.ts +5 -0
  414. package/dist/types/registries/auto_completes/pivot_auto_complete.d.ts +1 -0
  415. package/dist/types/registries/auto_completes/pivot_dimension_auto_complete.d.ts +4 -0
  416. package/dist/types/registries/auto_completes/sheet_name_auto_complete.d.ts +1 -0
  417. package/dist/types/registries/autofill_modifiers.d.ts +7 -0
  418. package/dist/types/registries/autofill_rules.d.ts +20 -0
  419. package/dist/types/registries/cell_clickable_registry.d.ts +8 -0
  420. package/dist/types/registries/cell_popovers_registry.d.ts +3 -0
  421. package/dist/types/registries/chart_types.d.ts +52 -0
  422. package/dist/types/registries/currencies_registry.d.ts +7 -0
  423. package/dist/types/registries/data_validation_registry.d.ts +32 -0
  424. package/dist/types/registries/evaluation_registry.d.ts +9 -0
  425. package/dist/types/registries/figure_registry.d.ts +18 -0
  426. package/dist/types/registries/icons_on_cell_registry.d.ts +9 -0
  427. package/dist/types/registries/index.d.ts +12 -0
  428. package/dist/types/registries/inverse_command_registry.d.ts +5 -0
  429. package/dist/types/registries/menu_items_registry.d.ts +21 -0
  430. package/dist/types/registries/menus/cell_menu_registry.d.ts +2 -0
  431. package/dist/types/registries/menus/col_menu_registry.d.ts +2 -0
  432. package/dist/types/registries/menus/header_group_registry.d.ts +7 -0
  433. package/dist/types/registries/menus/index.d.ts +7 -0
  434. package/dist/types/registries/menus/link_menu_registry.d.ts +2 -0
  435. package/dist/types/registries/menus/number_format_menu_registry.d.ts +7 -0
  436. package/dist/types/registries/menus/row_menu_registry.d.ts +2 -0
  437. package/dist/types/registries/menus/sheet_menu_registry.d.ts +5 -0
  438. package/dist/types/registries/menus/table_style_menu_registry.d.ts +3 -0
  439. package/dist/types/registries/menus/topbar_menu_registry.d.ts +2 -0
  440. package/dist/types/registries/ot_registry.d.ts +21 -0
  441. package/dist/types/registries/registry.d.ts +44 -0
  442. package/dist/types/registries/repeat_commands_registry.d.ts +19 -0
  443. package/dist/types/registries/side_panel_registry.d.ts +14 -0
  444. package/dist/types/registries/side_panel_registry_entries.d.ts +1 -0
  445. package/dist/types/registries/topbar_component_registry.d.ts +20 -0
  446. package/dist/types/selection_stream/event_stream.d.ts +65 -0
  447. package/dist/types/selection_stream/selection_stream_processor.d.ts +154 -0
  448. package/dist/types/state_observer.d.ts +17 -0
  449. package/dist/types/store_engine/dependency_container.d.ts +25 -0
  450. package/dist/types/store_engine/index.d.ts +3 -0
  451. package/dist/types/store_engine/store.d.ts +72 -0
  452. package/dist/types/store_engine/store_hooks.d.ts +18 -0
  453. package/dist/types/stores/DOM_focus_store.d.ts +6 -0
  454. package/dist/types/stores/array_formula_highlight.d.ts +14 -0
  455. package/dist/types/stores/grid_renderer_store.d.ts +36 -0
  456. package/dist/types/stores/highlight_store.d.ts +16 -0
  457. package/dist/types/stores/index.d.ts +2 -0
  458. package/dist/types/stores/model_store.d.ts +2 -0
  459. package/dist/types/stores/notification_store.d.ts +13 -0
  460. package/dist/types/stores/renderer_store.d.ts +12 -0
  461. package/dist/types/stores/spreadsheet_store.d.ts +13 -0
  462. package/dist/types/translation.d.ts +21 -0
  463. package/dist/types/types/autofill.d.ts +71 -0
  464. package/dist/types/types/cell_popovers.d.ts +50 -0
  465. package/dist/types/types/cells.d.ts +64 -0
  466. package/dist/types/types/chart/bar_chart.d.ts +12 -0
  467. package/dist/types/types/chart/chart.d.ts +114 -0
  468. package/dist/types/types/chart/combo_chart.d.ts +15 -0
  469. package/dist/types/types/chart/common_bar_combo.d.ts +14 -0
  470. package/dist/types/types/chart/common_chart.d.ts +2 -0
  471. package/dist/types/types/chart/gauge_chart.d.ts +83 -0
  472. package/dist/types/types/chart/index.d.ts +7 -0
  473. package/dist/types/types/chart/line_chart.d.ts +24 -0
  474. package/dist/types/types/chart/pie_chart.d.ts +21 -0
  475. package/dist/types/types/chart/pyramid_chart.d.ts +10 -0
  476. package/dist/types/types/chart/scatter_chart.d.ts +5 -0
  477. package/dist/types/types/chart/scorecard_chart.d.ts +33 -0
  478. package/dist/types/types/chart/waterfall_chart.d.ts +27 -0
  479. package/dist/types/types/clipboard.d.ts +45 -0
  480. package/dist/types/types/collaborative/revisions.d.ts +7 -0
  481. package/dist/types/types/collaborative/session.d.ts +46 -0
  482. package/dist/types/types/collaborative/transport_service.d.ts +91 -0
  483. package/dist/types/types/commands.d.ts +833 -0
  484. package/dist/types/types/conditional_formatting.d.ts +113 -0
  485. package/dist/types/types/currency.d.ts +7 -0
  486. package/dist/types/types/data_validation.d.ts +121 -0
  487. package/dist/types/types/env.d.ts +29 -0
  488. package/dist/types/types/errors.d.ts +36 -0
  489. package/dist/types/types/event_stream/index.d.ts +1 -0
  490. package/dist/types/types/event_stream/selection_events.d.ts +11 -0
  491. package/dist/types/types/figure.d.ts +18 -0
  492. package/dist/types/types/files.d.ts +27 -0
  493. package/dist/types/types/find_and_replace.d.ts +8 -0
  494. package/dist/types/types/format.d.ts +8 -0
  495. package/dist/types/types/functions.d.ts +50 -0
  496. package/dist/types/types/getters.d.ts +102 -0
  497. package/dist/types/types/history.d.ts +43 -0
  498. package/dist/types/types/image.d.ts +16 -0
  499. package/dist/types/types/index.d.ts +39 -0
  500. package/dist/types/types/locale.d.ts +14 -0
  501. package/dist/types/types/misc.d.ts +312 -0
  502. package/dist/types/types/pivot.d.ts +136 -0
  503. package/dist/types/types/pivot_runtime.d.ts +31 -0
  504. package/dist/types/types/range.d.ts +21 -0
  505. package/dist/types/types/rendering.d.ts +95 -0
  506. package/dist/types/types/table.d.ts +65 -0
  507. package/dist/types/types/validator.d.ts +16 -0
  508. package/dist/types/types/workbook_data.d.ts +147 -0
  509. package/dist/types/types/xlsx.d.ts +502 -0
  510. package/dist/types/xlsx/constants.d.ts +74 -0
  511. package/dist/types/xlsx/conversion/cf_conversion.d.ts +4 -0
  512. package/dist/types/xlsx/conversion/color_conversion.d.ts +31 -0
  513. package/dist/types/xlsx/conversion/conversion_maps.d.ts +186 -0
  514. package/dist/types/xlsx/conversion/data_validation_conversion.d.ts +4 -0
  515. package/dist/types/xlsx/conversion/figure_conversion.d.ts +3 -0
  516. package/dist/types/xlsx/conversion/format_conversion.d.ts +8 -0
  517. package/dist/types/xlsx/conversion/formula_conversion.d.ts +9 -0
  518. package/dist/types/xlsx/conversion/index.d.ts +7 -0
  519. package/dist/types/xlsx/conversion/sheet_conversion.d.ts +4 -0
  520. package/dist/types/xlsx/conversion/style_conversion.d.ts +19 -0
  521. package/dist/types/xlsx/conversion/table_conversion.d.ts +8 -0
  522. package/dist/types/xlsx/extraction/base_extractor.d.ts +142 -0
  523. package/dist/types/xlsx/extraction/cf_extractor.d.ts +14 -0
  524. package/dist/types/xlsx/extraction/chart_extractor.d.ts +14 -0
  525. package/dist/types/xlsx/extraction/data_validation_extractor.d.ts +9 -0
  526. package/dist/types/xlsx/extraction/external_book_extractor.d.ts +6 -0
  527. package/dist/types/xlsx/extraction/figure_extractor.d.ts +10 -0
  528. package/dist/types/xlsx/extraction/index.d.ts +3 -0
  529. package/dist/types/xlsx/extraction/misc_extractor.d.ts +18 -0
  530. package/dist/types/xlsx/extraction/pivot_extractor.d.ts +10 -0
  531. package/dist/types/xlsx/extraction/sheet_extractor.d.ts +26 -0
  532. package/dist/types/xlsx/extraction/style_extractor.d.ts +19 -0
  533. package/dist/types/xlsx/extraction/table_extractor.d.ts +10 -0
  534. package/dist/types/xlsx/functions/cells.d.ts +11 -0
  535. package/dist/types/xlsx/functions/charts.d.ts +3 -0
  536. package/dist/types/xlsx/functions/conditional_formatting.d.ts +3 -0
  537. package/dist/types/xlsx/functions/data_validation.d.ts +3 -0
  538. package/dist/types/xlsx/functions/drawings.d.ts +5 -0
  539. package/dist/types/xlsx/functions/styles.d.ts +10 -0
  540. package/dist/types/xlsx/functions/table.d.ts +2 -0
  541. package/dist/types/xlsx/functions/worksheet.d.ts +10 -0
  542. package/dist/types/xlsx/helpers/colors.d.ts +8 -0
  543. package/dist/types/xlsx/helpers/content_helpers.d.ts +58 -0
  544. package/dist/types/xlsx/helpers/misc.d.ts +34 -0
  545. package/dist/types/xlsx/helpers/xlsx_helper.d.ts +10 -0
  546. package/dist/types/xlsx/helpers/xlsx_parser_error_manager.d.ts +38 -0
  547. package/dist/types/xlsx/helpers/xml_helpers.d.ts +36 -0
  548. package/dist/types/xlsx/xlsx_reader.d.ts +13 -0
  549. package/dist/types/xlsx/xlsx_writer.d.ts +19 -0
  550. package/package.json +43 -23
  551. package/dist/o-spreadsheet.d.ts +0 -12439
@@ -0,0 +1,50 @@
1
+ import { UuidGenerator } from "../helpers";
2
+ import { ModelConfig } from "../model";
3
+ import { StateObserver } from "../state_observer";
4
+ import { ApplyRangeChange, CoreCommand, CoreCommandDispatcher, RangeProvider, UID, WorkbookData } from "../types";
5
+ import { CoreGetters } from "../types/getters";
6
+ import { BasePlugin } from "./base_plugin";
7
+ import { RangeAdapter } from "./core/range";
8
+ export interface CorePluginConfig {
9
+ readonly getters: CoreGetters;
10
+ readonly stateObserver: StateObserver;
11
+ readonly range: RangeAdapter;
12
+ readonly dispatch: CoreCommandDispatcher["dispatch"];
13
+ readonly canDispatch: CoreCommandDispatcher["dispatch"];
14
+ readonly uuidGenerator: UuidGenerator;
15
+ readonly custom: ModelConfig["custom"];
16
+ readonly external: ModelConfig["external"];
17
+ }
18
+ export interface CorePluginConstructor {
19
+ new (config: CorePluginConfig): CorePlugin;
20
+ getters: readonly string[];
21
+ }
22
+ /**
23
+ * Core plugins handle spreadsheet data.
24
+ * They are responsible to import, export and maintain the spreadsheet
25
+ * persisted state.
26
+ * They should not be concerned about UI parts or transient state.
27
+ */
28
+ export declare class CorePlugin<State = any> extends BasePlugin<State, CoreCommand> implements RangeProvider {
29
+ protected getters: CoreGetters;
30
+ protected uuidGenerator: UuidGenerator;
31
+ constructor({ getters, stateObserver, range, dispatch, canDispatch, uuidGenerator, }: CorePluginConfig);
32
+ import(data: WorkbookData): void;
33
+ export(data: WorkbookData): void;
34
+ /**
35
+ * This method can be implemented in any plugin, to loop over the plugin's data structure and adapt the plugin's ranges.
36
+ * To adapt them, the implementation of the function must have a perfect knowledge of the data structure, thus
37
+ * implementing the loops over it makes sense in the plugin itself.
38
+ * When calling the method applyChange, the range will be adapted if necessary, then a copy will be returned along with
39
+ * the type of change that occurred.
40
+ *
41
+ * @param applyChange a function that, when called, will adapt the range according to the change on the grid
42
+ * @param sheetId an optional sheetId to adapt either range of that sheet specifically, or ranges pointing to that sheet
43
+ */
44
+ adaptRanges(applyChange: ApplyRangeChange, sheetId?: UID): void;
45
+ /**
46
+ * Implement this method to clean unused external resources, such as images
47
+ * stored on a server which have been deleted.
48
+ */
49
+ garbageCollectExternalResources(): void;
50
+ }
@@ -0,0 +1,7 @@
1
+ import { Registry } from "../registries/registry";
2
+ import { CorePluginConstructor } from "./core_plugin";
3
+ import { UIPluginConstructor } from "./ui_plugin";
4
+ export declare const corePluginRegistry: Registry<CorePluginConstructor>;
5
+ export declare const featurePluginRegistry: Registry<UIPluginConstructor>;
6
+ export declare const statefulUIPluginRegistry: Registry<UIPluginConstructor>;
7
+ export declare const coreViewsPluginRegistry: Registry<UIPluginConstructor>;
@@ -0,0 +1,36 @@
1
+ import { CellPosition } from "../../../types";
2
+ type Bit = 0 | 1;
3
+ /**
4
+ * Implements a fixed-sized grid or 2D matrix of bits.
5
+ * based on https://github.com/zandaqo/structurae
6
+ *
7
+ * The grid is implemented as a 1D array of 32-bit integers, where each bit represents a cell in the grid.
8
+ * It follows row-major order, with each row stored consecutively in 32-bit blocks.
9
+ * Pads the number of columns to the next power of 2 to allow quick lookups with bitwise operations.
10
+ *
11
+ * Key terminology:
12
+ * - bucket: Index of an item in the Uint32Array, a 32-bit integer.
13
+ * - bitPosition: The position of a bit within the bucket 32-bit integer.
14
+ */
15
+ export declare class BinaryGrid extends Uint32Array {
16
+ private columnOffset;
17
+ cols: number;
18
+ rows: number;
19
+ /**
20
+ * Creates a binary grid of specified dimensions.
21
+ */
22
+ static create(rows: number, columns: number): BinaryGrid;
23
+ /**
24
+ * Returns the bit at given coordinates.
25
+ */
26
+ getValue(position: CellPosition): Bit;
27
+ /**
28
+ * Sets the bit at given coordinates.
29
+ */
30
+ setValue(position: CellPosition, value: Bit): boolean;
31
+ isEmpty(): boolean;
32
+ fillAllPositions(): void;
33
+ clear(): void;
34
+ private getCoordinates;
35
+ }
36
+ export {};
@@ -0,0 +1,14 @@
1
+ import { ModelConfig } from "../../../model";
2
+ import { CellPosition, EnsureRange, EvalContext, EvaluatedCell, Getters, ReferenceDenormalizer } from "../../../types";
3
+ export type CompilationParameters = {
4
+ referenceDenormalizer: ReferenceDenormalizer;
5
+ ensureRange: EnsureRange;
6
+ evalContext: EvalContext;
7
+ };
8
+ /**
9
+ * Return all functions necessary to properly evaluate a formula:
10
+ * - a refFn function to read any reference, cell or range of a normalized formula
11
+ * - a range function to convert any reference to a proper value array
12
+ * - an evaluation context
13
+ */
14
+ export declare function buildCompilationParameters(context: ModelConfig["custom"], getters: Getters, computeCell: (position: CellPosition) => EvaluatedCell): CompilationParameters;
@@ -0,0 +1,58 @@
1
+ import { CellPosition, CellValue, Command, EvaluatedCell, ExcelWorkbookData, Format, FormattedValue, FormulaCell, FunctionResultObject, GetSymbolValue, Matrix, Range, RangeCompiledFormula, UID, Zone } from "../../../types/index";
2
+ import { UIPlugin, UIPluginConfig } from "../../ui_plugin";
3
+ import { CoreViewCommand } from "./../../../types/commands";
4
+ export declare class EvaluationPlugin extends UIPlugin {
5
+ static getters: readonly ["evaluateFormula", "evaluateFormulaResult", "evaluateCompiledFormula", "getCorrespondingFormulaCell", "getRangeFormattedValues", "getRangeValues", "getRangeFormats", "getEvaluatedCell", "getEvaluatedCells", "getEvaluatedCellsInZone", "getEvaluatedCellsPositions", "getSpreadZone", "getArrayFormulaSpreadingOn", "isArrayFormulaSpillBlocked", "isEmpty"];
6
+ private shouldRebuildDependenciesGraph;
7
+ private evaluator;
8
+ private positionsToUpdate;
9
+ constructor(config: UIPluginConfig);
10
+ beforeHandle(cmd: Command): void;
11
+ handle(cmd: CoreViewCommand): void;
12
+ finalize(): void;
13
+ evaluateFormula(sheetId: UID, formulaString: string, originCellPosition?: CellPosition): CellValue | Matrix<CellValue>;
14
+ evaluateFormulaResult(sheetId: UID, formulaString: string, originCellPosition?: CellPosition): Matrix<FunctionResultObject> | FunctionResultObject;
15
+ evaluateCompiledFormula(sheetId: UID, compiledFormula: RangeCompiledFormula, getSymbolValue: GetSymbolValue): FunctionResultObject | Matrix<FunctionResultObject>;
16
+ /**
17
+ * Return the value of each cell in the range as they are displayed in the grid.
18
+ */
19
+ getRangeFormattedValues(range: Range): FormattedValue[];
20
+ /**
21
+ * Return the value of each cell in the range.
22
+ */
23
+ getRangeValues(range: Range): CellValue[];
24
+ /**
25
+ * Return the format of each cell in the range.
26
+ */
27
+ getRangeFormats(range: Range): (Format | undefined)[];
28
+ getEvaluatedCell(position: CellPosition): EvaluatedCell;
29
+ getEvaluatedCells(sheetId: UID): EvaluatedCell[];
30
+ getEvaluatedCellsPositions(sheetId: UID): CellPosition[];
31
+ getEvaluatedCellsInZone(sheetId: UID, zone: Zone): EvaluatedCell[];
32
+ /**
33
+ * Return the spread zone the position is part of, if any
34
+ */
35
+ getSpreadZone(position: CellPosition, options?: {
36
+ ignoreSpillError: boolean;
37
+ }): Zone | undefined;
38
+ getArrayFormulaSpreadingOn(position: CellPosition): CellPosition | undefined;
39
+ isArrayFormulaSpillBlocked(position: CellPosition): boolean;
40
+ /**
41
+ * Check if a zone only contains empty cells
42
+ */
43
+ isEmpty(sheetId: UID, zone: Zone): boolean;
44
+ /**
45
+ * Maps the visible positions of a range according to a provided callback
46
+ * @param range - the range we filter out
47
+ * @param evaluationCallback - the callback applied to the filtered positions
48
+ * @returns the values filtered (ie we keep only the not hidden values)
49
+ */
50
+ private mapVisiblePositions;
51
+ exportForExcel(data: ExcelWorkbookData): void;
52
+ /**
53
+ * Returns the corresponding formula cell of a given cell
54
+ * It could be the formula present in the cell itself or the
55
+ * formula of the array formula that spreads to the cell
56
+ */
57
+ getCorrespondingFormulaCell(position: CellPosition): FormulaCell | undefined;
58
+ }
@@ -0,0 +1,59 @@
1
+ import { ModelConfig } from "../../../model";
2
+ import { CellPosition, EvaluatedCell, FunctionResultObject, GetSymbolValue, Getters, Matrix, RangeCompiledFormula, UID, Zone } from "../../../types";
3
+ import { CompilationParameters } from "./compilation_parameters";
4
+ export declare class Evaluator {
5
+ private readonly context;
6
+ private readonly getters;
7
+ private compilationParams;
8
+ private evaluatedCells;
9
+ private formulaDependencies;
10
+ private blockedArrayFormulas;
11
+ private spreadingRelations;
12
+ constructor(context: ModelConfig["custom"], getters: Getters);
13
+ getEvaluatedCell(position: CellPosition): EvaluatedCell;
14
+ getSpreadZone(position: CellPosition, options?: {
15
+ ignoreSpillError: boolean;
16
+ }): Zone | undefined;
17
+ getEvaluatedPositions(): CellPosition[];
18
+ getEvaluatedPositionsInSheet(sheetId: UID): CellPosition[];
19
+ getArrayFormulaSpreadingOn(position: CellPosition): CellPosition | undefined;
20
+ isArrayFormulaSpillBlocked(position: CellPosition): boolean;
21
+ updateDependencies(position: CellPosition): void;
22
+ private addDependencies;
23
+ private updateCompilationParameters;
24
+ private updateCompilationParametersForGridEvaluation;
25
+ private createEmptyPositionSet;
26
+ evaluateCells(positions: CellPosition[]): void;
27
+ private getArrayFormulasImpactedByChangesOf;
28
+ buildDependencyGraph(): void;
29
+ evaluateAllCells(): void;
30
+ evaluateFormulaResult(sheetId: UID, formulaString: string, originCellPosition?: CellPosition): FunctionResultObject | Matrix<FunctionResultObject>;
31
+ evaluateCompiledFormula(sheetId: UID, compiledFormula: RangeCompiledFormula, getContextualSymbolValue?: GetSymbolValue): FunctionResultObject | Matrix<FunctionResultObject>;
32
+ private getAllCells;
33
+ /**
34
+ * Return the position of formulas blocked by the given positions
35
+ * as well as all their dependencies.
36
+ */
37
+ private getArrayFormulasBlockedBy;
38
+ private nextPositionsToUpdate;
39
+ private cellsBeingComputed;
40
+ private symbolsBeingComputed;
41
+ private evaluate;
42
+ private computeCell;
43
+ private computeAndSave;
44
+ private computeFormulaCell;
45
+ private invalidatePositionsDependingOnSpread;
46
+ private assertSheetHasEnoughSpaceToSpreadFormulaResult;
47
+ private assertNoMergedCellsInSpreadZone;
48
+ private checkCollision;
49
+ private spreadValues;
50
+ private invalidateSpreading;
51
+ /**
52
+ * Wraps a GetSymbolValue function to add cycle detection
53
+ * and error handling.
54
+ */
55
+ private buildSafeGetSymbolValue;
56
+ private getDirectDependencies;
57
+ private getCellsDependingOn;
58
+ }
59
+ export declare function updateEvalContextAndExecute(compiledFormula: RangeCompiledFormula, compilationParams: CompilationParameters, sheetId: UID, getSymbolValue: GetSymbolValue, originCellPosition: CellPosition | undefined): FunctionResultObject | Matrix<FunctionResultObject>;
@@ -0,0 +1,24 @@
1
+ import { CellPosition } from "../../../types";
2
+ import { PositionSet } from "./position_set";
3
+ import { RTreeBoundingBox, RTreeItem } from "./r_tree";
4
+ /**
5
+ * Implementation of a dependency Graph.
6
+ * The graph is used to evaluate the cells in the correct
7
+ * order, and should be updated each time a cell's content is modified
8
+ *
9
+ * It uses an R-Tree data structure to efficiently find dependent cells.
10
+ */
11
+ export declare class FormulaDependencyGraph {
12
+ private readonly createEmptyPositionSet;
13
+ private readonly dependencies;
14
+ private readonly rTree;
15
+ constructor(createEmptyPositionSet: () => PositionSet, data?: RTreeItem<CellPosition>[]);
16
+ removeAllDependencies(formulaPosition: CellPosition): void;
17
+ addDependencies(formulaPosition: CellPosition, dependencies: RTreeBoundingBox[]): void;
18
+ /**
19
+ * Return all the cells that depend on the provided ranges,
20
+ * in the correct order they should be evaluated.
21
+ * This is called a topological ordering (excluding cycles)
22
+ */
23
+ getCellsDependingOn(ranges: RTreeBoundingBox[], ignore: PositionSet): PositionSet;
24
+ }
@@ -0,0 +1 @@
1
+ export * from "./evaluation_plugin";
@@ -0,0 +1,11 @@
1
+ import { CellPosition, UID } from "../../../types";
2
+ export declare class PositionMap<T> {
3
+ private map;
4
+ set({ sheetId, col, row }: CellPosition, value: T): void;
5
+ get({ sheetId, col, row }: CellPosition): T | undefined;
6
+ getSheet(sheetId: UID): Record<number, Record<number, T>> | undefined;
7
+ has({ sheetId, col, row }: CellPosition): boolean;
8
+ delete({ sheetId, col, row }: CellPosition): void;
9
+ keys(): CellPosition[];
10
+ keysForSheet(sheetId: UID): CellPosition[];
11
+ }
@@ -0,0 +1,28 @@
1
+ import { CellPosition, UID } from "../../../types";
2
+ export type SheetSizes = Record<UID, {
3
+ rows: number;
4
+ cols: number;
5
+ }>;
6
+ export declare class PositionSet {
7
+ private sheets;
8
+ /**
9
+ * List of positions in the order they were inserted.
10
+ */
11
+ private insertions;
12
+ private maxSize;
13
+ constructor(sheetSizes: SheetSizes);
14
+ add(position: CellPosition): void;
15
+ addMany(positions: Iterable<CellPosition>): void;
16
+ delete(position: CellPosition): void;
17
+ deleteMany(positions: Iterable<CellPosition>): void;
18
+ has(position: CellPosition): boolean;
19
+ clear(): CellPosition[];
20
+ isEmpty(): boolean;
21
+ fillAllPositions(): void;
22
+ /**
23
+ * Iterate over the positions in the order of insertion.
24
+ * Note that the same position may be yielded multiple times if the value was added
25
+ * to the set then removed and then added again.
26
+ */
27
+ [Symbol.iterator](): Generator<CellPosition>;
28
+ }
@@ -0,0 +1,108 @@
1
+ import { UID, Zone } from "../../../types";
2
+ /**
3
+ * R-Tree Data Structure
4
+ *
5
+ * R-Tree is a spatial data structure used for efficient indexing and querying
6
+ * of multi-dimensional objects, particularly in geometric and spatial applications.
7
+ *
8
+ * It organizes objects into a tree hierarchy, grouping nearby objects together
9
+ * in bounding boxes. Each node in the tree represents a bounding box that
10
+ * contains its child nodes or leaf objects. This hierarchical structure allows
11
+ * for faster spatial queries.
12
+ *
13
+ * @see https://en.wikipedia.org/wiki/R-tree
14
+ *
15
+ * Consider a 2D Space with four zones: A, B, C, D
16
+ * +--------------------------+
17
+ * | |
18
+ * | +---+ +-------+ |
19
+ * | | A | | B | |
20
+ * | +---+ +-------+ |
21
+ * | |
22
+ * | |
23
+ * | +---+ |
24
+ * | | C | |
25
+ * | +---+ |
26
+ * | +-----------+ |
27
+ * | | D | |
28
+ * | +-----------+ |
29
+ * | |
30
+ * +--------------------------+
31
+ *
32
+ * It groups together zones that are spatially close into a minimum bounding box.
33
+ * For example, A and B are grouped together in rectangle R1, and C and D are grouped
34
+ * in R2.
35
+ *
36
+ * R0
37
+ * +--------------------------+
38
+ * | R1 |
39
+ * | +-----------------+ |
40
+ * | | A | | B | |
41
+ * | +-----------------+ |
42
+ * | |
43
+ * | R2 |
44
+ * | +---+---+---+ |
45
+ * | | | C | | |
46
+ * | | +---+ | |
47
+ * | +-----------+ |
48
+ * | | D | |
49
+ * | +-----------+ |
50
+ * | |
51
+ * +--------------------------+
52
+ *
53
+ * The tree would look like this:
54
+ * R0
55
+ * / \
56
+ * / \
57
+ * R1 R2
58
+ * | |
59
+ * A,B C,D
60
+
61
+ * Choosing how to group the zones is crucial for the performance of the tree.
62
+ * Key considerations include avoiding excessive empty space coverage and minimizing overlap
63
+ * to reduce the number of subtrees processed during searches.
64
+ *
65
+ * Various heuristics exist for determining the optimal grouping strategy, such as "least enlargement"
66
+ * which prioritizes grouping nodes resulting in the smallest increase in bounding box size. In cases where
67
+ * the choice cannot be made based on this criterion due to the same enlargement for different groupings,
68
+ * we then evaluate "least area," aiming to minimize the overall area of bounding boxes.
69
+ *
70
+ * This implementation is tailored for spreadsheet use, indexing objects associated
71
+ * with a zone and a sheet.
72
+ *
73
+ * It uses the RBush library under the hood. One 2D RBush R-tree per sheet.
74
+ * @see https://github.com/mourner/rbush
75
+ */
76
+ export declare class SpreadsheetRTree<T> {
77
+ /**
78
+ * One 2D R-tree per sheet
79
+ */
80
+ private rTrees;
81
+ /**
82
+ * Bulk-inserts the given items into the tree. Bulk insertion is usually ~2-3 times
83
+ * faster than inserting items one by one. After bulk loading (bulk insertion into
84
+ * an empty tree), subsequent query performance is also ~20-30% better.
85
+ */
86
+ constructor(items?: RTreeItem[]);
87
+ insert(item: RTreeItem<T>): void;
88
+ search({ zone, sheetId }: RTreeBoundingBox): RTreeItem<T>[];
89
+ remove(item: RTreeItem<T>): void;
90
+ rtreeItemComparer(left: RTreeItem<T>, right: RTreeItem<T>): boolean;
91
+ }
92
+ /**
93
+ * Data associated with a range to be indexed in a R-tree
94
+ */
95
+ export interface RTreeItem<T = unknown> {
96
+ /**
97
+ * A bounding box to locate the item in the space
98
+ */
99
+ boundingBox: RTreeBoundingBox;
100
+ /**
101
+ * Any arbitrary data associated with the bounding box
102
+ */
103
+ data: T;
104
+ }
105
+ export interface RTreeBoundingBox {
106
+ sheetId: UID;
107
+ zone: Zone;
108
+ }
@@ -0,0 +1,63 @@
1
+ import { CellPosition, UID, Zone } from "../../../types";
2
+ /**
3
+ * Contains, for each cell, the array
4
+ * formulas that could potentially spread on it
5
+ * This is essentially a two way mapping between array formulas
6
+ * and their results.
7
+ *
8
+ * As we don't allow two array formulas to spread on the same cell, this structure
9
+ * is used to force the reevaluation of the potential spreaders of a cell when the
10
+ * content of this cell is modified. This structure should be updated each time
11
+ * an array formula is evaluated and try to spread on another cell.
12
+ *
13
+ */
14
+ export declare class SpreadingRelation {
15
+ /**
16
+ * Internal structure:
17
+ * For something like
18
+ * - A2:'=SPLIT("KAYAK", "A")'
19
+ * - B1:'=TRANSPOSE(SPLIT("COYOTE", "O"))'
20
+ *
21
+ * Resulting in:
22
+ * ```
23
+ * -----------------
24
+ * | | A | B | C |
25
+ * |---+---+---+---|
26
+ * | 1 | | C | |
27
+ * | 2 | K | Y | K |
28
+ * | 3 | | T | |
29
+ * | 4 | | E | |
30
+ * -----------------
31
+ * ```
32
+ * We have `resultsToArrayFormulas` is an R-tree looking like:
33
+ * - (A2:C2) --> A2 meaning values in A2:C2 are the result of A2
34
+ * - (B1:B4) --> B1 meaning values in B1:B4 are the result of B1
35
+ *
36
+ * Note that B2 is part of both zones because it can be the result of
37
+ * A2 or B1.
38
+ * Using an R-tree allows for fast insertions while still having
39
+ * a relatively fast lookup.
40
+ *
41
+ * We have `arrayFormulasToResults` looking like:
42
+ * - (A2) --> A2:C2 meaning A2 spreads on the zone A2:C2
43
+ * - (B1) --> B1:B4 meaning B1 spreads on the zone B1:B4
44
+ *
45
+ */
46
+ private readonly resultsToArrayFormulas;
47
+ private readonly arrayFormulasToResults;
48
+ searchFormulaPositionsSpreadingOn(sheetId: UID, zone: Zone): Iterable<CellPosition>;
49
+ getArrayResultZone(formulasPosition: CellPosition): Zone | undefined;
50
+ /**
51
+ * Remove a spreading relation for a given array formula position
52
+ * and its result zone
53
+ */
54
+ removeNode(position: CellPosition): void;
55
+ /**
56
+ * Create a spreading relation between two cells
57
+ */
58
+ addRelation({ arrayFormulaPosition, resultZone: resultPosition, }: {
59
+ arrayFormulaPosition: CellPosition;
60
+ resultZone: Zone;
61
+ }): void;
62
+ isArrayFormula(position: CellPosition): boolean;
63
+ }
@@ -0,0 +1,28 @@
1
+ import { Color, Command, Immutable } from "../../types";
2
+ import { UIPlugin, UIPluginConfig } from "../ui_plugin";
3
+ interface CustomColorState {
4
+ readonly customColors: Immutable<Record<Color, true>>;
5
+ readonly shouldUpdateColors: boolean;
6
+ }
7
+ /**
8
+ * CustomColors plugin
9
+ * This plugins aims to compute and keep to custom colors used in the
10
+ * current spreadsheet
11
+ */
12
+ export declare class CustomColorsPlugin extends UIPlugin<CustomColorState> {
13
+ private readonly customColors;
14
+ private readonly shouldUpdateColors;
15
+ static getters: readonly ["getCustomColors"];
16
+ constructor(config: UIPluginConfig);
17
+ handle(cmd: Command): void;
18
+ finalize(): void;
19
+ getCustomColors(): Color[];
20
+ private computeCustomColors;
21
+ private getColorsFromCells;
22
+ private getFormattingColors;
23
+ private getChartColors;
24
+ private getTableColors;
25
+ private getTableStyleElementColors;
26
+ private tryToAddColors;
27
+ }
28
+ export {};
@@ -0,0 +1,32 @@
1
+ import { CellPosition, Command, ExcelWorkbookData, Filter, FilterId, Table, UID, Zone } from "../../types/index";
2
+ import { UIPlugin } from "../ui_plugin";
3
+ export declare class DynamicTablesPlugin extends UIPlugin {
4
+ static getters: readonly ["canCreateDynamicTableOnZones", "doesZonesContainFilter", "getFilter", "getFilters", "getTable", "getTables", "getTablesOverlappingZones", "getFilterId", "getFilterHeaders", "isFilterHeader"];
5
+ tables: Record<UID, Table[]>;
6
+ handle(cmd: Command): void;
7
+ finalize(): void;
8
+ private computeTables;
9
+ getFilters(sheetId: UID): Filter[];
10
+ getTables(sheetId: UID): Table[];
11
+ getFilter(position: CellPosition): Filter | undefined;
12
+ getFilterId(position: CellPosition): FilterId | undefined;
13
+ getTable({ sheetId, col, row }: CellPosition): Table | undefined;
14
+ getTablesOverlappingZones(sheetId: UID, zones: Zone[]): Table[];
15
+ doesZonesContainFilter(sheetId: UID, zones: Zone[]): boolean;
16
+ getFilterHeaders(sheetId: UID): CellPosition[];
17
+ isFilterHeader({ sheetId, col, row }: CellPosition): boolean;
18
+ /**
19
+ * Check if we can create a dynamic table on the given zones.
20
+ * - The zones must be continuous
21
+ * - The union of the zones must be either:
22
+ * - A single cell that contains an array formula
23
+ * - All the spread cells of a single array formula
24
+ */
25
+ canCreateDynamicTableOnZones(sheetId: UID, zones: Zone[]): boolean;
26
+ private coreTableToTable;
27
+ private getDynamicTableFilters;
28
+ private getDynamicTableFilterId;
29
+ /** Check if a table contains array formula, as we cannot have them in a table in Excel */
30
+ private isTableExcelExportable;
31
+ exportForExcel(data: ExcelWorkbookData): void;
32
+ }
@@ -0,0 +1,24 @@
1
+ import { Color, ExcelWorkbookData, Range, UID } from "../../types";
2
+ import { ChartRuntime } from "../../types/chart/chart";
3
+ import { CoreViewCommand } from "../../types/commands";
4
+ import { UIPlugin } from "../ui_plugin";
5
+ interface EvaluationChartStyle {
6
+ background: Color;
7
+ fontColor: Color;
8
+ }
9
+ interface EvaluationChartState {
10
+ charts: Record<UID, ChartRuntime | undefined>;
11
+ }
12
+ export declare class EvaluationChartPlugin extends UIPlugin<EvaluationChartState> {
13
+ static getters: readonly ["getChartRuntime", "getStyleOfSingleCellChart"];
14
+ charts: Record<UID, ChartRuntime | undefined>;
15
+ private createRuntimeChart;
16
+ handle(cmd: CoreViewCommand): void;
17
+ getChartRuntime(figureId: UID): ChartRuntime;
18
+ /**
19
+ * Get the background and textColor of a chart based on the color of the first cell of the main range of the chart.
20
+ */
21
+ getStyleOfSingleCellChart(chartBackground: Color | undefined, mainRange: Range | undefined): EvaluationChartStyle;
22
+ exportForExcel(data: ExcelWorkbookData): void;
23
+ }
24
+ export {};
@@ -0,0 +1,41 @@
1
+ import { CellPosition, DataBarFill, Style } from "../../types/index";
2
+ import { UIPlugin } from "../ui_plugin";
3
+ import { CoreViewCommand } from "./../../types/commands";
4
+ export declare class EvaluationConditionalFormatPlugin extends UIPlugin {
5
+ static getters: readonly ["getConditionalIcon", "getCellConditionalFormatStyle", "getConditionalDataBar"];
6
+ private isStale;
7
+ private computedStyles;
8
+ private computedIcons;
9
+ private computedDataBars;
10
+ handle(cmd: CoreViewCommand): void;
11
+ finalize(): void;
12
+ getCellConditionalFormatStyle(position: CellPosition): Style | undefined;
13
+ getConditionalIcon({ sheetId, col, row }: CellPosition): string | undefined;
14
+ getConditionalDataBar({ sheetId, col, row }: CellPosition): DataBarFill | undefined;
15
+ /**
16
+ * Compute the styles according to the conditional formatting.
17
+ * This computation must happen after the cell values are computed if they change
18
+ *
19
+ * This result of the computation will be in the state.cell[XC].conditionalStyle and will be the union of all the style
20
+ * properties of the rules applied (in order).
21
+ * So if a cell has multiple conditional formatting applied to it, and each affect a different value of the style,
22
+ * the resulting style will have the combination of all those values.
23
+ * If multiple conditional formatting use the same style value, they will be applied in order so that the last applied wins
24
+ */
25
+ private getComputedStyles;
26
+ private getComputedIcons;
27
+ private getComputedDataBars;
28
+ private parsePoint;
29
+ /** Compute the CF icons for the given range and CF rule, and apply in in the given computedIcons object */
30
+ private applyIcon;
31
+ private computeIcon;
32
+ private applyDataBar;
33
+ /** Compute the color scale for the given range and CF rule, and apply in in the given computedStyle object */
34
+ private applyColorScale;
35
+ private computeColorDiffUnits;
36
+ private colorCell;
37
+ /**
38
+ * Execute the predicate to know if a conditional formatting rule should be applied to a cell
39
+ */
40
+ private rulePredicate;
41
+ }
@@ -0,0 +1,38 @@
1
+ import { CellPosition, CellValue, DataValidationCriterionType, DataValidationRule, HeaderIndex, Lazy, UID } from "../../types";
2
+ import { CoreViewCommand } from "../../types/commands";
3
+ import { UIPlugin } from "../ui_plugin";
4
+ interface InvalidValidationResult {
5
+ readonly isValid: false;
6
+ readonly rule: DataValidationRule;
7
+ readonly error: string;
8
+ }
9
+ interface ValidValidationResult {
10
+ readonly isValid: true;
11
+ }
12
+ type ValidationResult = ValidValidationResult | InvalidValidationResult;
13
+ type SheetValidationResult = {
14
+ [col: HeaderIndex]: Array<Lazy<ValidationResult>>;
15
+ };
16
+ export declare class EvaluationDataValidationPlugin extends UIPlugin {
17
+ static getters: readonly ["getDataValidationInvalidCriterionValueMessage", "getInvalidDataValidationMessage", "getValidationResultForCellValue", "isCellValidCheckbox", "isDataValidationInvalid"];
18
+ validationResults: Record<UID, SheetValidationResult>;
19
+ handle(cmd: CoreViewCommand): void;
20
+ isDataValidationInvalid(cellPosition: CellPosition): boolean;
21
+ getInvalidDataValidationMessage(cellPosition: CellPosition): string | undefined;
22
+ /**
23
+ * Check if the value is valid for the given criterion, and return an error message if not.
24
+ *
25
+ * The value must be canonicalized.
26
+ */
27
+ getDataValidationInvalidCriterionValueMessage(criterionType: DataValidationCriterionType, value: string): string | undefined;
28
+ isCellValidCheckbox(cellPosition: CellPosition): boolean;
29
+ /** Get the validation result if the cell on the given position had the given value */
30
+ getValidationResultForCellValue(cellValue: CellValue, cellPosition: CellPosition): ValidationResult;
31
+ private getValidationResultForCell;
32
+ private computeSheetValidationResults;
33
+ private getRuleErrorForCellValue;
34
+ /** Get the offset of the cell inside the ranges of the rule. Throws an error if the cell isn't inside the rule. */
35
+ private getCellOffsetInRule;
36
+ private getEvaluatedCriterionValues;
37
+ }
38
+ export {};