@odoo/o-spreadsheet 17.0.84 → 17.0.96

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 (398) hide show
  1. package/dist/o-spreadsheet.cjs.js +46071 -53455
  2. package/dist/o-spreadsheet.esm.js +45886 -53454
  3. package/dist/o-spreadsheet.iife.js +50220 -57787
  4. package/dist/o-spreadsheet.iife.min.js +534 -505
  5. package/dist/o_spreadsheet.xml +3 -3
  6. package/dist/types/actions/action.d.ts +73 -0
  7. package/dist/types/actions/data_actions.d.ts +9 -0
  8. package/dist/types/actions/edit_actions.d.ts +21 -0
  9. package/dist/types/actions/format_actions.d.ts +45 -0
  10. package/dist/types/actions/insert_actions.d.ts +28 -0
  11. package/dist/types/actions/menu_items_actions.d.ts +32 -0
  12. package/dist/types/actions/sheet_actions.d.ts +10 -0
  13. package/dist/types/actions/view_actions.d.ts +28 -0
  14. package/dist/types/collaborative/local_transport_service.d.ts +8 -0
  15. package/dist/types/collaborative/ot/ot.d.ts +22 -0
  16. package/dist/types/collaborative/ot/ot_helpers.d.ts +3 -0
  17. package/dist/types/collaborative/ot/ot_specific.d.ts +1 -0
  18. package/dist/types/collaborative/revisions.d.ts +22 -0
  19. package/dist/types/collaborative/session.d.ts +100 -0
  20. package/dist/types/components/action_button/action_button.d.ts +23 -0
  21. package/dist/types/components/animation/ripple.d.ts +53 -0
  22. package/dist/types/components/autofill/autofill.d.ts +25 -0
  23. package/dist/types/components/border_editor/border_editor.d.ts +41 -0
  24. package/dist/types/components/border_editor/border_editor_widget.d.ts +31 -0
  25. package/dist/types/components/bottom_bar/bottom_bar.d.ts +56 -0
  26. package/dist/types/components/bottom_bar_sheet/bottom_bar_sheet.d.ts +44 -0
  27. package/dist/types/components/bottom_bar_statistic/bottom_bar_statistic.d.ts +21 -0
  28. package/dist/types/components/collaborative_client_tag/collaborative_client_tag.d.ts +14 -0
  29. package/dist/types/components/color_picker/color_picker.d.ts +41 -0
  30. package/dist/types/components/color_picker/color_picker_widget.d.ts +27 -0
  31. package/dist/types/components/composer/autocomplete_dropdown/autocomplete_dropdown.d.ts +15 -0
  32. package/dist/types/components/composer/composer/composer.d.ts +135 -0
  33. package/dist/types/components/composer/content_editable_helper.d.ts +60 -0
  34. package/dist/types/components/composer/formula_assistant/formula_assistant.d.ts +20 -0
  35. package/dist/types/components/composer/grid_composer/grid_composer.d.ts +39 -0
  36. package/dist/types/components/composer/top_bar_composer/top_bar_composer.d.ts +18 -0
  37. package/dist/types/components/dashboard/dashboard.d.ts +50 -0
  38. package/dist/types/components/data_validation_overlay/data_validation_overlay.d.ts +15 -0
  39. package/dist/types/components/data_validation_overlay/dv_checkbox/dv_checkbox.d.ts +12 -0
  40. package/dist/types/components/data_validation_overlay/dv_list_icon/dv_list_icon.d.ts +10 -0
  41. package/dist/types/components/error_tooltip/error_tooltip.d.ts +18 -0
  42. package/dist/types/components/figures/chart/chartJs/chartjs.d.ts +18 -0
  43. package/dist/types/components/figures/chart/scorecard/chart_scorecard.d.ts +14 -0
  44. package/dist/types/components/figures/figure/figure.d.ts +41 -0
  45. package/dist/types/components/figures/figure_chart/figure_chart.d.ts +14 -0
  46. package/dist/types/components/figures/figure_container/figure_container.d.ts +117 -0
  47. package/dist/types/components/figures/figure_image/figure_image.d.ts +13 -0
  48. package/dist/types/components/filters/filter_icon/filter_icon.d.ts +12 -0
  49. package/dist/types/components/filters/filter_icons_overlay/filter_icons_overlay.d.ts +22 -0
  50. package/dist/types/components/filters/filter_menu/filter_menu.d.ts +43 -0
  51. package/dist/types/components/filters/filter_menu_item/filter_menu_value_item.d.ts +17 -0
  52. package/dist/types/components/font_size_editor/font_size_editor.d.ts +29 -0
  53. package/dist/types/components/grid/grid.d.ts +99 -0
  54. package/dist/types/components/grid_add_rows_footer/grid_add_rows_footer.d.ts +27 -0
  55. package/dist/types/components/grid_cell_icon/grid_cell_icon.d.ts +16 -0
  56. package/dist/types/components/grid_overlay/grid_overlay.d.ts +45 -0
  57. package/dist/types/components/grid_popover/grid_popover.d.ts +20 -0
  58. package/dist/types/components/header_group/header_group.d.ts +41 -0
  59. package/dist/types/components/header_group/header_group_container.d.ts +29 -0
  60. package/dist/types/components/headers_overlay/headers_overlay.d.ts +117 -0
  61. package/dist/types/components/helpers/css.d.ts +40 -0
  62. package/dist/types/components/helpers/dom_helpers.d.ts +34 -0
  63. package/dist/types/components/helpers/drag_and_drop.d.ts +20 -0
  64. package/dist/types/components/helpers/drag_and_drop_hook.d.ts +24 -0
  65. package/dist/types/components/helpers/draw_grid_hook.d.ts +3 -0
  66. package/dist/types/components/helpers/figure_container_helper.d.ts +14 -0
  67. package/dist/types/components/helpers/figure_drag_helper.d.ts +6 -0
  68. package/dist/types/components/helpers/figure_snap_helper.d.ts +25 -0
  69. package/dist/types/components/helpers/html_content_helpers.d.ts +2 -0
  70. package/dist/types/components/helpers/index.d.ts +1 -0
  71. package/dist/types/components/helpers/listener_hook.d.ts +10 -0
  72. package/dist/types/components/helpers/position_hook.d.ts +25 -0
  73. package/dist/types/components/helpers/selection_helpers.d.ts +2 -0
  74. package/dist/types/components/helpers/time_hooks.d.ts +9 -0
  75. package/dist/types/components/helpers/wheel_hook.d.ts +1 -0
  76. package/dist/types/components/highlight/border/border.d.ts +15 -0
  77. package/dist/types/components/highlight/corner/corner.d.ts +18 -0
  78. package/dist/types/components/highlight/highlight/highlight.d.ts +22 -0
  79. package/dist/types/components/icon_picker/icon_picker.d.ts +65 -0
  80. package/dist/types/components/icons/icons.d.ts +56 -0
  81. package/dist/types/components/index.d.ts +1 -0
  82. package/dist/types/components/link/index.d.ts +2 -0
  83. package/dist/types/components/link/link_display/link_display.d.ts +21 -0
  84. package/dist/types/components/link/link_editor/link_editor.d.ts +39 -0
  85. package/dist/types/components/menu/menu.d.ts +58 -0
  86. package/dist/types/components/paint_format_button/paint_format_button.d.ts +12 -0
  87. package/dist/types/components/popover/popover.d.ts +40 -0
  88. package/dist/types/components/scrollbar/index.d.ts +2 -0
  89. package/dist/types/components/scrollbar/scrollbar.d.ts +25 -0
  90. package/dist/types/components/scrollbar/scrollbar_horizontal.d.ts +26 -0
  91. package/dist/types/components/scrollbar/scrollbar_vertical.d.ts +26 -0
  92. package/dist/types/components/scrollbar.d.ts +9 -0
  93. package/dist/types/components/selection_input/selection_input.d.ts +54 -0
  94. package/dist/types/components/side_panel/chart/bar_chart/bar_chart_config_panel.d.ts +6 -0
  95. package/dist/types/components/side_panel/chart/bar_chart/bar_chart_design_panel.d.ts +4 -0
  96. package/dist/types/components/side_panel/chart/gauge_chart_panel/gauge_chart_config_panel.d.ts +26 -0
  97. package/dist/types/components/side_panel/chart/gauge_chart_panel/gauge_chart_design_panel.d.ts +34 -0
  98. package/dist/types/components/side_panel/chart/index.d.ts +17 -0
  99. package/dist/types/components/side_panel/chart/line_bar_pie_panel/config_panel.d.ts +45 -0
  100. package/dist/types/components/side_panel/chart/line_bar_pie_panel/design_panel.d.ts +26 -0
  101. package/dist/types/components/side_panel/chart/line_chart/line_chart_config_panel.d.ts +9 -0
  102. package/dist/types/components/side_panel/chart/line_chart/line_chart_design_panel.d.ts +4 -0
  103. package/dist/types/components/side_panel/chart/main_chart_panel/main_chart_panel.d.ts +20 -0
  104. package/dist/types/components/side_panel/chart/scorecard_chart_panel/scorecard_chart_config_panel.d.ts +32 -0
  105. package/dist/types/components/side_panel/chart/scorecard_chart_panel/scorecard_chart_design_panel.d.ts +26 -0
  106. package/dist/types/components/side_panel/conditional_formatting/cf_editor/cf_editor.d.ts +137 -0
  107. package/dist/types/components/side_panel/conditional_formatting/cf_preview_list/cf_preview_list.d.ts +58 -0
  108. package/dist/types/components/side_panel/conditional_formatting/conditional_formatting.d.ts +23 -0
  109. package/dist/types/components/side_panel/custom_currency/custom_currency.d.ts +27 -0
  110. package/dist/types/components/side_panel/data_validation/data_validation_panel.d.ts +25 -0
  111. package/dist/types/components/side_panel/data_validation/data_validation_panel_helper.d.ts +14 -0
  112. package/dist/types/components/side_panel/data_validation/dv_criterion_form/dv_criterion_form.d.ts +11 -0
  113. package/dist/types/components/side_panel/data_validation/dv_criterion_form/dv_date_criterion/dv_date_criterion.d.ts +16 -0
  114. package/dist/types/components/side_panel/data_validation/dv_criterion_form/dv_double_input_criterion/dv_double_input_criterion.d.ts +10 -0
  115. package/dist/types/components/side_panel/data_validation/dv_criterion_form/dv_input/dv_input.d.ts +30 -0
  116. package/dist/types/components/side_panel/data_validation/dv_criterion_form/dv_single_input_criterion/dv_single_input_criterion.d.ts +9 -0
  117. 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
  118. 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
  119. package/dist/types/components/side_panel/data_validation/dv_editor/dv_editor.d.ts +34 -0
  120. package/dist/types/components/side_panel/data_validation/dv_preview/dv_preview.d.ts +13 -0
  121. package/dist/types/components/side_panel/find_and_replace/find_and_replace.d.ts +27 -0
  122. package/dist/types/components/side_panel/more_formats/more_formats.d.ts +10 -0
  123. package/dist/types/components/side_panel/remove_duplicates/remove_duplicates.d.ts +32 -0
  124. package/dist/types/components/side_panel/select_menu/select_menu.d.ts +29 -0
  125. package/dist/types/components/side_panel/settings/settings_panel.d.ts +18 -0
  126. package/dist/types/components/side_panel/side_panel/side_panel.d.ts +18 -0
  127. package/dist/types/components/side_panel/split_to_columns_panel/split_to_columns_panel.d.ts +35 -0
  128. package/dist/types/components/spreadsheet/spreadsheet.d.ts +64 -0
  129. package/dist/types/components/top_bar/top_bar.d.ts +65 -0
  130. package/dist/types/components/translations_terms.d.ts +104 -0
  131. package/dist/types/components/validation_messages/validation_messages.d.ts +11 -0
  132. package/dist/types/constants.d.ts +137 -0
  133. package/dist/types/formulas/code_builder.d.ts +28 -0
  134. package/dist/types/formulas/compiler.d.ts +7 -0
  135. package/dist/types/formulas/composer_tokenizer.d.ts +31 -0
  136. package/dist/types/formulas/helpers.d.ts +2 -0
  137. package/dist/types/formulas/index.d.ts +16 -0
  138. package/dist/types/formulas/parser.d.ts +72 -0
  139. package/dist/types/formulas/range_tokenizer.d.ts +8 -0
  140. package/dist/types/formulas/tokenizer.d.ts +25 -0
  141. package/dist/types/functions/arguments.d.ts +10 -0
  142. package/dist/types/functions/helper_assert.d.ts +6 -0
  143. package/dist/types/functions/helper_financial.d.ts +49 -0
  144. package/dist/types/functions/helper_matrices.d.ts +23 -0
  145. package/dist/types/functions/helper_statistical.d.ts +3 -0
  146. package/dist/types/functions/helpers.d.ts +101 -0
  147. package/dist/types/functions/index.d.ts +10 -0
  148. package/dist/types/functions/module_array.d.ts +141 -0
  149. package/dist/types/functions/module_custom.d.ts +8 -0
  150. package/dist/types/functions/module_database.d.ts +85 -0
  151. package/dist/types/functions/module_date.d.ts +231 -0
  152. package/dist/types/functions/module_engineering.d.ts +8 -0
  153. package/dist/types/functions/module_filter.d.ts +17 -0
  154. package/dist/types/functions/module_financial.d.ts +358 -0
  155. package/dist/types/functions/module_info.d.ts +64 -0
  156. package/dist/types/functions/module_logical.d.ts +59 -0
  157. package/dist/types/functions/module_lookup.d.ts +72 -0
  158. package/dist/types/functions/module_math.d.ts +424 -0
  159. package/dist/types/functions/module_operators.d.ts +98 -0
  160. package/dist/types/functions/module_statistical.d.ts +296 -0
  161. package/dist/types/functions/module_text.d.ts +147 -0
  162. package/dist/types/functions/module_web.d.ts +8 -0
  163. package/dist/types/helpers/cells/cell_evaluation.d.ts +6 -0
  164. package/dist/types/helpers/cells/index.d.ts +2 -0
  165. package/dist/types/helpers/chart_date.d.ts +8 -0
  166. package/dist/types/helpers/clipboard/clipboard_abstract_cell_state.d.ts +26 -0
  167. package/dist/types/helpers/clipboard/clipboard_cells_state.d.ts +70 -0
  168. package/dist/types/helpers/clipboard/clipboard_figure_state.d.ts +41 -0
  169. package/dist/types/helpers/clipboard/clipboard_os_state.d.ts +12 -0
  170. package/dist/types/helpers/clipboard/navigator_clipboard_wrapper.d.ts +13 -0
  171. package/dist/types/helpers/color.d.ts +68 -0
  172. package/dist/types/helpers/coordinates.d.ts +40 -0
  173. package/dist/types/helpers/data_validation_helpers.d.ts +5 -0
  174. package/dist/types/helpers/dates.d.ts +90 -0
  175. package/dist/types/helpers/edge_scrolling.d.ts +9 -0
  176. package/dist/types/helpers/event_bus.d.ts +45 -0
  177. package/dist/types/helpers/figures/charts/abstract_chart.d.ts +56 -0
  178. package/dist/types/helpers/figures/charts/bar_chart.d.ts +29 -0
  179. package/dist/types/helpers/figures/charts/chart_common.d.ts +62 -0
  180. package/dist/types/helpers/figures/charts/chart_factory.d.ts +40 -0
  181. package/dist/types/helpers/figures/charts/chart_js_gauge_controller.d.ts +1 -0
  182. package/dist/types/helpers/figures/charts/chart_ui_common.d.ts +41 -0
  183. package/dist/types/helpers/figures/charts/gauge_chart.d.ts +23 -0
  184. package/dist/types/helpers/figures/charts/index.d.ts +10 -0
  185. package/dist/types/helpers/figures/charts/line_chart.d.ts +32 -0
  186. package/dist/types/helpers/figures/charts/pie_chart.d.ts +27 -0
  187. package/dist/types/helpers/figures/charts/scorecard_chart.d.ts +30 -0
  188. package/dist/types/helpers/figures/charts/scorecard_chart_config_builder.d.ts +35 -0
  189. package/dist/types/helpers/figures/figure/figure.d.ts +6 -0
  190. package/dist/types/helpers/figures/images/image_provider.d.ts +10 -0
  191. package/dist/types/helpers/filters.d.ts +19 -0
  192. package/dist/types/helpers/focus_manager.d.ts +5 -0
  193. package/dist/types/helpers/format.d.ts +32 -0
  194. package/dist/types/helpers/index.d.ts +15 -0
  195. package/dist/types/helpers/internal_viewport.d.ts +83 -0
  196. package/dist/types/helpers/inverse_commands.d.ts +2 -0
  197. package/dist/types/helpers/links.d.ts +23 -0
  198. package/dist/types/helpers/locale.d.ts +58 -0
  199. package/dist/types/helpers/misc.d.ts +178 -0
  200. package/dist/types/helpers/numbers.d.ts +25 -0
  201. package/dist/types/helpers/range.d.ts +59 -0
  202. package/dist/types/helpers/recompute_zones.d.ts +136 -0
  203. package/dist/types/helpers/rectangle.d.ts +7 -0
  204. package/dist/types/helpers/reference_type.d.ts +9 -0
  205. package/dist/types/helpers/references.d.ts +23 -0
  206. package/dist/types/helpers/search.d.ts +19 -0
  207. package/dist/types/helpers/sheet.d.ts +7 -0
  208. package/dist/types/helpers/sort.d.ts +16 -0
  209. package/dist/types/helpers/state_manager_helpers.d.ts +6 -0
  210. package/dist/types/helpers/text_helper.d.ts +28 -0
  211. package/dist/types/helpers/ui/cut_interactive.d.ts +2 -0
  212. package/dist/types/helpers/ui/filter_interactive.d.ts +7 -0
  213. package/dist/types/helpers/ui/freeze_interactive.d.ts +2 -0
  214. package/dist/types/helpers/ui/merge_interactive.d.ts +6 -0
  215. package/dist/types/helpers/ui/paste_interactive.d.ts +10 -0
  216. package/dist/types/helpers/ui/sheet_interactive.d.ts +2 -0
  217. package/dist/types/helpers/ui/split_to_columns_interactive.d.ts +6 -0
  218. package/dist/types/helpers/ui/stop_edition_interactive.d.ts +2 -0
  219. package/dist/types/helpers/ui/toggle_group_interactive.d.ts +6 -0
  220. package/dist/types/helpers/uuid.d.ts +20 -0
  221. package/dist/types/helpers/zones.d.ts +173 -0
  222. package/dist/types/history/branch.d.ts +62 -0
  223. package/dist/types/history/factory.d.ts +9 -0
  224. package/dist/types/history/operation.d.ts +17 -0
  225. package/dist/types/history/operation_sequence.d.ts +31 -0
  226. package/dist/types/history/repeat_commands/repeat_commands_generic.d.ts +6 -0
  227. package/dist/types/history/repeat_commands/repeat_commands_specific.d.ts +13 -0
  228. package/dist/types/history/repeat_commands/repeat_revision.d.ts +5 -0
  229. package/dist/types/history/selective_history.d.ts +81 -0
  230. package/dist/types/history/tree.d.ts +175 -0
  231. package/dist/types/index.d.ts +189 -0
  232. package/dist/types/migrations/data.d.ts +30 -0
  233. package/dist/types/migrations/legacy_tools.d.ts +15 -0
  234. package/dist/types/model.d.ts +192 -0
  235. package/dist/types/plugins/base_plugin.d.ts +63 -0
  236. package/dist/types/plugins/core/borders.d.ts +127 -0
  237. package/dist/types/plugins/core/cell.d.ts +103 -0
  238. package/dist/types/plugins/core/chart.d.ts +41 -0
  239. package/dist/types/plugins/core/conditional_format.d.ts +52 -0
  240. package/dist/types/plugins/core/data_validation.d.ts +31 -0
  241. package/dist/types/plugins/core/figures.d.ts +34 -0
  242. package/dist/types/plugins/core/filters.d.ts +43 -0
  243. package/dist/types/plugins/core/header_grouping.d.ts +82 -0
  244. package/dist/types/plugins/core/header_size.d.ts +23 -0
  245. package/dist/types/plugins/core/header_visibility.d.ts +20 -0
  246. package/dist/types/plugins/core/image.d.ts +32 -0
  247. package/dist/types/plugins/core/index.d.ts +13 -0
  248. package/dist/types/plugins/core/merge.d.ts +83 -0
  249. package/dist/types/plugins/core/range.d.ts +59 -0
  250. package/dist/types/plugins/core/settings.d.ts +12 -0
  251. package/dist/types/plugins/core/sheet.d.ts +151 -0
  252. package/dist/types/plugins/core_plugin.d.ts +49 -0
  253. package/dist/types/plugins/index.d.ts +7 -0
  254. package/dist/types/plugins/ui_core_views/cell_evaluation/compilation_parameters.d.ts +10 -0
  255. package/dist/types/plugins/ui_core_views/cell_evaluation/evaluation_plugin.d.ts +43 -0
  256. package/dist/types/plugins/ui_core_views/cell_evaluation/evaluator.d.ts +90 -0
  257. package/dist/types/plugins/ui_core_views/cell_evaluation/formula_dependency_graph.d.ts +23 -0
  258. package/dist/types/plugins/ui_core_views/cell_evaluation/index.d.ts +1 -0
  259. package/dist/types/plugins/ui_core_views/cell_evaluation/r_tree.d.ts +108 -0
  260. package/dist/types/plugins/ui_core_views/cell_evaluation/spreading_relation.d.ts +60 -0
  261. package/dist/types/plugins/ui_core_views/custom_colors.d.ts +24 -0
  262. package/dist/types/plugins/ui_core_views/evaluation_chart.d.ts +24 -0
  263. package/dist/types/plugins/ui_core_views/evaluation_conditional_format.d.ts +37 -0
  264. package/dist/types/plugins/ui_core_views/evaluation_data_validation.d.ts +38 -0
  265. package/dist/types/plugins/ui_core_views/header_sizes_ui.d.ts +32 -0
  266. package/dist/types/plugins/ui_core_views/index.d.ts +5 -0
  267. package/dist/types/plugins/ui_feature/autofill.d.ts +60 -0
  268. package/dist/types/plugins/ui_feature/automatic_sum.d.ts +101 -0
  269. package/dist/types/plugins/ui_feature/cell_popovers.d.ts +16 -0
  270. package/dist/types/plugins/ui_feature/collaborative.d.ts +25 -0
  271. package/dist/types/plugins/ui_feature/data_cleanup.d.ts +16 -0
  272. package/dist/types/plugins/ui_feature/find_and_replace.d.ts +76 -0
  273. package/dist/types/plugins/ui_feature/format.d.ts +23 -0
  274. package/dist/types/plugins/ui_feature/header_visibility_ui.d.ts +21 -0
  275. package/dist/types/plugins/ui_feature/highlight.d.ts +12 -0
  276. package/dist/types/plugins/ui_feature/index.d.ts +15 -0
  277. package/dist/types/plugins/ui_feature/local_history.d.ts +36 -0
  278. package/dist/types/plugins/ui_feature/renderer.d.ts +45 -0
  279. package/dist/types/plugins/ui_feature/selection_input.d.ts +67 -0
  280. package/dist/types/plugins/ui_feature/selection_inputs_manager.d.ts +33 -0
  281. package/dist/types/plugins/ui_feature/sort.d.ts +75 -0
  282. package/dist/types/plugins/ui_feature/split_to_columns.d.ts +21 -0
  283. package/dist/types/plugins/ui_feature/ui_options.d.ts +8 -0
  284. package/dist/types/plugins/ui_feature/ui_sheet.d.ts +30 -0
  285. package/dist/types/plugins/ui_plugin.d.ts +36 -0
  286. package/dist/types/plugins/ui_stateful/clipboard.d.ts +43 -0
  287. package/dist/types/plugins/ui_stateful/edition.d.ts +117 -0
  288. package/dist/types/plugins/ui_stateful/filter_evaluation.d.ts +26 -0
  289. package/dist/types/plugins/ui_stateful/header_positions.d.ts +28 -0
  290. package/dist/types/plugins/ui_stateful/index.d.ts +5 -0
  291. package/dist/types/plugins/ui_stateful/selection.d.ts +78 -0
  292. package/dist/types/plugins/ui_stateful/sheetview.d.ts +164 -0
  293. package/dist/types/registries/autofill_modifiers.d.ts +7 -0
  294. package/dist/types/registries/autofill_rules.d.ts +15 -0
  295. package/dist/types/registries/cell_clickable_registry.d.ts +8 -0
  296. package/dist/types/registries/cell_popovers_registry.d.ts +3 -0
  297. package/dist/types/registries/chart_types.d.ts +28 -0
  298. package/dist/types/registries/currencies_registry.d.ts +7 -0
  299. package/dist/types/registries/data_validation_registry.d.ts +32 -0
  300. package/dist/types/registries/figure_registry.d.ts +18 -0
  301. package/dist/types/registries/index.d.ts +11 -0
  302. package/dist/types/registries/inverse_command_registry.d.ts +5 -0
  303. package/dist/types/registries/menu_items_registry.d.ts +19 -0
  304. package/dist/types/registries/menus/cell_menu_registry.d.ts +2 -0
  305. package/dist/types/registries/menus/col_menu_registry.d.ts +2 -0
  306. package/dist/types/registries/menus/header_group_registry.d.ts +7 -0
  307. package/dist/types/registries/menus/index.d.ts +7 -0
  308. package/dist/types/registries/menus/link_menu_registry.d.ts +2 -0
  309. package/dist/types/registries/menus/number_format_menu_registry.d.ts +4 -0
  310. package/dist/types/registries/menus/row_menu_registry.d.ts +2 -0
  311. package/dist/types/registries/menus/sheet_menu_registry.d.ts +4 -0
  312. package/dist/types/registries/menus/topbar_menu_registry.d.ts +2 -0
  313. package/dist/types/registries/ot_registry.d.ts +21 -0
  314. package/dist/types/registries/registry.d.ts +44 -0
  315. package/dist/types/registries/repeat_commands_registry.d.ts +20 -0
  316. package/dist/types/registries/side_panel_registry.d.ts +8 -0
  317. package/dist/types/registries/topbar_component_registry.d.ts +18 -0
  318. package/dist/types/selection_stream/event_stream.d.ts +64 -0
  319. package/dist/types/selection_stream/selection_stream_processor.d.ts +167 -0
  320. package/dist/types/state_observer.d.ts +15 -0
  321. package/dist/types/translation.d.ts +21 -0
  322. package/dist/types/types/autofill.d.ts +62 -0
  323. package/dist/types/types/cell_popovers.d.ts +44 -0
  324. package/dist/types/types/cells.d.ts +64 -0
  325. package/dist/types/types/chart/bar_chart.d.ts +19 -0
  326. package/dist/types/types/chart/chart.d.ts +48 -0
  327. package/dist/types/types/chart/common_chart.d.ts +2 -0
  328. package/dist/types/types/chart/gauge_chart.d.ts +73 -0
  329. package/dist/types/types/chart/index.d.ts +7 -0
  330. package/dist/types/types/chart/line_chart.d.ts +21 -0
  331. package/dist/types/types/chart/pie_chart.d.ts +17 -0
  332. package/dist/types/types/chart/scorecard_chart.d.ts +26 -0
  333. package/dist/types/types/clipboard.d.ts +31 -0
  334. package/dist/types/types/collaborative/revisions.d.ts +7 -0
  335. package/dist/types/types/collaborative/session.d.ts +46 -0
  336. package/dist/types/types/collaborative/transport_service.d.ts +91 -0
  337. package/dist/types/types/commands.d.ts +873 -0
  338. package/dist/types/types/conditional_formatting.d.ts +103 -0
  339. package/dist/types/types/currency.d.ts +7 -0
  340. package/dist/types/types/data_validation.d.ts +121 -0
  341. package/dist/types/types/env.d.ts +33 -0
  342. package/dist/types/types/errors.d.ts +33 -0
  343. package/dist/types/types/event_stream/index.d.ts +1 -0
  344. package/dist/types/types/event_stream/selection_events.d.ts +11 -0
  345. package/dist/types/types/figure.d.ts +14 -0
  346. package/dist/types/types/files.d.ts +27 -0
  347. package/dist/types/types/format.d.ts +8 -0
  348. package/dist/types/types/functions.d.ts +49 -0
  349. package/dist/types/types/getters.d.ts +101 -0
  350. package/dist/types/types/history.d.ts +43 -0
  351. package/dist/types/types/image.d.ts +12 -0
  352. package/dist/types/types/index.d.ts +30 -0
  353. package/dist/types/types/locale.d.ts +13 -0
  354. package/dist/types/types/misc.d.ts +276 -0
  355. package/dist/types/types/range.d.ts +21 -0
  356. package/dist/types/types/rendering.d.ts +86 -0
  357. package/dist/types/types/validator.d.ts +16 -0
  358. package/dist/types/types/workbook_data.d.ts +112 -0
  359. package/dist/types/types/xlsx.d.ts +441 -0
  360. package/dist/types/xlsx/constants.d.ts +74 -0
  361. package/dist/types/xlsx/conversion/cf_conversion.d.ts +4 -0
  362. package/dist/types/xlsx/conversion/color_conversion.d.ts +24 -0
  363. package/dist/types/xlsx/conversion/conversion_maps.d.ts +167 -0
  364. package/dist/types/xlsx/conversion/figure_conversion.d.ts +3 -0
  365. package/dist/types/xlsx/conversion/format_conversion.d.ts +8 -0
  366. package/dist/types/xlsx/conversion/formula_conversion.d.ts +9 -0
  367. package/dist/types/xlsx/conversion/index.d.ts +7 -0
  368. package/dist/types/xlsx/conversion/sheet_conversion.d.ts +4 -0
  369. package/dist/types/xlsx/conversion/style_conversion.d.ts +19 -0
  370. package/dist/types/xlsx/conversion/table_conversion.d.ts +14 -0
  371. package/dist/types/xlsx/extraction/base_extractor.d.ts +142 -0
  372. package/dist/types/xlsx/extraction/cf_extractor.d.ts +14 -0
  373. package/dist/types/xlsx/extraction/chart_extractor.d.ts +11 -0
  374. package/dist/types/xlsx/extraction/external_book_extractor.d.ts +6 -0
  375. package/dist/types/xlsx/extraction/figure_extractor.d.ts +8 -0
  376. package/dist/types/xlsx/extraction/index.d.ts +3 -0
  377. package/dist/types/xlsx/extraction/misc_extractor.d.ts +18 -0
  378. package/dist/types/xlsx/extraction/pivot_extractor.d.ts +8 -0
  379. package/dist/types/xlsx/extraction/sheet_extractor.d.ts +23 -0
  380. package/dist/types/xlsx/extraction/style_extractor.d.ts +19 -0
  381. package/dist/types/xlsx/extraction/table_extractor.d.ts +10 -0
  382. package/dist/types/xlsx/functions/cells.d.ts +11 -0
  383. package/dist/types/xlsx/functions/charts.d.ts +3 -0
  384. package/dist/types/xlsx/functions/conditional_formatting.d.ts +3 -0
  385. package/dist/types/xlsx/functions/drawings.d.ts +5 -0
  386. package/dist/types/xlsx/functions/styles.d.ts +10 -0
  387. package/dist/types/xlsx/functions/table.d.ts +2 -0
  388. package/dist/types/xlsx/functions/worksheet.d.ts +9 -0
  389. package/dist/types/xlsx/helpers/colors.d.ts +8 -0
  390. package/dist/types/xlsx/helpers/content_helpers.d.ts +48 -0
  391. package/dist/types/xlsx/helpers/misc.d.ts +29 -0
  392. package/dist/types/xlsx/helpers/xlsx_helper.d.ts +10 -0
  393. package/dist/types/xlsx/helpers/xlsx_parser_error_manager.d.ts +34 -0
  394. package/dist/types/xlsx/helpers/xml_helpers.d.ts +36 -0
  395. package/dist/types/xlsx/xlsx_reader.d.ts +13 -0
  396. package/dist/types/xlsx/xlsx_writer.d.ts +8 -0
  397. package/package.json +42 -25
  398. package/dist/o-spreadsheet.d.ts +0 -8046
