@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,136 @@
1
+ import { UnboundedZone, Zone } from "../types";
2
+ /**
3
+ * ####################################################
4
+ * # INTRODUCTION
5
+ * ####################################################
6
+ *
7
+ * This file contain the function recomputeZones.
8
+ * This function try to recompute in a performant way
9
+ * an ensemble of zones possibly overlapping to avoid
10
+ * overlapping and to reduce the number of zones.
11
+ *
12
+ * It also allows to remove some zones from the ensemble.
13
+ *
14
+ * In the following example, 2 zones are overlapping.
15
+ * Applying recomputeZones will return zones without
16
+ * overlapping:
17
+ *
18
+ * ["B3:D4", "D2:E3"] ["B3:C4", "D2:D4", "E2:E3"]
19
+ *
20
+ * A B C D E A B C D E
21
+ * 1 ___ 1 ___
22
+ * 2 ___|_ | 2 ___| | |
23
+ * 3 | |_|_| ---> 3 | | |_|
24
+ * 4 |_____| 4 |___|_|
25
+ * 6 6
26
+ * 7 7
27
+ *
28
+ *
29
+ * In the following example, 2 zones are contiguous.
30
+ * Applying recomputeZones will return only one zone:
31
+ *
32
+ * ["B2:B3", "C2:D3"] ["B2:D3"]
33
+ *
34
+ * A B C D E A B C D E
35
+ * 1 _ ___ 1 _____
36
+ * 2 | | | ---> 2 | |
37
+ * 3 |_|___| 3 |_____|
38
+ * 4 4
39
+ *
40
+ *
41
+ * In the following example, we want to remove a zone
42
+ * from the ensemble. Applying recomputeZones will
43
+ * return the ensemble without the zone to remove:
44
+ *
45
+ * remove ["C3:D3"] ["B2:B4", "C2:D2",
46
+ * "C4:D4", "E2:E4"]
47
+ *
48
+ * A B C D E F A B C D E F
49
+ * 1 _______ 1 _______
50
+ * 2 | | ---> 2 | |___| |
51
+ * 3 | xxx | 3 | |___| |
52
+ * 4 |_______| 4 |_|___|_|
53
+ * 5 5
54
+ *
55
+ *
56
+ * The exercise seems simple when we have only 2 zones.
57
+ * But with n zones and in a performant way, we want to
58
+ * avoid comparing each zone with all the others.
59
+ *
60
+ *
61
+ * ####################################################
62
+ * # Methodological approach
63
+ * ####################################################
64
+ *
65
+ * The methodological approach to avoid comparing each
66
+ * zone with all the others is to use a data structure
67
+ * that allow to quickly find which zones are
68
+ * overlapping with any other given zone.
69
+ *
70
+ * Here the idea is to profile the zones at the columns level.
71
+ *
72
+ * To do that, we propose to use a data structure
73
+ * composed of 2 parts:
74
+ * - profilesStartingPosition: a sorted number array
75
+ * indicating on which columns a new profile begins.
76
+ * - profiles: a map where the key is a column
77
+ * position (from profilesStartingPosition) and the
78
+ * value is a sorted number array representing a
79
+ * profile.
80
+ *
81
+ *
82
+ * See the following example: here profileStartingPosition
83
+ * corresponds to [A,C,E,G,K]
84
+ * A B C D E F G H I J K so with number [0,2,4,6,10]
85
+ * 1 ' ' ' '
86
+ * 2 ' ' '_______' here profile correspond
87
+ * 3 '___' |_______| for A to []
88
+ * 4 | | for C to [3, 5]
89
+ * 5 |___| for E to []
90
+ * 6 for G to [2, 3]
91
+ * 7 for K to []
92
+ *
93
+ *
94
+ * Now we can easily find which zones are overlapping
95
+ * with a given zone. Suppose we want to add a new zone
96
+ * D5:H6 to the ensemble:
97
+ *
98
+ * With a binary search of left and right
99
+ * A B C D E F G H I J K on profilesStartingPosition, we can
100
+ * 1 ' ' ' ' find the indexes of the profiles on which
101
+ * 2 ' ' '_______' to apply a modification.
102
+ * 3 '___' |_______|
103
+ * 4 | _|_______ Here we will:
104
+ * 5 |_|_| | - add a new profile in D --> become [3, 6]
105
+ * 6 |_________| - modify the profile in E --> become [4, 6]
106
+ * 7 - modify the profile in G --> become [2, 3, 4, 6]
107
+ * - add a new profile in I --> become [8, 10]
108
+ *
109
+ * See below the result:
110
+ *
111
+ * Note the particularity of the profile
112
+ * A B C D E F G H I J K for G: it will correspond to [2, 3, 4, 6]
113
+ * 1 ' ' ' ' ' '
114
+ * 2 ' ' ' '___'___' To know how to modify the profile (add a
115
+ * 3 '_'_' |___|___| zone or remove it) we do a binary
116
+ * 4 | | |___ ___ search of the top and bottom value on the
117
+ * 5 |_| | | | profile array. Depending on the result index
118
+ * 6 |_|___|___| parity (odd or even), because zone boundaries
119
+ * 7 go by pairs, we know if we are in a zone or
120
+ * not and how operate.
121
+ */
122
+ /**
123
+ * Recompute the zone without the cells in toRemoveZones and avoid overlapping.
124
+ * This compute is particularly useful because after this function:
125
+ * - you will find coordinate of a cell only once among all the zones
126
+ * - the number of zones will be reduced to the minimum
127
+ */
128
+ export declare function futureRecomputeZones<Z extends Zone | UnboundedZone>(zones: Z[], zonesToRemove?: Z[]): Z[];
129
+ export declare function modifyProfiles(// export for testing only
130
+ profilesStartingPosition: number[], profiles: Map<number, number[]>, zones: UnboundedZone[], toRemove?: boolean): void;
131
+ /**
132
+ * Compares two arrays.
133
+ * For performance reasons, this function is to be preferred
134
+ * to 'deepEquals' in the case we know that the inputs are arrays.
135
+ */
136
+ export declare function deepEqualsArray(arr1: unknown[], arr2: unknown[]): boolean;
@@ -0,0 +1,7 @@
1
+ import { Rect } from "../types";
2
+ /**
3
+ * Compute the intersection of two rectangles. Returns nothing if the two rectangles don't overlap
4
+ */
5
+ export declare function rectIntersection(rect1: Rect, rect2: Rect): Rect | undefined;
6
+ /** Compute the union of the rectangles, ie. the smallest rectangle that contain them all */
7
+ export declare function rectUnion(...rects: Rect[]): Rect;
@@ -0,0 +1,9 @@
1
+ import { Token } from "../formulas";
2
+ /**
3
+ * Change the reference types inside the given token, if the token represent a range or a cell
4
+ *
5
+ * Eg. :
6
+ * A1 => $A$1 => A$1 => $A1 => A1
7
+ * A1:$B$1 => $A$1:B$1 => A$1:$B1 => $A1:B1 => A1:$B$1
8
+ */
9
+ export declare function loopThroughReferenceType(token: Readonly<Token>): Token;
@@ -0,0 +1,23 @@
1
+ /** Reference of a cell (eg. A1, $B$5) */
2
+ export declare const cellReference: RegExp;
3
+ /** Reference of a cell or a range, it can be a bounded range, a full row or a full column */
4
+ export declare const rangeReference: RegExp;
5
+ /**
6
+ * Return true if the given xc is the reference of a column (e.g. A or AC or Sheet1!A)
7
+ */
8
+ export declare function isColReference(xc: string): boolean;
9
+ /**
10
+ * Return true if the given xc is the reference of a column (e.g. 1 or Sheet1!1)
11
+ */
12
+ export declare function isRowReference(xc: string): boolean;
13
+ export declare function isColHeader(str: string): boolean;
14
+ export declare function isRowHeader(str: string): boolean;
15
+ /**
16
+ * Return true if the given xc is the reference of a single cell,
17
+ * without any specified sheet (e.g. A1)
18
+ */
19
+ export declare function isSingleCellReference(xc: string): boolean;
20
+ export declare function splitReference(ref: string): {
21
+ sheetName?: string;
22
+ xc: string;
23
+ };
@@ -0,0 +1,19 @@
1
+ /** Methods from Odoo Web Utils */
2
+ /**
3
+ * This function computes a score that represent the fact that the
4
+ * string contains the pattern, or not
5
+ *
6
+ * - If the score is 0, the string does not contain the letters of the pattern in
7
+ * the correct order.
8
+ * - if the score is > 0, it actually contains the letters.
9
+ *
10
+ * Better matches will get a higher score: consecutive letters are better,
11
+ * and a match closer to the beginning of the string is also scored higher.
12
+ */
13
+ export declare function fuzzyMatch(pattern: string, str: string): number;
14
+ /**
15
+ * Return a list of things that matches a pattern, ordered by their 'score' (
16
+ * higher score first). An higher score means that the match is better. For
17
+ * example, consecutive letters are considered a better match.
18
+ */
19
+ export declare function fuzzyLookup<T>(pattern: string, list: T[], fn: (t: T) => string): T[];
@@ -0,0 +1,7 @@
1
+ import { HeaderIndex, Row } from "../types";
2
+ export declare function createDefaultRows(rowNumber: number): Row[];
3
+ export declare function moveHeaderIndexesOnHeaderAddition(indexHeaderAdded: HeaderIndex, numberAdded: number, headers: HeaderIndex[]): HeaderIndex[];
4
+ export declare function moveHeaderIndexesOnHeaderDeletion(deletedHeaders: HeaderIndex[], headers: HeaderIndex[]): HeaderIndex[];
5
+ export declare function getNextSheetName(existingNames: string[], baseName?: string): string;
6
+ export declare function getDuplicateSheetName(nameToDuplicate: string, existingNames: string[]): string;
7
+ export declare function isSheetNameEqual(name1: string | undefined, name2: string | undefined): boolean;
@@ -0,0 +1,16 @@
1
+ import { CellValue, CellValueType, EvaluatedCell, Position, SortDirection, SpreadsheetChildEnv, UID, Zone } from "../types";
2
+ type CellWithIndex = {
3
+ index: number;
4
+ type: CellValueType;
5
+ value: any;
6
+ };
7
+ export declare function cellsSortingCriterion(sortingOrder: string): (left: {
8
+ type: CellValueType;
9
+ value: CellValue;
10
+ }, right: {
11
+ type: CellValueType;
12
+ value: CellValue;
13
+ }) => number;
14
+ export declare function sortCells(cells: EvaluatedCell[], sortDirection: SortDirection, emptyCellAsZero: boolean): CellWithIndex[];
15
+ export declare function interactiveSortSelection(env: SpreadsheetChildEnv, sheetId: UID, anchor: Position, zone: Zone, sortDirection: SortDirection): void;
16
+ export {};
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Create an empty structure according to the type of the node key:
3
+ * string: object
4
+ * number: array
5
+ */
6
+ export declare function createEmptyStructure(node: string | number | any): {};
@@ -0,0 +1,28 @@
1
+ import { Cell, Locale, Pixel, PixelPosition, Style } from "../types";
2
+ export declare function computeTextLinesHeight(textLineHeight: number, numberOfLines?: number): number;
3
+ /**
4
+ * Get the default height of the cell given its style.
5
+ */
6
+ export declare function getDefaultCellHeight(ctx: CanvasRenderingContext2D, cell: Cell | undefined, locale: Locale, colSize: number): number;
7
+ export declare function getCellContentHeight(ctx: CanvasRenderingContext2D, content: string, style: Style | undefined, colSize: number): number;
8
+ export declare function computeTextWidth(context: CanvasRenderingContext2D, text: string, style: Style): number;
9
+ export declare function fontSizeInPixels(fontSize: number): number;
10
+ export declare function computeTextFont(style: Style): string;
11
+ export declare function computeTextFontSizeInPixels(style?: Style): number;
12
+ /**
13
+ * Return the given text, 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
+ export declare function splitTextToWidth(ctx: CanvasRenderingContext2D, text: string, style: Style | undefined, width: number | undefined): string[];
17
+ /**
18
+ * Return the font size that makes the width of a text match the given line width.
19
+ * Minimum font size is 1.
20
+ *
21
+ * @param getTextWidth function that takes a fontSize as argument, and return the width of the text with this font size.
22
+ */
23
+ export declare function getFontSizeMatchingWidth(lineWidth: number, maxFontSize: number, getTextWidth: (fontSize: number) => number, precision?: number): number;
24
+ export declare function computeIconWidth(style: Style): number;
25
+ /** Transform a string to lower case. If the string is undefined, return an empty string */
26
+ export declare function toLowerCase(str: string | undefined): string;
27
+ export declare function getContextFontSize(font: string): Pixel;
28
+ export declare function drawDecoratedText(context: CanvasRenderingContext2D, text: string, position: PixelPosition, underline?: boolean | undefined, strikethrough?: boolean | undefined, strokeWidth?: number): void;
@@ -0,0 +1,2 @@
1
+ import { SpreadsheetChildEnv } from "../../types";
2
+ export declare function interactiveCut(env: SpreadsheetChildEnv): void;
@@ -0,0 +1,7 @@
1
+ import { SpreadsheetChildEnv, UID, Zone } from "../../types";
2
+ export declare const AddFilterInteractiveContent: {
3
+ filterOverlap: string;
4
+ nonContinuousTargets: string;
5
+ mergeInFilter: string;
6
+ };
7
+ export declare function interactiveAddFilter(env: SpreadsheetChildEnv, sheetId: UID, target: Zone[]): void;
@@ -0,0 +1,2 @@
1
+ import { Dimension, HeaderIndex, SpreadsheetChildEnv } from "../../types";
2
+ export declare function interactiveFreezeColumnsRows(env: SpreadsheetChildEnv, dimension: Dimension, base: HeaderIndex): void;
@@ -0,0 +1,6 @@
1
+ import { SpreadsheetChildEnv, UID, Zone } from "../../types";
2
+ export declare const AddMergeInteractiveContent: {
3
+ MergeIsDestructive: string;
4
+ MergeInFilter: string;
5
+ };
6
+ export declare function interactiveAddMerge(env: SpreadsheetChildEnv, sheetId: UID, target: Zone[]): void;
@@ -0,0 +1,10 @@
1
+ import { ClipboardPasteOptions, DispatchResult, SpreadsheetChildEnv, Zone } from "../../types";
2
+ export declare const PasteInteractiveContent: {
3
+ wrongPasteSelection: string;
4
+ willRemoveExistingMerge: string;
5
+ wrongFigurePasteOption: string;
6
+ frozenPaneOverlap: string;
7
+ };
8
+ export declare function handlePasteResult(env: SpreadsheetChildEnv, result: DispatchResult): void;
9
+ export declare function interactivePaste(env: SpreadsheetChildEnv, target: Zone[], pasteOption?: ClipboardPasteOptions): void;
10
+ export declare function interactivePasteFromOS(env: SpreadsheetChildEnv, target: Zone[], text: string, pasteOption?: ClipboardPasteOptions): void;
@@ -0,0 +1,2 @@
1
+ import { SpreadsheetChildEnv, UID } from "../../types";
2
+ export declare function interactiveRenameSheet(env: SpreadsheetChildEnv, sheetId: UID, name: string, errorCallback: () => void): void;
@@ -0,0 +1,6 @@
1
+ import { SpreadsheetChildEnv } from "../../types";
2
+ import { DispatchResult } from "./../../types/commands";
3
+ export declare const SplitToColumnsInteractiveContent: {
4
+ SplitIsDestructive: string;
5
+ };
6
+ export declare function interactiveSplitToColumns(env: SpreadsheetChildEnv, separator: string, addNewColumns: boolean): DispatchResult;
@@ -0,0 +1,2 @@
1
+ import { SpreadsheetChildEnv } from "../../types";
2
+ export declare function interactiveStopEdition(env: SpreadsheetChildEnv): void;
@@ -0,0 +1,6 @@
1
+ import { Dimension, HeaderIndex, SpreadsheetChildEnv, UID } from "../../types";
2
+ export declare const ToggleGroupInteractiveContent: {
3
+ CannotHideAllRows: string;
4
+ CannotHideAllColumns: string;
5
+ };
6
+ export declare function interactiveToggleGroup(env: SpreadsheetChildEnv, sheetId: UID, dimension: Dimension, start: HeaderIndex, end: HeaderIndex): void;
@@ -0,0 +1,20 @@
1
+ export declare class UuidGenerator {
2
+ private isFastIdStrategy;
3
+ private fastIdStart;
4
+ setIsFastStrategy(isFast: boolean): void;
5
+ /**
6
+ * Generates a custom UUID using a simple 26^8 method (8-character alphanumeric string with lowercase letters)
7
+ * This has a higher chance of collision than a UUIDv4, but not only faster to generate than an UUIDV4,
8
+ * it also has a smaller size, which is preferable to alleviate the overall data size.
9
+ *
10
+ * This method is preferable when generating uuids for the core data (sheetId, figureId, etc)
11
+ * as they will appear several times in the revisions and local history.
12
+ *
13
+ */
14
+ smallUuid(): string;
15
+ /**
16
+ * Generates an UUIDV4, has astronomically low chance of collision, but is larger in size than the smallUuid.
17
+ * This method should be used when you need to avoid collisions at all costs, like the id of a revision.
18
+ */
19
+ uuidv4(): string;
20
+ }
@@ -0,0 +1,173 @@
1
+ import { Position, UnboundedZone, Zone, ZoneDimension } from "../types";
2
+ /**
3
+ * Convert from a cartesian reference to a Zone
4
+ * The range boundaries will be kept in the same order as the
5
+ * ones in the text.
6
+ * Examples:
7
+ * "A1" ==> Top 0, Bottom 0, Left: 0, Right: 0
8
+ * "B1:B3" ==> Top 0, Bottom 3, Left: 1, Right: 1
9
+ * "Sheet1!A1" ==> Top 0, Bottom 0, Left: 0, Right: 0
10
+ * "Sheet1!B1:B3" ==> Top 0, Bottom 3, Left: 1, Right: 1
11
+ * "C3:A1" ==> Top 2, Bottom 0, Left 2, Right 0
12
+ * "A:A" ==> Top 0, Bottom undefined, Left 0, Right 0
13
+ * "A:B3" or "B3:A" ==> Top 2, Bottom undefined, Left 0, Right 1
14
+ *
15
+ * @param xc the string reference to convert
16
+ *
17
+ */
18
+ export declare function toZoneWithoutBoundaryChanges(xc: string): UnboundedZone;
19
+ /**
20
+ * Convert from a cartesian reference to a (possibly unbounded) Zone
21
+ *
22
+ * Examples:
23
+ * "A1" ==> Top 0, Bottom 0, Left: 0, Right: 0
24
+ * "B1:B3" ==> Top 0, Bottom 3, Left: 1, Right: 1
25
+ * "B:B" ==> Top 0, Bottom undefined, Left: 1, Right: 1
26
+ * "B2:B" ==> Top 1, Bottom undefined, Left: 1, Right: 1, hasHeader: 1
27
+ * "Sheet1!A1" ==> Top 0, Bottom 0, Left: 0, Right: 0
28
+ * "Sheet1!B1:B3" ==> Top 0, Bottom 3, Left: 1, Right: 1
29
+ *
30
+ * @param xc the string reference to convert
31
+ *
32
+ */
33
+ export declare function toUnboundedZone(xc: string): UnboundedZone;
34
+ export declare function reorderZone<Z extends UnboundedZone | Zone>(zone: Z): void;
35
+ /**
36
+ * Convert from a cartesian reference to a Zone.
37
+ * Will return throw an error if given a unbounded zone (eg : A:A).
38
+ *
39
+ * Examples:
40
+ * "A1" ==> Top 0, Bottom 0, Left: 0, Right: 0
41
+ * "B1:B3" ==> Top 0, Bottom 3, Left: 1, Right: 1
42
+ * "Sheet1!A1" ==> Top 0, Bottom 0, Left: 0, Right: 0
43
+ * "Sheet1!B1:B3" ==> Top 0, Bottom 3, Left: 1, Right: 1
44
+ *
45
+ * @param xc the string reference to convert
46
+ *
47
+ */
48
+ export declare function toZone(xc: string): Zone;
49
+ export declare function isXcValid(xc: string): boolean;
50
+ /**
51
+ * Check that the zone has valid coordinates and in
52
+ * the correct order.
53
+ */
54
+ export declare function isZoneValid(zone: Zone | UnboundedZone): boolean;
55
+ /**
56
+ * Check that the zone properties are in the correct order.
57
+ */
58
+ export declare function isZoneOrdered(zone: Zone | UnboundedZone): boolean;
59
+ /**
60
+ * Convert from zone to a cartesian reference
61
+ *
62
+ */
63
+ export declare function zoneToXc(zone: Zone | UnboundedZone): string;
64
+ /**
65
+ * Expand a zone after inserting columns or rows.
66
+ *
67
+ * Don't resize the zone if a col/row was added right before/after the row but only move the zone.
68
+ */
69
+ export declare function expandZoneOnInsertion<Z extends UnboundedZone | Zone>(zone: Z, start: "left" | "top", base: number, position: "after" | "before", quantity: number): Z;
70
+ /**
71
+ * Update the selection after column/row addition
72
+ */
73
+ export declare function updateSelectionOnInsertion(selection: Zone, start: "left" | "top", base: number, position: "after" | "before", quantity: number): Zone;
74
+ /**
75
+ * Update the selection after column/row deletion
76
+ */
77
+ export declare function updateSelectionOnDeletion(zone: Zone, start: "left" | "top", elements: number[]): Zone;
78
+ /**
79
+ * Reduce a zone after deletion of elements
80
+ */
81
+ export declare function reduceZoneOnDeletion<Z extends UnboundedZone | Zone>(zone: Z, start: "left" | "top", elements: number[]): Z | undefined;
82
+ /**
83
+ * Compute the union of multiple zones.
84
+ */
85
+ export declare function union(...zones: Zone[]): Zone;
86
+ /**
87
+ * Compute the intersection of two zones. Returns nothing if the two zones don't overlap
88
+ */
89
+ export declare function intersection(z1: Zone, z2: Zone): Zone | undefined;
90
+ /**
91
+ * Two zones are equal if they represent the same area, so we clearly cannot use
92
+ * reference equality.
93
+ */
94
+ export declare function isEqual(z1: Zone, z2: Zone): boolean;
95
+ /**
96
+ * Return true if two zones overlap, false otherwise.
97
+ */
98
+ export declare function overlap(z1: Zone, z2: Zone): boolean;
99
+ export declare function isInside(col: number, row: number, zone: Zone): boolean;
100
+ /**
101
+ * Check if a zone is inside another
102
+ */
103
+ export declare function isZoneInside(smallZone: Zone, biggerZone: Zone): boolean;
104
+ /**
105
+ * Recompute the ranges of the zone to contain all the cells in zones, without the cells in toRemoveZones
106
+ * Also regroup zones together to shorten the string
107
+ */
108
+ export declare function recomputeZones(zonesXc: string[], toRemoveZonesXc: string[]): string[];
109
+ /**
110
+ * Merge aligned adjacent columns into single zones
111
+ * e.g. A1:A5 and B1:B5 are merged into A1:B5
112
+ */
113
+ export declare function mergeAlignedColumns(columns: readonly Zone[]): Zone[];
114
+ /**
115
+ * Merge adjacent positions into vertical zones (columns)
116
+ */
117
+ export declare function mergePositionsIntoColumns(positions: readonly Position[]): Zone[];
118
+ export declare function zoneToDimension(zone: Zone): ZoneDimension;
119
+ export declare function isOneDimensional(zone: Zone): boolean;
120
+ /**
121
+ * Array of all positions in the zone.
122
+ */
123
+ export declare function positions(zone: Zone): Position[];
124
+ export declare function forEachPositionsInZone(zone: Zone, callback: (col: number, row: number) => void): void;
125
+ /**
126
+ * This function returns a zone with coordinates modified according to the change
127
+ * applied to the zone. It may be possible to change the zone by resizing or moving
128
+ * it according to different dimensions.
129
+ *
130
+ * @param zone the zone to modify
131
+ * @param dimension the direction to change the zone among "columns", "rows" and
132
+ * "both"
133
+ * @param operation how to change the zone, modify its size "RESIZE" or modify
134
+ * its location "MOVE"
135
+ * @param by a number of how many units the change should be made. This parameter
136
+ * takes the form of a two-number array when the dimension is "both"
137
+ */
138
+ export declare function createAdaptedZone<Dimension extends "columns" | "rows" | "both", Z extends UnboundedZone | Zone>(zone: Z, dimension: Dimension, operation: "MOVE" | "RESIZE", by: Dimension extends "both" ? [number, number] : number): Z;
139
+ /**
140
+ * Returns a Zone array with unique occurrence of each zone.
141
+ * For each multiple occurrence, the occurrence with the largest index is kept.
142
+ * This allows to always have the last selection made in the last position.
143
+ * */
144
+ export declare function uniqueZones(zones: Zone[]): Zone[];
145
+ /**
146
+ * This function will find all overlapping zones in an array and transform them
147
+ * into an union of each one.
148
+ * */
149
+ export declare function mergeOverlappingZones(zones: Zone[]): Zone[];
150
+ /**
151
+ * This function will compare the modifications of selection to determine
152
+ * a cell that is part of the new zone and not the previous one.
153
+ */
154
+ export declare function findCellInNewZone(oldZone: Zone, currentZone: Zone): Position;
155
+ export declare function organizeZone(zone: Zone): Zone;
156
+ export declare function positionToZone(position: Position): {
157
+ left: import("../types").HeaderIndex;
158
+ right: import("../types").HeaderIndex;
159
+ top: import("../types").HeaderIndex;
160
+ bottom: import("../types").HeaderIndex;
161
+ };
162
+ export declare function isFullRow(zone: UnboundedZone): boolean;
163
+ /** Returns the area of a zone */
164
+ export declare function getZoneArea(zone: Zone): number;
165
+ /**
166
+ * Check if the zones are continuous, ie. if they can be merged into a single zone without
167
+ * including cells outside the zones
168
+ * */
169
+ export declare function areZonesContinuous(...zones: Zone[]): boolean;
170
+ /** Return all the columns in the given list of zones */
171
+ export declare function getZonesCols(zones: Zone[]): Set<number>;
172
+ /** Return all the rows in the given list of zones */
173
+ export declare function getZonesRows(zones: Zone[]): Set<number>;
@@ -0,0 +1,62 @@
1
+ import { Transformation, TransformationFactory, UID } from "../types";
2
+ import { Operation } from "./operation";
3
+ /**
4
+ * A branch holds a sequence of operations.
5
+ * It can be represented as "A - B - C - D" if A, B, C and D are executed one
6
+ * after the other.
7
+ *
8
+ * @param buildTransformation Factory to build transformations
9
+ * @param operations initial operations
10
+ */
11
+ export declare class Branch<T> {
12
+ private readonly buildTransformation;
13
+ private operations;
14
+ constructor(buildTransformation: TransformationFactory<T>, operations?: Operation<T>[]);
15
+ getOperations(): readonly Operation<T>[];
16
+ getOperation(operationId: UID): Operation<T>;
17
+ getLastOperationId(): UID | undefined;
18
+ /**
19
+ * Get the id of the operation appears first in the list of operations
20
+ */
21
+ getFirstOperationAmong(op1: UID, op2: UID): UID;
22
+ contains(operationId: UID): boolean;
23
+ /**
24
+ * Add the given operation as the first operation
25
+ */
26
+ prepend(operation: Operation<T>): void;
27
+ /**
28
+ * add the given operation after the given predecessorOpId
29
+ */
30
+ insert(newOperation: Operation<T>, predecessorOpId: UID): void;
31
+ /**
32
+ * Add the given operation as the last operation
33
+ */
34
+ append(operation: Operation<T>): void;
35
+ /**
36
+ * Append operations in the given branch to this branch.
37
+ */
38
+ appendBranch(branch: Branch<T>): void;
39
+ /**
40
+ * Create and return a copy of this branch, starting after the given operationId
41
+ */
42
+ fork(operationId: UID): Branch<T>;
43
+ /**
44
+ * Transform all the operations in this branch with the given transformation
45
+ */
46
+ transform(transformation: Transformation<T>): void;
47
+ /**
48
+ * Cut the branch before the operation, meaning the operation
49
+ * and all following operations are dropped.
50
+ */
51
+ cutBefore(operationId: UID): void;
52
+ /**
53
+ * Cut the branch after the operation, meaning all following operations are dropped.
54
+ */
55
+ cutAfter(operationId: UID): void;
56
+ /**
57
+ * Find an operation in this branch based on its id.
58
+ * This returns the operation itself, operations which comes before it
59
+ * and operation which comes after it.
60
+ */
61
+ private locateOperation;
62
+ }
@@ -0,0 +1,9 @@
1
+ import { Revision } from "../collaborative/revisions";
2
+ import { StateObserver } from "../state_observer";
3
+ import { CoreCommand, UID } from "../types";
4
+ import { SelectiveHistory } from "./selective_history";
5
+ export declare function buildRevisionLog(args: {
6
+ initialRevisionId: UID;
7
+ recordChanges: StateObserver["recordChanges"];
8
+ dispatch: (command: CoreCommand) => void;
9
+ }): SelectiveHistory<Revision>;
@@ -0,0 +1,17 @@
1
+ import { Transformation, UID } from "../types";
2
+ /**
3
+ * An Operation can be executed to change a data structure from state A
4
+ * to state B.
5
+ * It should hold the necessary data used to perform this transition.
6
+ * It should be possible to revert the changes made by this operation.
7
+ *
8
+ * In the context of o-spreadsheet, the data from an operation would
9
+ * be a revision (the commands are used to execute it, the `changes` are used
10
+ * to revert it).
11
+ */
12
+ export declare class Operation<T> {
13
+ readonly id: UID;
14
+ readonly data: T;
15
+ constructor(id: UID, data: T);
16
+ transformed(transformation: Transformation<T>): Operation<T>;
17
+ }
@@ -0,0 +1,31 @@
1
+ import { OperationSequenceNode, UID } from "../types";
2
+ /**
3
+ * An execution object is a sequence of executionSteps (each execution step is an operation in a branch).
4
+ *
5
+ * You can iterate over the steps of an execution
6
+ * ```js
7
+ * for (const operation of execution) {
8
+ * // ... do something
9
+ * }
10
+ * ```
11
+ */
12
+ export declare class OperationSequence<T> implements Iterable<OperationSequenceNode<T>> {
13
+ private readonly operations;
14
+ constructor(operations: Iterable<OperationSequenceNode<T>>);
15
+ [Symbol.iterator](): Iterator<OperationSequenceNode<T>, void>;
16
+ /**
17
+ * Stop the operation sequence at a given operation
18
+ * @param operationId included
19
+ */
20
+ stopWith(operationId: UID): OperationSequence<T>;
21
+ /**
22
+ * Stop the operation sequence before a given operation
23
+ * @param operationId excluded
24
+ */
25
+ stopBefore(operationId: UID): OperationSequence<T>;
26
+ /**
27
+ * Start the operation sequence at a given operation
28
+ * @param operationId excluded
29
+ */
30
+ startAfter(operationId: UID): OperationSequence<T>;
31
+ }
@@ -0,0 +1,6 @@
1
+ import { Command, Getters } from "../../types";
2
+ export declare const genericRepeatsTransforms: (typeof repeatSheetDependantCommand)[];
3
+ export declare function repeatSheetDependantCommand<T extends Command>(getters: Getters, command: T): T;
4
+ export declare function repeatTargetDependantCommand<T extends Command>(getters: Getters, command: T): T;
5
+ export declare function repeatZoneDependantCommand<T extends Command>(getters: Getters, command: T): T;
6
+ export declare function repeatPositionDependantCommand<T extends Command>(getters: Getters, command: T): T;