@odoo/o-spreadsheet 17.0.85 → 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.
- package/dist/o-spreadsheet.cjs.js +45990 -53385
- package/dist/o-spreadsheet.esm.js +45805 -53384
- package/dist/o-spreadsheet.iife.js +50220 -57798
- package/dist/o-spreadsheet.iife.min.js +534 -505
- package/dist/o_spreadsheet.xml +3 -3
- package/dist/types/actions/action.d.ts +73 -0
- package/dist/types/actions/data_actions.d.ts +9 -0
- package/dist/types/actions/edit_actions.d.ts +21 -0
- package/dist/types/actions/format_actions.d.ts +45 -0
- package/dist/types/actions/insert_actions.d.ts +28 -0
- package/dist/types/actions/menu_items_actions.d.ts +32 -0
- package/dist/types/actions/sheet_actions.d.ts +10 -0
- package/dist/types/actions/view_actions.d.ts +28 -0
- package/dist/types/collaborative/local_transport_service.d.ts +8 -0
- package/dist/types/collaborative/ot/ot.d.ts +22 -0
- package/dist/types/collaborative/ot/ot_helpers.d.ts +3 -0
- package/dist/types/collaborative/ot/ot_specific.d.ts +1 -0
- package/dist/types/collaborative/revisions.d.ts +22 -0
- package/dist/types/collaborative/session.d.ts +100 -0
- package/dist/types/components/action_button/action_button.d.ts +23 -0
- package/dist/types/components/animation/ripple.d.ts +53 -0
- package/dist/types/components/autofill/autofill.d.ts +25 -0
- package/dist/types/components/border_editor/border_editor.d.ts +41 -0
- package/dist/types/components/border_editor/border_editor_widget.d.ts +31 -0
- package/dist/types/components/bottom_bar/bottom_bar.d.ts +56 -0
- package/dist/types/components/bottom_bar_sheet/bottom_bar_sheet.d.ts +44 -0
- package/dist/types/components/bottom_bar_statistic/bottom_bar_statistic.d.ts +21 -0
- package/dist/types/components/collaborative_client_tag/collaborative_client_tag.d.ts +14 -0
- package/dist/types/components/color_picker/color_picker.d.ts +41 -0
- package/dist/types/components/color_picker/color_picker_widget.d.ts +27 -0
- package/dist/types/components/composer/autocomplete_dropdown/autocomplete_dropdown.d.ts +15 -0
- package/dist/types/components/composer/composer/composer.d.ts +135 -0
- package/dist/types/components/composer/content_editable_helper.d.ts +60 -0
- package/dist/types/components/composer/formula_assistant/formula_assistant.d.ts +20 -0
- package/dist/types/components/composer/grid_composer/grid_composer.d.ts +39 -0
- package/dist/types/components/composer/top_bar_composer/top_bar_composer.d.ts +18 -0
- package/dist/types/components/dashboard/dashboard.d.ts +50 -0
- package/dist/types/components/data_validation_overlay/data_validation_overlay.d.ts +15 -0
- package/dist/types/components/data_validation_overlay/dv_checkbox/dv_checkbox.d.ts +12 -0
- package/dist/types/components/data_validation_overlay/dv_list_icon/dv_list_icon.d.ts +10 -0
- package/dist/types/components/error_tooltip/error_tooltip.d.ts +18 -0
- package/dist/types/components/figures/chart/chartJs/chartjs.d.ts +18 -0
- package/dist/types/components/figures/chart/scorecard/chart_scorecard.d.ts +14 -0
- package/dist/types/components/figures/figure/figure.d.ts +41 -0
- package/dist/types/components/figures/figure_chart/figure_chart.d.ts +14 -0
- package/dist/types/components/figures/figure_container/figure_container.d.ts +117 -0
- package/dist/types/components/figures/figure_image/figure_image.d.ts +13 -0
- package/dist/types/components/filters/filter_icon/filter_icon.d.ts +12 -0
- package/dist/types/components/filters/filter_icons_overlay/filter_icons_overlay.d.ts +22 -0
- package/dist/types/components/filters/filter_menu/filter_menu.d.ts +43 -0
- package/dist/types/components/filters/filter_menu_item/filter_menu_value_item.d.ts +17 -0
- package/dist/types/components/font_size_editor/font_size_editor.d.ts +29 -0
- package/dist/types/components/grid/grid.d.ts +99 -0
- package/dist/types/components/grid_add_rows_footer/grid_add_rows_footer.d.ts +27 -0
- package/dist/types/components/grid_cell_icon/grid_cell_icon.d.ts +16 -0
- package/dist/types/components/grid_overlay/grid_overlay.d.ts +45 -0
- package/dist/types/components/grid_popover/grid_popover.d.ts +20 -0
- package/dist/types/components/header_group/header_group.d.ts +41 -0
- package/dist/types/components/header_group/header_group_container.d.ts +29 -0
- package/dist/types/components/headers_overlay/headers_overlay.d.ts +117 -0
- package/dist/types/components/helpers/css.d.ts +40 -0
- package/dist/types/components/helpers/dom_helpers.d.ts +34 -0
- package/dist/types/components/helpers/drag_and_drop.d.ts +20 -0
- package/dist/types/components/helpers/drag_and_drop_hook.d.ts +24 -0
- package/dist/types/components/helpers/draw_grid_hook.d.ts +3 -0
- package/dist/types/components/helpers/figure_container_helper.d.ts +14 -0
- package/dist/types/components/helpers/figure_drag_helper.d.ts +6 -0
- package/dist/types/components/helpers/figure_snap_helper.d.ts +25 -0
- package/dist/types/components/helpers/html_content_helpers.d.ts +2 -0
- package/dist/types/components/helpers/index.d.ts +1 -0
- package/dist/types/components/helpers/listener_hook.d.ts +10 -0
- package/dist/types/components/helpers/position_hook.d.ts +25 -0
- package/dist/types/components/helpers/selection_helpers.d.ts +2 -0
- package/dist/types/components/helpers/time_hooks.d.ts +9 -0
- package/dist/types/components/helpers/wheel_hook.d.ts +1 -0
- package/dist/types/components/highlight/border/border.d.ts +15 -0
- package/dist/types/components/highlight/corner/corner.d.ts +18 -0
- package/dist/types/components/highlight/highlight/highlight.d.ts +22 -0
- package/dist/types/components/icon_picker/icon_picker.d.ts +65 -0
- package/dist/types/components/icons/icons.d.ts +56 -0
- package/dist/types/components/index.d.ts +1 -0
- package/dist/types/components/link/index.d.ts +2 -0
- package/dist/types/components/link/link_display/link_display.d.ts +21 -0
- package/dist/types/components/link/link_editor/link_editor.d.ts +39 -0
- package/dist/types/components/menu/menu.d.ts +58 -0
- package/dist/types/components/paint_format_button/paint_format_button.d.ts +12 -0
- package/dist/types/components/popover/popover.d.ts +40 -0
- package/dist/types/components/scrollbar/index.d.ts +2 -0
- package/dist/types/components/scrollbar/scrollbar.d.ts +25 -0
- package/dist/types/components/scrollbar/scrollbar_horizontal.d.ts +26 -0
- package/dist/types/components/scrollbar/scrollbar_vertical.d.ts +26 -0
- package/dist/types/components/scrollbar.d.ts +9 -0
- package/dist/types/components/selection_input/selection_input.d.ts +54 -0
- package/dist/types/components/side_panel/chart/bar_chart/bar_chart_config_panel.d.ts +6 -0
- package/dist/types/components/side_panel/chart/bar_chart/bar_chart_design_panel.d.ts +4 -0
- package/dist/types/components/side_panel/chart/gauge_chart_panel/gauge_chart_config_panel.d.ts +26 -0
- package/dist/types/components/side_panel/chart/gauge_chart_panel/gauge_chart_design_panel.d.ts +34 -0
- package/dist/types/components/side_panel/chart/index.d.ts +17 -0
- package/dist/types/components/side_panel/chart/line_bar_pie_panel/config_panel.d.ts +45 -0
- package/dist/types/components/side_panel/chart/line_bar_pie_panel/design_panel.d.ts +26 -0
- package/dist/types/components/side_panel/chart/line_chart/line_chart_config_panel.d.ts +9 -0
- package/dist/types/components/side_panel/chart/line_chart/line_chart_design_panel.d.ts +4 -0
- package/dist/types/components/side_panel/chart/main_chart_panel/main_chart_panel.d.ts +20 -0
- package/dist/types/components/side_panel/chart/scorecard_chart_panel/scorecard_chart_config_panel.d.ts +32 -0
- package/dist/types/components/side_panel/chart/scorecard_chart_panel/scorecard_chart_design_panel.d.ts +26 -0
- package/dist/types/components/side_panel/conditional_formatting/cf_editor/cf_editor.d.ts +137 -0
- package/dist/types/components/side_panel/conditional_formatting/cf_preview_list/cf_preview_list.d.ts +58 -0
- package/dist/types/components/side_panel/conditional_formatting/conditional_formatting.d.ts +23 -0
- package/dist/types/components/side_panel/custom_currency/custom_currency.d.ts +27 -0
- package/dist/types/components/side_panel/data_validation/data_validation_panel.d.ts +25 -0
- package/dist/types/components/side_panel/data_validation/data_validation_panel_helper.d.ts +14 -0
- package/dist/types/components/side_panel/data_validation/dv_criterion_form/dv_criterion_form.d.ts +11 -0
- package/dist/types/components/side_panel/data_validation/dv_criterion_form/dv_date_criterion/dv_date_criterion.d.ts +16 -0
- package/dist/types/components/side_panel/data_validation/dv_criterion_form/dv_double_input_criterion/dv_double_input_criterion.d.ts +10 -0
- package/dist/types/components/side_panel/data_validation/dv_criterion_form/dv_input/dv_input.d.ts +30 -0
- package/dist/types/components/side_panel/data_validation/dv_criterion_form/dv_single_input_criterion/dv_single_input_criterion.d.ts +9 -0
- 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
- 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
- package/dist/types/components/side_panel/data_validation/dv_editor/dv_editor.d.ts +34 -0
- package/dist/types/components/side_panel/data_validation/dv_preview/dv_preview.d.ts +13 -0
- package/dist/types/components/side_panel/find_and_replace/find_and_replace.d.ts +27 -0
- package/dist/types/components/side_panel/more_formats/more_formats.d.ts +10 -0
- package/dist/types/components/side_panel/remove_duplicates/remove_duplicates.d.ts +32 -0
- package/dist/types/components/side_panel/select_menu/select_menu.d.ts +29 -0
- package/dist/types/components/side_panel/settings/settings_panel.d.ts +18 -0
- package/dist/types/components/side_panel/side_panel/side_panel.d.ts +18 -0
- package/dist/types/components/side_panel/split_to_columns_panel/split_to_columns_panel.d.ts +35 -0
- package/dist/types/components/spreadsheet/spreadsheet.d.ts +64 -0
- package/dist/types/components/top_bar/top_bar.d.ts +65 -0
- package/dist/types/components/translations_terms.d.ts +104 -0
- package/dist/types/components/validation_messages/validation_messages.d.ts +11 -0
- package/dist/types/constants.d.ts +137 -0
- package/dist/types/formulas/code_builder.d.ts +28 -0
- package/dist/types/formulas/compiler.d.ts +7 -0
- package/dist/types/formulas/composer_tokenizer.d.ts +31 -0
- package/dist/types/formulas/helpers.d.ts +2 -0
- package/dist/types/formulas/index.d.ts +16 -0
- package/dist/types/formulas/parser.d.ts +72 -0
- package/dist/types/formulas/range_tokenizer.d.ts +8 -0
- package/dist/types/formulas/tokenizer.d.ts +25 -0
- package/dist/types/functions/arguments.d.ts +10 -0
- package/dist/types/functions/helper_assert.d.ts +6 -0
- package/dist/types/functions/helper_financial.d.ts +49 -0
- package/dist/types/functions/helper_matrices.d.ts +23 -0
- package/dist/types/functions/helper_statistical.d.ts +3 -0
- package/dist/types/functions/helpers.d.ts +101 -0
- package/dist/types/functions/index.d.ts +10 -0
- package/dist/types/functions/module_array.d.ts +141 -0
- package/dist/types/functions/module_custom.d.ts +8 -0
- package/dist/types/functions/module_database.d.ts +85 -0
- package/dist/types/functions/module_date.d.ts +231 -0
- package/dist/types/functions/module_engineering.d.ts +8 -0
- package/dist/types/functions/module_filter.d.ts +17 -0
- package/dist/types/functions/module_financial.d.ts +358 -0
- package/dist/types/functions/module_info.d.ts +64 -0
- package/dist/types/functions/module_logical.d.ts +59 -0
- package/dist/types/functions/module_lookup.d.ts +72 -0
- package/dist/types/functions/module_math.d.ts +424 -0
- package/dist/types/functions/module_operators.d.ts +98 -0
- package/dist/types/functions/module_statistical.d.ts +296 -0
- package/dist/types/functions/module_text.d.ts +147 -0
- package/dist/types/functions/module_web.d.ts +8 -0
- package/dist/types/helpers/cells/cell_evaluation.d.ts +6 -0
- package/dist/types/helpers/cells/index.d.ts +2 -0
- package/dist/types/helpers/chart_date.d.ts +8 -0
- package/dist/types/helpers/clipboard/clipboard_abstract_cell_state.d.ts +26 -0
- package/dist/types/helpers/clipboard/clipboard_cells_state.d.ts +70 -0
- package/dist/types/helpers/clipboard/clipboard_figure_state.d.ts +41 -0
- package/dist/types/helpers/clipboard/clipboard_os_state.d.ts +12 -0
- package/dist/types/helpers/clipboard/navigator_clipboard_wrapper.d.ts +13 -0
- package/dist/types/helpers/color.d.ts +68 -0
- package/dist/types/helpers/coordinates.d.ts +40 -0
- package/dist/types/helpers/data_validation_helpers.d.ts +5 -0
- package/dist/types/helpers/dates.d.ts +90 -0
- package/dist/types/helpers/edge_scrolling.d.ts +9 -0
- package/dist/types/helpers/event_bus.d.ts +45 -0
- package/dist/types/helpers/figures/charts/abstract_chart.d.ts +56 -0
- package/dist/types/helpers/figures/charts/bar_chart.d.ts +29 -0
- package/dist/types/helpers/figures/charts/chart_common.d.ts +62 -0
- package/dist/types/helpers/figures/charts/chart_factory.d.ts +40 -0
- package/dist/types/helpers/figures/charts/chart_js_gauge_controller.d.ts +1 -0
- package/dist/types/helpers/figures/charts/chart_ui_common.d.ts +41 -0
- package/dist/types/helpers/figures/charts/gauge_chart.d.ts +23 -0
- package/dist/types/helpers/figures/charts/index.d.ts +10 -0
- package/dist/types/helpers/figures/charts/line_chart.d.ts +32 -0
- package/dist/types/helpers/figures/charts/pie_chart.d.ts +27 -0
- package/dist/types/helpers/figures/charts/scorecard_chart.d.ts +30 -0
- package/dist/types/helpers/figures/charts/scorecard_chart_config_builder.d.ts +35 -0
- package/dist/types/helpers/figures/figure/figure.d.ts +6 -0
- package/dist/types/helpers/figures/images/image_provider.d.ts +10 -0
- package/dist/types/helpers/filters.d.ts +19 -0
- package/dist/types/helpers/focus_manager.d.ts +5 -0
- package/dist/types/helpers/format.d.ts +32 -0
- package/dist/types/helpers/index.d.ts +15 -0
- package/dist/types/helpers/internal_viewport.d.ts +83 -0
- package/dist/types/helpers/inverse_commands.d.ts +2 -0
- package/dist/types/helpers/links.d.ts +23 -0
- package/dist/types/helpers/locale.d.ts +58 -0
- package/dist/types/helpers/misc.d.ts +178 -0
- package/dist/types/helpers/numbers.d.ts +25 -0
- package/dist/types/helpers/range.d.ts +59 -0
- package/dist/types/helpers/recompute_zones.d.ts +136 -0
- package/dist/types/helpers/rectangle.d.ts +7 -0
- package/dist/types/helpers/reference_type.d.ts +9 -0
- package/dist/types/helpers/references.d.ts +23 -0
- package/dist/types/helpers/search.d.ts +19 -0
- package/dist/types/helpers/sheet.d.ts +7 -0
- package/dist/types/helpers/sort.d.ts +16 -0
- package/dist/types/helpers/state_manager_helpers.d.ts +6 -0
- package/dist/types/helpers/text_helper.d.ts +28 -0
- package/dist/types/helpers/ui/cut_interactive.d.ts +2 -0
- package/dist/types/helpers/ui/filter_interactive.d.ts +7 -0
- package/dist/types/helpers/ui/freeze_interactive.d.ts +2 -0
- package/dist/types/helpers/ui/merge_interactive.d.ts +6 -0
- package/dist/types/helpers/ui/paste_interactive.d.ts +10 -0
- package/dist/types/helpers/ui/sheet_interactive.d.ts +2 -0
- package/dist/types/helpers/ui/split_to_columns_interactive.d.ts +6 -0
- package/dist/types/helpers/ui/stop_edition_interactive.d.ts +2 -0
- package/dist/types/helpers/ui/toggle_group_interactive.d.ts +6 -0
- package/dist/types/helpers/uuid.d.ts +20 -0
- package/dist/types/helpers/zones.d.ts +173 -0
- package/dist/types/history/branch.d.ts +62 -0
- package/dist/types/history/factory.d.ts +9 -0
- package/dist/types/history/operation.d.ts +17 -0
- package/dist/types/history/operation_sequence.d.ts +31 -0
- package/dist/types/history/repeat_commands/repeat_commands_generic.d.ts +6 -0
- package/dist/types/history/repeat_commands/repeat_commands_specific.d.ts +13 -0
- package/dist/types/history/repeat_commands/repeat_revision.d.ts +5 -0
- package/dist/types/history/selective_history.d.ts +81 -0
- package/dist/types/history/tree.d.ts +175 -0
- package/dist/types/index.d.ts +189 -0
- package/dist/types/migrations/data.d.ts +30 -0
- package/dist/types/migrations/legacy_tools.d.ts +15 -0
- package/dist/types/model.d.ts +192 -0
- package/dist/types/plugins/base_plugin.d.ts +63 -0
- package/dist/types/plugins/core/borders.d.ts +127 -0
- package/dist/types/plugins/core/cell.d.ts +103 -0
- package/dist/types/plugins/core/chart.d.ts +41 -0
- package/dist/types/plugins/core/conditional_format.d.ts +52 -0
- package/dist/types/plugins/core/data_validation.d.ts +31 -0
- package/dist/types/plugins/core/figures.d.ts +34 -0
- package/dist/types/plugins/core/filters.d.ts +43 -0
- package/dist/types/plugins/core/header_grouping.d.ts +82 -0
- package/dist/types/plugins/core/header_size.d.ts +23 -0
- package/dist/types/plugins/core/header_visibility.d.ts +20 -0
- package/dist/types/plugins/core/image.d.ts +32 -0
- package/dist/types/plugins/core/index.d.ts +13 -0
- package/dist/types/plugins/core/merge.d.ts +83 -0
- package/dist/types/plugins/core/range.d.ts +59 -0
- package/dist/types/plugins/core/settings.d.ts +12 -0
- package/dist/types/plugins/core/sheet.d.ts +151 -0
- package/dist/types/plugins/core_plugin.d.ts +49 -0
- package/dist/types/plugins/index.d.ts +7 -0
- package/dist/types/plugins/ui_core_views/cell_evaluation/compilation_parameters.d.ts +10 -0
- package/dist/types/plugins/ui_core_views/cell_evaluation/evaluation_plugin.d.ts +43 -0
- package/dist/types/plugins/ui_core_views/cell_evaluation/evaluator.d.ts +90 -0
- package/dist/types/plugins/ui_core_views/cell_evaluation/formula_dependency_graph.d.ts +23 -0
- package/dist/types/plugins/ui_core_views/cell_evaluation/index.d.ts +1 -0
- package/dist/types/plugins/ui_core_views/cell_evaluation/r_tree.d.ts +108 -0
- package/dist/types/plugins/ui_core_views/cell_evaluation/spreading_relation.d.ts +60 -0
- package/dist/types/plugins/ui_core_views/custom_colors.d.ts +24 -0
- package/dist/types/plugins/ui_core_views/evaluation_chart.d.ts +24 -0
- package/dist/types/plugins/ui_core_views/evaluation_conditional_format.d.ts +37 -0
- package/dist/types/plugins/ui_core_views/evaluation_data_validation.d.ts +38 -0
- package/dist/types/plugins/ui_core_views/header_sizes_ui.d.ts +32 -0
- package/dist/types/plugins/ui_core_views/index.d.ts +5 -0
- package/dist/types/plugins/ui_feature/autofill.d.ts +60 -0
- package/dist/types/plugins/ui_feature/automatic_sum.d.ts +101 -0
- package/dist/types/plugins/ui_feature/cell_popovers.d.ts +16 -0
- package/dist/types/plugins/ui_feature/collaborative.d.ts +25 -0
- package/dist/types/plugins/ui_feature/data_cleanup.d.ts +16 -0
- package/dist/types/plugins/ui_feature/find_and_replace.d.ts +76 -0
- package/dist/types/plugins/ui_feature/format.d.ts +23 -0
- package/dist/types/plugins/ui_feature/header_visibility_ui.d.ts +21 -0
- package/dist/types/plugins/ui_feature/highlight.d.ts +12 -0
- package/dist/types/plugins/ui_feature/index.d.ts +15 -0
- package/dist/types/plugins/ui_feature/local_history.d.ts +36 -0
- package/dist/types/plugins/ui_feature/renderer.d.ts +45 -0
- package/dist/types/plugins/ui_feature/selection_input.d.ts +67 -0
- package/dist/types/plugins/ui_feature/selection_inputs_manager.d.ts +33 -0
- package/dist/types/plugins/ui_feature/sort.d.ts +75 -0
- package/dist/types/plugins/ui_feature/split_to_columns.d.ts +21 -0
- package/dist/types/plugins/ui_feature/ui_options.d.ts +8 -0
- package/dist/types/plugins/ui_feature/ui_sheet.d.ts +30 -0
- package/dist/types/plugins/ui_plugin.d.ts +36 -0
- package/dist/types/plugins/ui_stateful/clipboard.d.ts +43 -0
- package/dist/types/plugins/ui_stateful/edition.d.ts +117 -0
- package/dist/types/plugins/ui_stateful/filter_evaluation.d.ts +26 -0
- package/dist/types/plugins/ui_stateful/header_positions.d.ts +28 -0
- package/dist/types/plugins/ui_stateful/index.d.ts +5 -0
- package/dist/types/plugins/ui_stateful/selection.d.ts +78 -0
- package/dist/types/plugins/ui_stateful/sheetview.d.ts +164 -0
- package/dist/types/registries/autofill_modifiers.d.ts +7 -0
- package/dist/types/registries/autofill_rules.d.ts +15 -0
- package/dist/types/registries/cell_clickable_registry.d.ts +8 -0
- package/dist/types/registries/cell_popovers_registry.d.ts +3 -0
- package/dist/types/registries/chart_types.d.ts +28 -0
- package/dist/types/registries/currencies_registry.d.ts +7 -0
- package/dist/types/registries/data_validation_registry.d.ts +32 -0
- package/dist/types/registries/figure_registry.d.ts +18 -0
- package/dist/types/registries/index.d.ts +11 -0
- package/dist/types/registries/inverse_command_registry.d.ts +5 -0
- package/dist/types/registries/menu_items_registry.d.ts +19 -0
- package/dist/types/registries/menus/cell_menu_registry.d.ts +2 -0
- package/dist/types/registries/menus/col_menu_registry.d.ts +2 -0
- package/dist/types/registries/menus/header_group_registry.d.ts +7 -0
- package/dist/types/registries/menus/index.d.ts +7 -0
- package/dist/types/registries/menus/link_menu_registry.d.ts +2 -0
- package/dist/types/registries/menus/number_format_menu_registry.d.ts +4 -0
- package/dist/types/registries/menus/row_menu_registry.d.ts +2 -0
- package/dist/types/registries/menus/sheet_menu_registry.d.ts +4 -0
- package/dist/types/registries/menus/topbar_menu_registry.d.ts +2 -0
- package/dist/types/registries/ot_registry.d.ts +21 -0
- package/dist/types/registries/registry.d.ts +44 -0
- package/dist/types/registries/repeat_commands_registry.d.ts +20 -0
- package/dist/types/registries/side_panel_registry.d.ts +8 -0
- package/dist/types/registries/topbar_component_registry.d.ts +18 -0
- package/dist/types/selection_stream/event_stream.d.ts +64 -0
- package/dist/types/selection_stream/selection_stream_processor.d.ts +167 -0
- package/dist/types/state_observer.d.ts +15 -0
- package/dist/types/translation.d.ts +21 -0
- package/dist/types/types/autofill.d.ts +62 -0
- package/dist/types/types/cell_popovers.d.ts +44 -0
- package/dist/types/types/cells.d.ts +64 -0
- package/dist/types/types/chart/bar_chart.d.ts +19 -0
- package/dist/types/types/chart/chart.d.ts +48 -0
- package/dist/types/types/chart/common_chart.d.ts +2 -0
- package/dist/types/types/chart/gauge_chart.d.ts +73 -0
- package/dist/types/types/chart/index.d.ts +7 -0
- package/dist/types/types/chart/line_chart.d.ts +21 -0
- package/dist/types/types/chart/pie_chart.d.ts +17 -0
- package/dist/types/types/chart/scorecard_chart.d.ts +26 -0
- package/dist/types/types/clipboard.d.ts +31 -0
- package/dist/types/types/collaborative/revisions.d.ts +7 -0
- package/dist/types/types/collaborative/session.d.ts +46 -0
- package/dist/types/types/collaborative/transport_service.d.ts +91 -0
- package/dist/types/types/commands.d.ts +873 -0
- package/dist/types/types/conditional_formatting.d.ts +103 -0
- package/dist/types/types/currency.d.ts +7 -0
- package/dist/types/types/data_validation.d.ts +121 -0
- package/dist/types/types/env.d.ts +33 -0
- package/dist/types/types/errors.d.ts +33 -0
- package/dist/types/types/event_stream/index.d.ts +1 -0
- package/dist/types/types/event_stream/selection_events.d.ts +11 -0
- package/dist/types/types/figure.d.ts +14 -0
- package/dist/types/types/files.d.ts +27 -0
- package/dist/types/types/format.d.ts +8 -0
- package/dist/types/types/functions.d.ts +49 -0
- package/dist/types/types/getters.d.ts +101 -0
- package/dist/types/types/history.d.ts +43 -0
- package/dist/types/types/image.d.ts +12 -0
- package/dist/types/types/index.d.ts +30 -0
- package/dist/types/types/locale.d.ts +13 -0
- package/dist/types/types/misc.d.ts +276 -0
- package/dist/types/types/range.d.ts +21 -0
- package/dist/types/types/rendering.d.ts +86 -0
- package/dist/types/types/validator.d.ts +16 -0
- package/dist/types/types/workbook_data.d.ts +112 -0
- package/dist/types/types/xlsx.d.ts +441 -0
- package/dist/types/xlsx/constants.d.ts +74 -0
- package/dist/types/xlsx/conversion/cf_conversion.d.ts +4 -0
- package/dist/types/xlsx/conversion/color_conversion.d.ts +24 -0
- package/dist/types/xlsx/conversion/conversion_maps.d.ts +167 -0
- package/dist/types/xlsx/conversion/figure_conversion.d.ts +3 -0
- package/dist/types/xlsx/conversion/format_conversion.d.ts +8 -0
- package/dist/types/xlsx/conversion/formula_conversion.d.ts +9 -0
- package/dist/types/xlsx/conversion/index.d.ts +7 -0
- package/dist/types/xlsx/conversion/sheet_conversion.d.ts +4 -0
- package/dist/types/xlsx/conversion/style_conversion.d.ts +19 -0
- package/dist/types/xlsx/conversion/table_conversion.d.ts +14 -0
- package/dist/types/xlsx/extraction/base_extractor.d.ts +142 -0
- package/dist/types/xlsx/extraction/cf_extractor.d.ts +14 -0
- package/dist/types/xlsx/extraction/chart_extractor.d.ts +11 -0
- package/dist/types/xlsx/extraction/external_book_extractor.d.ts +6 -0
- package/dist/types/xlsx/extraction/figure_extractor.d.ts +8 -0
- package/dist/types/xlsx/extraction/index.d.ts +3 -0
- package/dist/types/xlsx/extraction/misc_extractor.d.ts +18 -0
- package/dist/types/xlsx/extraction/pivot_extractor.d.ts +8 -0
- package/dist/types/xlsx/extraction/sheet_extractor.d.ts +23 -0
- package/dist/types/xlsx/extraction/style_extractor.d.ts +19 -0
- package/dist/types/xlsx/extraction/table_extractor.d.ts +10 -0
- package/dist/types/xlsx/functions/cells.d.ts +11 -0
- package/dist/types/xlsx/functions/charts.d.ts +3 -0
- package/dist/types/xlsx/functions/conditional_formatting.d.ts +3 -0
- package/dist/types/xlsx/functions/drawings.d.ts +5 -0
- package/dist/types/xlsx/functions/styles.d.ts +10 -0
- package/dist/types/xlsx/functions/table.d.ts +2 -0
- package/dist/types/xlsx/functions/worksheet.d.ts +9 -0
- package/dist/types/xlsx/helpers/colors.d.ts +8 -0
- package/dist/types/xlsx/helpers/content_helpers.d.ts +48 -0
- package/dist/types/xlsx/helpers/misc.d.ts +29 -0
- package/dist/types/xlsx/helpers/xlsx_helper.d.ts +10 -0
- package/dist/types/xlsx/helpers/xlsx_parser_error_manager.d.ts +34 -0
- package/dist/types/xlsx/helpers/xml_helpers.d.ts +36 -0
- package/dist/types/xlsx/xlsx_reader.d.ts +13 -0
- package/dist/types/xlsx/xlsx_writer.d.ts +8 -0
- package/package.json +42 -25
- 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
|
+
}
|