@@ -0,0 +1,76 @@
1
+ import { Command, GridRenderingContext, HeaderIndex, LAYERS } from "../../types/index";
2
+ import { UIPlugin } from "../ui_plugin";
3
+ export interface SearchOptions {
4
+ matchCase: boolean;
5
+ exactMatch: boolean;
6
+ searchFormulas: boolean;
7
+ }
8
+ interface SearchMatch {
9
+ selected: boolean;
10
+ col: HeaderIndex;
11
+ row: HeaderIndex;
12
+ }
13
+ /**
14
+ * Find and Replace Plugin
15
+ *
16
+ * This plugin is used in combination with the find_and_replace sidePanel
17
+ * It is used to 'highlight' cells that match an input string according to
18
+ * the given searchOptions. The second part of this plugin makes it possible
19
+ * (again with the find_and_replace sidePanel), to replace the values that match
20
+ * the search with a new value.
21
+ */
22
+ export declare class FindAndReplacePlugin extends UIPlugin {
23
+ static layers: LAYERS[];
24
+ static getters: readonly ["getSearchMatches", "getCurrentSelectedMatchIndex"];
25
+ private searchMatches;
26
+ private selectedMatchIndex;
27
+ private currentSearchRegex;
28
+ private searchOptions;
29
+ private toSearch;
30
+ private isSearchDirty;
31
+ handle(cmd: Command): void;
32
+ finalize(): void;
33
+ getSearchMatches(): SearchMatch[];
34
+ getCurrentSelectedMatchIndex(): number | null;
35
+ /**
36
+ * Will update the current searchOptions and accordingly update the regex.
37
+ * It will then search for matches using the regex and store them.
38
+ */
39
+ private updateSearch;
40
+ /**
41
+ * refresh the matches according to the current search options
42
+ */
43
+ private refreshSearch;
44
+ /**
45
+ * Updates the regex based on the current searchOptions and
46
+ * the value toSearch
47
+ */
48
+ private updateRegex;
49
+ /**
50
+ * Find matches using the current regex
51
+ */
52
+ private findMatches;
53
+ private sortByRowThenColumn;
54
+ /**
55
+ * Changes the selected search cell. Given a direction it will
56
+ * Change the selection to the previous, current or nextCell,
57
+ * if it exists otherwise it will set the selectedMatchIndex to null.
58
+ * It will also reset the index to 0 if the search has changed.
59
+ * It is also used to keep coherence between the selected searchMatch
60
+ * and selectedMatchIndex.
61
+ */
62
+ private selectNextCell;
63
+ private clearSearch;
64
+ private replaceMatch;
65
+ /**
66
+ * Replace the value of the currently selected match
67
+ */
68
+ private replace;
69
+ /**
70
+ * Apply the replace function to all the matches one time.
71
+ */
72
+ private replaceAll;
73
+ private getSearchableString;
74
+ drawGrid(renderingContext: GridRenderingContext): void;
75
+ }
76
+ export {};
@@ -0,0 +1,23 @@
1
+ import { Command } from "../../types/index";
2
+ import { UIPlugin } from "../ui_plugin";
3
+ export declare class FormatPlugin extends UIPlugin {
4
+ handle(cmd: Command): void;
5
+ /**
6
+ * This function allows to adjust the quantity of decimal places after a decimal
7
+ * point on cells containing number value. It does this by changing the cells
8
+ * format. Values aren't modified.
9
+ *
10
+ * The change of the decimal quantity is done one by one, the sign of the step
11
+ * variable indicates whether we are increasing or decreasing.
12
+ *
13
+ * If several cells are in the zone, each cell's format will be individually
14
+ * evaluated and updated with the number type.
15
+ */
16
+ private setDecimal;
17
+ /**
18
+ * Take a range of cells and return the format of the first cell containing a
19
+ * number value. Returns a default format if the cell hasn't format. Returns
20
+ * undefined if no number value in the range.
21
+ */
22
+ private getCellNumberFormat;
23
+ }
@@ -0,0 +1,21 @@
1
+ import { CellPosition, Dimension, ExcelWorkbookData, HeaderIndex, UID } from "../../types";
2
+ import { UIPlugin } from "../ui_plugin";
3
+ export declare class HeaderVisibilityUIPlugin extends UIPlugin {
4
+ static getters: readonly ["getNextVisibleCellPosition", "findVisibleHeader", "findLastVisibleColRowIndex", "findFirstVisibleColRowIndex", "isRowHidden", "isColHidden", "isHeaderHidden"];
5
+ isRowHidden(sheetId: UID, index: number): boolean;
6
+ isColHidden(sheetId: UID, index: number): boolean;
7
+ isHeaderHidden(sheetId: UID, dimension: Dimension, index: number): boolean;
8
+ getNextVisibleCellPosition({ sheetId, col, row }: CellPosition): CellPosition;
9
+ /**
10
+ * Find the first visible header in the range [`from` => `to`].
11
+ *
12
+ * Both `from` and `to` are inclusive.
13
+ */
14
+ findVisibleHeader(sheetId: UID, dimension: Dimension, from: number, to: number): number | undefined;
15
+ findLastVisibleColRowIndex(sheetId: UID, dimension: Dimension, { last, first }: {
16
+ first: HeaderIndex;
17
+ last: HeaderIndex;
18
+ }): HeaderIndex;
19
+ findFirstVisibleColRowIndex(sheetId: UID, dimension: Dimension): number | undefined;
20
+ exportForExcel(data: ExcelWorkbookData): void;
21
+ }
@@ -0,0 +1,12 @@
1
+ import { GridRenderingContext, Highlight, LAYERS } from "../../types/index";
2
+ import { UIPlugin } from "../ui_plugin";
3
+ /**
4
+ * HighlightPlugin
5
+ */
6
+ export declare class HighlightPlugin extends UIPlugin {
7
+ static layers: LAYERS[];
8
+ static getters: readonly ["getHighlights"];
9
+ getHighlights(): Highlight[];
10
+ private prepareHighlights;
11
+ drawGrid(renderingContext: GridRenderingContext): void;
12
+ }
@@ -0,0 +1,15 @@
1
+ export * from "./autofill";
2
+ export * from "./automatic_sum";
3
+ export * from "./cell_popovers";
4
+ export * from "./collaborative";
5
+ export * from "./data_cleanup";
6
+ export * from "./find_and_replace";
7
+ export * from "./format";
8
+ export * from "./header_visibility_ui";
9
+ export * from "./highlight";
10
+ export * from "./renderer";
11
+ export * from "./selection_input";
12
+ export * from "./selection_inputs_manager";
13
+ export * from "./sort";
14
+ export * from "./ui_options";
15
+ export * from "./ui_sheet";
@@ -0,0 +1,36 @@
1
+ import { Command, CommandResult } from "../../types";
2
+ import { UIPlugin, UIPluginConfig } from "../ui_plugin";
3
+ /**
4
+ * Local History
5
+ *
6
+ * The local history is responsible of tracking the locally state updates
7
+ * It maintains the local undo and redo stack to allow to undo/redo only local
8
+ * changes
9
+ */
10
+ export declare class HistoryPlugin extends UIPlugin {
11
+ static getters: readonly ["canUndo", "canRedo"];
12
+ /**
13
+ * Ids of the revisions which can be undone
14
+ */
15
+ private undoStack;
16
+ /**
17
+ * Ids of the revisions which can be redone
18
+ */
19
+ private redoStack;
20
+ private session;
21
+ constructor(config: UIPluginConfig);
22
+ allowDispatch(cmd: Command): CommandResult;
23
+ handle(cmd: Command): void;
24
+ finalize(): void;
25
+ private requestHistoryChange;
26
+ canUndo(): boolean;
27
+ canRedo(): boolean;
28
+ private onNewLocalStateUpdate;
29
+ /**
30
+ * Fetch the last revision which is not empty and not a repeated command
31
+ *
32
+ * Ignore repeated commands (REQUEST_REDO command as root command)
33
+ * Ignore standard undo/redo revisions (that are empty)
34
+ */
35
+ private getPossibleRevisionToRepeat;
36
+ }
@@ -0,0 +1,45 @@
1
+ import { GridRenderingContext, HeaderDimensions, HeaderIndex, LAYERS, UID } from "../../types/index";
2
+ import { UIPlugin } from "../ui_plugin";
3
+ export declare const CELL_BACKGROUND_GRIDLINE_STROKE_STYLE = "#111";
4
+ export declare class RendererPlugin extends UIPlugin {
5
+ static layers: LAYERS[];
6
+ static getters: readonly ["getColDimensionsInViewport", "getRowDimensionsInViewport"];
7
+ private boxes;
8
+ /**
9
+ * Returns the size, start and end coordinates of a column relative to the left
10
+ * column of the current viewport
11
+ */
12
+ getColDimensionsInViewport(sheetId: UID, col: HeaderIndex): HeaderDimensions;
13
+ /**
14
+ * Returns the size, start and end coordinates of a row relative to the top row
15
+ * of the current viewport
16
+ */
17
+ getRowDimensionsInViewport(sheetId: UID, row: HeaderIndex): HeaderDimensions;
18
+ /**
19
+ * Get the offset of a header (see getColRowOffsetInViewport), adjusted with the header
20
+ * size (HEADER_HEIGHT and HEADER_WIDTH)
21
+ */
22
+ private getHeaderOffset;
23
+ drawGrid(renderingContext: GridRenderingContext, layer: LAYERS): void;
24
+ private drawGlobalBackground;
25
+ private drawBackground;
26
+ private drawCellBackground;
27
+ private drawOverflowingCellBackground;
28
+ private drawBorders;
29
+ private drawTexts;
30
+ private drawIcon;
31
+ /** Compute the vertical start point from which a text line should be draw.
32
+ *
33
+ * Note that in case the cell does not have enough spaces to display its text lines,
34
+ * (wrapping cell case) then the vertical align should be at the top.
35
+ * */
36
+ private computeTextYCoordinate;
37
+ private drawHeaders;
38
+ private drawFrozenPanesHeaders;
39
+ private drawFrozenPanes;
40
+ private findNextEmptyCol;
41
+ private findPreviousEmptyCol;
42
+ private computeCellAlignment;
43
+ private createZoneBox;
44
+ private getGridBoxes;
45
+ }
@@ -0,0 +1,67 @@
1
+ import { StreamCallbacks } from "../../selection_stream/event_stream";
2
+ import { SelectionEvent } from "../../types/event_stream";
3
+ import { Color, Command, Highlight, LAYERS } from "../../types/index";
4
+ import { UIPlugin, UIPluginConfig } from "../ui_plugin";
5
+ export interface RangeInputValue {
6
+ id: number;
7
+ xc: string;
8
+ color: Color;
9
+ }
10
+ /**
11
+ * Selection input Plugin
12
+ *
13
+ * The SelectionInput component input and output are both arrays of strings, but
14
+ * it requires an intermediary internal state to work.
15
+ * This plugin handles this internal state.
16
+ */
17
+ export declare class SelectionInputPlugin extends UIPlugin implements StreamCallbacks<SelectionEvent> {
18
+ readonly inputHasSingleRange: boolean;
19
+ static layers: LAYERS[];
20
+ static getters: never[];
21
+ ranges: RangeInputValue[];
22
+ focusedRangeIndex: number | null;
23
+ private inputSheetId;
24
+ constructor(config: UIPluginConfig, initialRanges: string[], inputHasSingleRange: boolean);
25
+ handleEvent(event: SelectionEvent): void;
26
+ handle(cmd: Command): void;
27
+ getSelectionInputValue(): string[];
28
+ getSelectionInputHighlights(): Highlight[];
29
+ /**
30
+ * Focus a given range or remove the focus.
31
+ */
32
+ private focus;
33
+ private focusLast;
34
+ private unfocus;
35
+ private setContent;
36
+ /**
37
+ * Insert new inputs after the given index.
38
+ */
39
+ private insertNewRange;
40
+ /**
41
+ * Set a new value in a given range input. If more than one value is provided,
42
+ * new inputs will be added.
43
+ */
44
+ private setRange;
45
+ private removeRange;
46
+ /**
47
+ * Convert highlights input format to the command format.
48
+ * The first xc in the input range will keep its color.
49
+ * Invalid ranges and ranges from other sheets than the active sheets
50
+ * are ignored.
51
+ */
52
+ private inputToHighlights;
53
+ private cleanInputs;
54
+ /**
55
+ * Check if a cell or range reference should be highlighted.
56
+ * It should be highlighted if it references the current active sheet.
57
+ * Note that if no sheet name is given in the reference ("A1"), it refers to the
58
+ * active sheet when the selection input was enabled which might be different from
59
+ * the current active sheet.
60
+ */
61
+ private shouldBeHighlighted;
62
+ /**
63
+ * Return the index of a range given its id
64
+ * or `null` if the range is not found.
65
+ */
66
+ getIndex(rangeId: number | null): number | null;
67
+ }
@@ -0,0 +1,33 @@
1
+ import { Command, CommandResult, Highlight, LAYERS, LocalCommand, UID } from "../../types/index";
2
+ import { UIPlugin, UIPluginConfig } from "../ui_plugin";
3
+ import { RangeInputValue, SelectionInputPlugin } from "./selection_input";
4
+ /**
5
+ * Selection input Plugin
6
+ *
7
+ * The SelectionInput component input and output are both arrays of strings, but
8
+ * it requires an intermediary internal state to work.
9
+ * This plugin handles this internal state.
10
+ */
11
+ export declare class SelectionInputsManagerPlugin extends UIPlugin {
12
+ private config;
13
+ static layers: LAYERS[];
14
+ static getters: readonly ["getSelectionInput", "getSelectionInputValue", "isRangeValid", "getSelectionInputHighlights"];
15
+ private inputs;
16
+ private focusedInputId;
17
+ get currentInput(): SelectionInputPlugin | null;
18
+ constructor(config: UIPluginConfig);
19
+ allowDispatch(cmd: LocalCommand): CommandResult;
20
+ handle(cmd: Command): void;
21
+ /**
22
+ * Return a list of all valid XCs.
23
+ * e.g. ["A1", "Sheet2!B3", "E12"]
24
+ */
25
+ getSelectionInput(id: UID): (RangeInputValue & {
26
+ isFocused: boolean;
27
+ })[];
28
+ isRangeValid(reference: string): boolean;
29
+ getSelectionInputValue(id: UID): string[];
30
+ getSelectionInputHighlights(): Highlight[];
31
+ private initInput;
32
+ private unfocus;
33
+ }
@@ -0,0 +1,75 @@
1
+ import { Command, CommandResult, LocalCommand, UID, Zone } from "../../types/index";
2
+ import { UIPlugin } from "../ui_plugin";
3
+ export declare class SortPlugin extends UIPlugin {
4
+ static getters: readonly ["getContiguousZone"];
5
+ allowDispatch(cmd: LocalCommand): CommandResult | CommandResult[];
6
+ handle(cmd: Command): void;
7
+ private checkMerge;
8
+ private checkMergeSizes;
9
+ /**
10
+ * safe-version of expandZone to make sure we don't get out of the grid
11
+ */
12
+ private expand;
13
+ /**
14
+ * verifies the presence of at least one non-empty cell in the given zone
15
+ */
16
+ private checkExpandedValues;
17
+ /**
18
+ * This function will expand the provided zone in directions (top, bottom, left, right) for which there
19
+ * are non-null cells on the external boundary of the zone in the given direction.
20
+ *
21
+ * Example:
22
+ * A B C D E
23
+ * ___ ___ ___ ___ ___
24
+ * 1 | | D | | | |
25
+ * ___ ___ ___ ___ ___
26
+ * 2 | 5 | | 1 | D | |
27
+ * ___ ___ ___ ___ ___
28
+ * 3 | | | A | X | |
29
+ * ___ ___ ___ ___ ___
30
+ * 4 | | | | | |
31
+ * ___ ___ ___ ___ ___
32
+ *
33
+ * Let's consider a provided zone corresponding to (C2:D3) - (left:2, right: 3, top:1, bottom:2)
34
+ * - the top external boundary is (B1:E1)
35
+ * Since we have B1='D' != "", we expand to the top: => (C1:D3)
36
+ * The top boundary having reached the top of the grid, we cannot expand in that direction anymore
37
+ *
38
+ * - the left boundary is (B1:B4)
39
+ * since we have B1 again, we expand to the left => (B1:D3)
40
+ *
41
+ * - the right and bottom boundaries are a dead end for now as (E1:E4) and (A4:E4) are empty.
42
+ *
43
+ * - the left boundary is now (A1:A4)
44
+ * Since we have A2=5 != "", we can therefore expand to the left => (A1:D3)
45
+ *
46
+ * This will be the final zone as left and top have reached the boundaries of the grid and
47
+ * the other boundaries (E1:E4) and (A4:E4) are empty.
48
+ *
49
+ * @param sheetId UID of concerned sheet
50
+ * @param zone Zone
51
+ *
52
+ */
53
+ getContiguousZone(sheetId: UID, zone: Zone): Zone;
54
+ /**
55
+ * This function evaluates if the top row of a provided zone can be considered as a `header`
56
+ * by checking the following criteria:
57
+ * * If the left-most column top row value (topLeft) is empty, we ignore it while evaluating the criteria.
58
+ * 1 - Apart from the left-most column, every element of the top row must be non-empty, i.e. a cell should be present in the sheet.
59
+ * 2 - There should be at least one column in which the type (CellValueType) of the rop row cell differs from the type of the cell below.
60
+ * For the second criteria, we ignore columns on which the cell below is empty.
61
+ *
62
+ */
63
+ private hasHeader;
64
+ private sortZone;
65
+ /**
66
+ * Return the distances between main merge cells in the zone.
67
+ * (1 if there are no merges).
68
+ * Note: it is assumed all merges are the same in the zone.
69
+ */
70
+ private mainCellsSteps;
71
+ /**
72
+ * Return a 2D array of cells in the zone (main merge cells if there are merges)
73
+ */
74
+ private mainCells;
75
+ }
@@ -0,0 +1,21 @@
1
+ import { Command, CommandResult } from "../../types/index";
2
+ import { UIPlugin } from "../ui_plugin";
3
+ export declare class SplitToColumnsPlugin extends UIPlugin {
4
+ static getters: readonly ["getAutomaticSeparator"];
5
+ allowDispatch(cmd: Command): CommandResult | CommandResult[];
6
+ handle(cmd: Command): void;
7
+ getAutomaticSeparator(): string;
8
+ private getAutoSeparatorForString;
9
+ private splitIntoColumns;
10
+ private getSplittedCols;
11
+ private splitAndRemoveTrailingEmpty;
12
+ private willSplittedColsOverwriteContent;
13
+ private removeMergesInSplitZone;
14
+ private addColsToAvoidCollisions;
15
+ private getColsToAddToAvoidCollision;
16
+ private addColumnsToNotOverflowSheet;
17
+ private checkSingleColSelected;
18
+ private checkNonEmptySelector;
19
+ private checkNotOverwritingContent;
20
+ private checkSeparatorInSelection;
21
+ }
@@ -0,0 +1,8 @@
1
+ import { Command } from "../../types/index";
2
+ import { UIPlugin } from "../ui_plugin";
3
+ export declare class UIOptionsPlugin extends UIPlugin {
4
+ static getters: readonly ["shouldShowFormulas"];
5
+ private showFormulas;
6
+ handle(cmd: Command): void;
7
+ shouldShowFormulas(): boolean;
8
+ }
@@ -0,0 +1,30 @@
1
+ import { Command, CommandResult, LocalCommand } from "../../types";
2
+ import { CellPosition, Pixel, Style } from "../../types/misc";
3
+ import { UIPlugin } from "../ui_plugin";
4
+ export declare class SheetUIPlugin extends UIPlugin {
5
+ static getters: readonly ["doesCellHaveGridIcon", "getCellWidth", "getTextWidth", "getCellText", "getCellMultiLineText"];
6
+ private ctx;
7
+ allowDispatch(cmd: LocalCommand): CommandResult | CommandResult[];
8
+ handle(cmd: Command): void;
9
+ getCellWidth(position: CellPosition): number;
10
+ getTextWidth(text: string, style: Style): Pixel;
11
+ getCellText(position: CellPosition, showFormula?: boolean): string;
12
+ /**
13
+ * Return the text of a cell, split in multiple lines if needed. The text will be split in multiple
14
+ * line if it contains NEWLINE characters, or if it's longer than the given width.
15
+ */
16
+ getCellMultiLineText(position: CellPosition, width: number | undefined): string[];
17
+ doesCellHaveGridIcon(position: CellPosition): boolean;
18
+ private getColMaxWidth;
19
+ /**
20
+ * Check that any "sheetId" in the command matches an existing
21
+ * sheet.
22
+ */
23
+ private checkSheetExists;
24
+ /**
25
+ * Check if zones in the command are well formed and
26
+ * not outside the sheet.
27
+ */
28
+ private checkZonesAreInSheet;
29
+ private autoResizeRows;
30
+ }
@@ -0,0 +1,36 @@
1
+ import { Session } from "../collaborative/session";
2
+ import { ModelConfig } from "../model";
3
+ import { SelectionStreamProcessor } from "../selection_stream/selection_stream_processor";
4
+ import { StateObserver } from "../state_observer";
5
+ import { ClientPosition, Command, CommandDispatcher, Format, Getters, GridRenderingContext, LAYERS } from "../types/index";
6
+ import { BasePlugin } from "./base_plugin";
7
+ type UIActions = Pick<ModelConfig, "notifyUI" | "raiseBlockingErrorUI">;
8
+ export interface UIPluginConfig {
9
+ readonly getters: Getters;
10
+ readonly stateObserver: StateObserver;
11
+ readonly dispatch: CommandDispatcher["dispatch"];
12
+ readonly selection: SelectionStreamProcessor;
13
+ readonly moveClient: (position: ClientPosition) => void;
14
+ readonly uiActions: UIActions;
15
+ readonly custom: ModelConfig["custom"];
16
+ readonly session: Session;
17
+ readonly defaultCurrencyFormat?: Format;
18
+ }
19
+ export interface UIPluginConstructor {
20
+ new (config: UIPluginConfig): UIPlugin;
21
+ layers: LAYERS[];
22
+ getters: readonly string[];
23
+ }
24
+ /**
25
+ * UI plugins handle any transient data required to display a spreadsheet.
26
+ * They can draw on the grid canvas.
27
+ */
28
+ export declare class UIPlugin<State = any> extends BasePlugin<State, Command> {
29
+ static layers: LAYERS[];
30
+ protected getters: Getters;
31
+ protected ui: UIActions;
32
+ protected selection: SelectionStreamProcessor;
33
+ constructor({ getters, stateObserver, dispatch, uiActions, selection }: UIPluginConfig);
34
+ drawGrid(ctx: GridRenderingContext, layer: LAYERS): void;
35
+ }
36
+ export {};
@@ -0,0 +1,43 @@
1
+ import { ClipboardContent } from "../../types/clipboard";
2
+ import { Command, CommandResult, GridRenderingContext, LAYERS, LocalCommand } from "../../types/index";
3
+ import { UIPlugin } from "../ui_plugin";
4
+ /**
5
+ * Clipboard Plugin
6
+ *
7
+ * This clipboard manages all cut/copy/paste interactions internal to the
8
+ * application, and with the OS clipboard as well.
9
+ */
10
+ export declare class ClipboardPlugin extends UIPlugin {
11
+ static layers: LAYERS[];
12
+ static getters: readonly ["getClipboardContent", "getClipboardTextContent", "isCutOperation", "isPaintingFormat"];
13
+ private status;
14
+ private state?;
15
+ private lastPasteState?;
16
+ private paintFormatStatus;
17
+ private originSheetId?;
18
+ allowDispatch(cmd: LocalCommand): CommandResult;
19
+ handle(cmd: Command): void;
20
+ /**
21
+ * Format the current clipboard to a string suitable for being pasted in other
22
+ * programs.
23
+ *
24
+ * - add a tab character between each consecutive cells
25
+ * - add a newline character between each line
26
+ *
27
+ * Note that it returns \t if the clipboard is empty. This is necessary for the
28
+ * clipboard copy event to add it as data, otherwise an empty string is not
29
+ * considered as a copy content.
30
+ */
31
+ getClipboardContent(): ClipboardContent;
32
+ getClipboardTextContent(): string;
33
+ isCutOperation(): boolean;
34
+ isPaintingFormat(): boolean;
35
+ private getDeleteCellsTargets;
36
+ private getInsertCellsTargets;
37
+ private getClipboardStateForCopyCells;
38
+ /**
39
+ * Get the clipboard state from the given zones.
40
+ */
41
+ private getClipboardState;
42
+ drawGrid(renderingContext: GridRenderingContext): void;
43
+ }
@@ -0,0 +1,117 @@
1
+ import { EnrichedToken } from "../../formulas/index";
2
+ import { CellPosition, Command, CommandResult, Highlight, LocalCommand, Range } from "../../types";
3
+ import { UIPlugin } from "../ui_plugin";
4
+ export type EditionMode = "editing" | "selecting" | "inactive";
5
+ export interface ComposerSelection {
6
+ start: number;
7
+ end: number;
8
+ }
9
+ export declare class EditionPlugin extends UIPlugin {
10
+ static getters: readonly ["getEditionMode", "isSelectingForComposer", "showSelectionIndicator", "getCurrentContent", "getComposerSelection", "getCurrentTokens", "getTokenAtCursor", "getComposerHighlights", "getCurrentEditedCell", "getCycledReference", "getAutoCompleteDataValidationValues"];
11
+ private col;
12
+ private row;
13
+ private mode;
14
+ private sheetId;
15
+ private currentContent;
16
+ private currentTokens;
17
+ private selectionStart;
18
+ private selectionEnd;
19
+ private initialContent;
20
+ private colorIndexByRange;
21
+ allowDispatch(cmd: LocalCommand): CommandResult;
22
+ private handleEvent;
23
+ handle(cmd: Command): void;
24
+ getEditionMode(): EditionMode;
25
+ getCurrentContent(): string;
26
+ getComposerSelection(): ComposerSelection;
27
+ getCurrentEditedCell(): CellPosition;
28
+ isSelectingForComposer(): boolean;
29
+ showSelectionIndicator(): boolean;
30
+ getCurrentTokens(): EnrichedToken[];
31
+ /**
32
+ * Return the (enriched) token just before the cursor.
33
+ */
34
+ getTokenAtCursor(): EnrichedToken | undefined;
35
+ /**
36
+ * Return the cycled reference if any (A1 -> $A$1 -> A$1 -> $A1 -> A1)
37
+ */
38
+ getCycledReference(selection: {
39
+ start: number;
40
+ end: number;
41
+ }, content: string): {
42
+ content: string;
43
+ selection: {
44
+ start: number;
45
+ end: number;
46
+ };
47
+ } | undefined;
48
+ getInitialComposerContent(): string | undefined;
49
+ private cycleReferences;
50
+ private validateSelection;
51
+ private onColumnsRemoved;
52
+ private onRowsRemoved;
53
+ private onAddElements;
54
+ /**
55
+ * Enable the selecting mode
56
+ */
57
+ private startComposerRangeSelection;
58
+ /**
59
+ * start the edition of a cell
60
+ * @param str the key that is used to start the edition if it is a "content" key like a letter or number
61
+ * @param selection
62
+ * @private
63
+ */
64
+ private startEdition;
65
+ private stopEdition;
66
+ private getCurrentCanonicalContent;
67
+ private cancelEditionAndActivateSheet;
68
+ private getComposerContent;
69
+ private numberComposerContent;
70
+ private cancelEdition;
71
+ /**
72
+ * Reset the current content to the active cell content
73
+ */
74
+ private resetContent;
75
+ private setContent;
76
+ private insertSelectedRange;
77
+ /**
78
+ * Replace the current reference selected by the new one.
79
+ * */
80
+ private replaceSelectedRange;
81
+ /**
82
+ * Replace the reference of the old zone by the new one.
83
+ */
84
+ private updateComposerRange;
85
+ private getZoneReference;
86
+ private getRangeReference;
87
+ /**
88
+ * Replace the current selection by a new text.
89
+ * The cursor is then set at the end of the text.
90
+ */
91
+ private replaceSelection;
92
+ private replaceText;
93
+ /**
94
+ * Insert a text at the given position.
95
+ * The cursor is then set at the end of the text.
96
+ */
97
+ private insertText;
98
+ private updateRangeColor;
99
+ /**
100
+ * Highlight all ranges that can be found in the composer content.
101
+ */
102
+ getComposerHighlights(): Highlight[];
103
+ /**
104
+ * Return ranges currently referenced in the composer
105
+ */
106
+ getReferencedRanges(): Range[];
107
+ getAutoCompleteDataValidationValues(): string[];
108
+ /**
109
+ * Function used to determine when composer selection can start.
110
+ * Three conditions are necessary:
111
+ * - the previous token is among ["ARG_SEPARATOR", "LEFT_PAREN", "OPERATOR"], and is not a postfix unary operator
112
+ * - the next token is missing or is among ["ARG_SEPARATOR", "RIGHT_PAREN", "OPERATOR"]
113
+ * - Previous and next tokens can be separated by spaces
114
+ */
115
+ private canStartComposerRangeSelection;
116
+ private checkDataValidation;
117
+ }