@odoo/o-spreadsheet 18.0.55 → 18.0.68
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 +60099 -68434
- package/dist/o-spreadsheet.esm.js +59914 -68433
- package/dist/o-spreadsheet.iife.js +65385 -73903
- package/dist/o-spreadsheet.iife.min.js +764 -727
- package/dist/o_spreadsheet.xml +9 -6
- package/dist/types/actions/action.d.ts +84 -0
- package/dist/types/actions/data_actions.d.ts +12 -0
- package/dist/types/actions/edit_actions.d.ts +23 -0
- package/dist/types/actions/format_actions.d.ts +63 -0
- package/dist/types/actions/insert_actions.d.ts +32 -0
- package/dist/types/actions/menu_items_actions.d.ts +55 -0
- package/dist/types/actions/sheet_actions.d.ts +13 -0
- package/dist/types/actions/view_actions.d.ts +26 -0
- package/dist/types/clipboard_handlers/abstract_cell_clipboard_handler.d.ts +7 -0
- package/dist/types/clipboard_handlers/abstract_clipboard_handler.d.ts +12 -0
- package/dist/types/clipboard_handlers/abstract_figure_clipboard_handler.d.ts +5 -0
- package/dist/types/clipboard_handlers/borders_clipboard.d.ts +17 -0
- package/dist/types/clipboard_handlers/cell_clipboard.d.ts +29 -0
- package/dist/types/clipboard_handlers/chart_clipboard.d.ts +15 -0
- package/dist/types/clipboard_handlers/conditional_format_clipboard.d.ts +25 -0
- package/dist/types/clipboard_handlers/data_validation_clipboard.d.ts +25 -0
- package/dist/types/clipboard_handlers/image_clipboard.d.ts +16 -0
- package/dist/types/clipboard_handlers/index.d.ts +7 -0
- package/dist/types/clipboard_handlers/merge_clipboard.d.ts +16 -0
- package/dist/types/clipboard_handlers/references_clipboard.d.ts +11 -0
- package/dist/types/clipboard_handlers/sheet_clipboard.d.ts +11 -0
- package/dist/types/clipboard_handlers/tables_clipboard.d.ts +33 -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 +101 -0
- package/dist/types/components/action_button/action_button.d.ts +42 -0
- package/dist/types/components/animation/ripple.d.ts +118 -0
- package/dist/types/components/autofill/autofill.d.ts +29 -0
- package/dist/types/components/border_editor/border_editor.d.ts +67 -0
- package/dist/types/components/border_editor/border_editor_widget.d.ts +47 -0
- package/dist/types/components/bottom_bar/bottom_bar.d.ts +59 -0
- package/dist/types/components/bottom_bar/bottom_bar_sheet/bottom_bar_sheet.d.ts +62 -0
- package/dist/types/components/bottom_bar/bottom_bar_statistic/aggregate_statistics_store.d.ts +15 -0
- package/dist/types/components/bottom_bar/bottom_bar_statistic/bottom_bar_statistic.d.ts +25 -0
- package/dist/types/components/collaborative_client_tag/collaborative_client_tag.d.ts +21 -0
- package/dist/types/components/color_picker/color_picker.d.ts +57 -0
- package/dist/types/components/color_picker/color_picker_widget.d.ts +52 -0
- package/dist/types/components/composer/autocomplete_dropdown/autocomplete_dropdown.d.ts +23 -0
- package/dist/types/components/composer/autocomplete_dropdown/autocomplete_dropdown_store.d.ts +12 -0
- package/dist/types/components/composer/composer/abstract_composer_store.d.ts +113 -0
- package/dist/types/components/composer/composer/cell_composer_store.d.ts +18 -0
- package/dist/types/components/composer/composer/composer.d.ts +172 -0
- package/dist/types/components/composer/composer_focus_store.d.ts +28 -0
- package/dist/types/components/composer/content_editable_helper.d.ts +60 -0
- package/dist/types/components/composer/formula_assistant/formula_assistant.d.ts +18 -0
- package/dist/types/components/composer/grid_composer/grid_composer.d.ts +47 -0
- package/dist/types/components/composer/standalone_composer/standalone_composer.d.ts +60 -0
- package/dist/types/components/composer/standalone_composer/standalone_composer_store.d.ts +22 -0
- package/dist/types/components/composer/top_bar_composer/top_bar_composer.d.ts +19 -0
- package/dist/types/components/dashboard/clickable_cell_store.d.ts +15 -0
- package/dist/types/components/dashboard/dashboard.d.ts +49 -0
- package/dist/types/components/data_validation_overlay/data_validation_overlay.d.ts +16 -0
- package/dist/types/components/data_validation_overlay/dv_checkbox/dv_checkbox.d.ts +19 -0
- package/dist/types/components/data_validation_overlay/dv_list_icon/dv_list_icon.d.ts +13 -0
- package/dist/types/components/error_tooltip/error_tooltip.d.ts +25 -0
- package/dist/types/components/figures/chart/chartJs/chartjs.d.ts +23 -0
- package/dist/types/components/figures/chart/chartJs/chartjs_show_values_plugin.d.ts +16 -0
- package/dist/types/components/figures/chart/chartJs/chartjs_waterfall_plugin.d.ts +12 -0
- package/dist/types/components/figures/chart/gauge/gauge_chart_component.d.ts +13 -0
- package/dist/types/components/figures/chart/scorecard/chart_scorecard.d.ts +18 -0
- package/dist/types/components/figures/figure/figure.d.ts +54 -0
- package/dist/types/components/figures/figure_chart/figure_chart.d.ts +16 -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 +15 -0
- package/dist/types/components/filters/filter_icon/filter_icon.d.ts +19 -0
- package/dist/types/components/filters/filter_icons_overlay/filter_icons_overlay.d.ts +13 -0
- package/dist/types/components/filters/filter_menu/filter_menu.d.ts +46 -0
- package/dist/types/components/filters/filter_menu_item/filter_menu_value_item.d.ts +28 -0
- package/dist/types/components/focus_store.d.ts +6 -0
- package/dist/types/components/font_size_editor/font_size_editor.d.ts +34 -0
- package/dist/types/components/grid/grid.d.ts +105 -0
- package/dist/types/components/grid/hovered_cell_store.d.ts +10 -0
- package/dist/types/components/grid_add_rows_footer/grid_add_rows_footer.d.ts +29 -0
- package/dist/types/components/grid_cell_icon/grid_cell_icon.d.ts +26 -0
- package/dist/types/components/grid_overlay/grid_overlay.d.ts +68 -0
- package/dist/types/components/grid_popover/grid_popover.d.ts +28 -0
- package/dist/types/components/header_group/header_group.d.ts +46 -0
- package/dist/types/components/header_group/header_group_container.d.ts +33 -0
- package/dist/types/components/headers_overlay/headers_overlay.d.ts +131 -0
- package/dist/types/components/helpers/autofocus_hook.d.ts +3 -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/highlight_hook.d.ts +4 -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 +13 -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 +17 -0
- package/dist/types/components/helpers/touch_scroll_hook.d.ts +3 -0
- package/dist/types/components/helpers/wheel_hook.d.ts +1 -0
- package/dist/types/components/highlight/border/border.d.ts +21 -0
- package/dist/types/components/highlight/corner/corner.d.ts +25 -0
- package/dist/types/components/highlight/highlight/highlight.d.ts +26 -0
- package/dist/types/components/icon_picker/icon_picker.d.ts +68 -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 +28 -0
- package/dist/types/components/link/link_editor/link_editor.d.ts +46 -0
- package/dist/types/components/menu/menu.d.ts +99 -0
- package/dist/types/components/paint_format_button/paint_format_button.d.ts +20 -0
- package/dist/types/components/paint_format_button/paint_format_store.d.ts +27 -0
- package/dist/types/components/pivot_html_renderer/pivot_html_renderer.d.ts +87 -0
- package/dist/types/components/popover/cell_popover_store.d.ts +22 -0
- package/dist/types/components/popover/index.d.ts +3 -0
- package/dist/types/components/popover/popover.d.ts +80 -0
- package/dist/types/components/popover/popover_builders.d.ts +1 -0
- package/dist/types/components/scrollbar/index.d.ts +2 -0
- package/dist/types/components/scrollbar/scrollbar.d.ts +39 -0
- package/dist/types/components/scrollbar/scrollbar_horizontal.d.ts +32 -0
- package/dist/types/components/scrollbar/scrollbar_vertical.d.ts +32 -0
- package/dist/types/components/scrollbar.d.ts +9 -0
- package/dist/types/components/selection_input/selection_input.d.ts +81 -0
- package/dist/types/components/selection_input/selection_input_store.d.ts +96 -0
- package/dist/types/components/side_panel/chart/bar_chart/bar_chart_config_panel.d.ts +7 -0
- package/dist/types/components/side_panel/chart/building_blocks/axis_design/axis_design_editor.d.ts +46 -0
- package/dist/types/components/side_panel/chart/building_blocks/data_series/data_series.d.ts +30 -0
- package/dist/types/components/side_panel/chart/building_blocks/error_section/error_section.d.ts +21 -0
- package/dist/types/components/side_panel/chart/building_blocks/general_design/general_design_editor.d.ts +41 -0
- package/dist/types/components/side_panel/chart/building_blocks/generic_side_panel/config_panel.d.ts +87 -0
- package/dist/types/components/side_panel/chart/building_blocks/label_range/label_range.d.ts +42 -0
- package/dist/types/components/side_panel/chart/building_blocks/title/title.d.ts +76 -0
- package/dist/types/components/side_panel/chart/chart_type_picker/chart_type_picker.d.ts +49 -0
- package/dist/types/components/side_panel/chart/chart_with_axis/design_panel.d.ts +63 -0
- package/dist/types/components/side_panel/chart/combo_chart/combo_chart_config_panel.d.ts +4 -0
- package/dist/types/components/side_panel/chart/combo_chart/combo_chart_design_panel.d.ts +19 -0
- package/dist/types/components/side_panel/chart/gauge_chart_panel/gauge_chart_config_panel.d.ts +32 -0
- package/dist/types/components/side_panel/chart/gauge_chart_panel/gauge_chart_design_panel.d.ts +48 -0
- package/dist/types/components/side_panel/chart/index.d.ts +15 -0
- package/dist/types/components/side_panel/chart/line_chart/line_chart_config_panel.d.ts +16 -0
- package/dist/types/components/side_panel/chart/main_chart_panel/main_chart_panel.d.ts +31 -0
- package/dist/types/components/side_panel/chart/main_chart_panel/main_chart_panel_store.d.ts +10 -0
- package/dist/types/components/side_panel/chart/pie_chart/pie_chart_design_panel.d.ts +31 -0
- package/dist/types/components/side_panel/chart/scatter_chart/scatter_chart_config_panel.d.ts +12 -0
- package/dist/types/components/side_panel/chart/scorecard_chart_panel/scorecard_chart_config_panel.d.ts +40 -0
- package/dist/types/components/side_panel/chart/scorecard_chart_panel/scorecard_chart_design_panel.d.ts +41 -0
- package/dist/types/components/side_panel/chart/waterfall_chart/waterfall_chart_design_panel.d.ts +53 -0
- package/dist/types/components/side_panel/components/badge_selection/badge_selection.d.ts +20 -0
- package/dist/types/components/side_panel/components/checkbox/checkbox.d.ts +47 -0
- package/dist/types/components/side_panel/components/cog_wheel_menu/cog_wheel_menu.d.ts +22 -0
- package/dist/types/components/side_panel/components/collapsible/side_panel_collapsible.d.ts +16 -0
- package/dist/types/components/side_panel/components/radio_selection/radio_selection.d.ts +32 -0
- package/dist/types/components/side_panel/components/round_color_picker/round_color_picker.d.ts +45 -0
- package/dist/types/components/side_panel/components/section/section.d.ts +16 -0
- package/dist/types/components/side_panel/conditional_formatting/cf_editor/cf_editor.d.ts +167 -0
- package/dist/types/components/side_panel/conditional_formatting/cf_preview/cf_preview.d.ts +57 -0
- package/dist/types/components/side_panel/conditional_formatting/cf_preview_list/cf_preview_list.d.ts +64 -0
- package/dist/types/components/side_panel/conditional_formatting/conditional_formatting.d.ts +30 -0
- package/dist/types/components/side_panel/custom_currency/custom_currency.d.ts +43 -0
- package/dist/types/components/side_panel/data_validation/data_validation_panel.d.ts +28 -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 +15 -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 +54 -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 +48 -0
- package/dist/types/components/side_panel/data_validation/dv_preview/dv_preview.d.ts +20 -0
- package/dist/types/components/side_panel/find_and_replace/find_and_replace.d.ts +46 -0
- package/dist/types/components/side_panel/find_and_replace/find_and_replace_store.d.ts +72 -0
- package/dist/types/components/side_panel/more_formats/more_formats.d.ts +13 -0
- package/dist/types/components/side_panel/pivot/editable_name/editable_name.d.ts +21 -0
- package/dist/types/components/side_panel/pivot/pivot_defer_update/pivot_defer_update.d.ts +28 -0
- package/dist/types/components/side_panel/pivot/pivot_layout_configurator/add_dimension_button/add_dimension_button.d.ts +46 -0
- package/dist/types/components/side_panel/pivot/pivot_layout_configurator/pivot_dimension/pivot_dimension.d.ts +35 -0
- package/dist/types/components/side_panel/pivot/pivot_layout_configurator/pivot_dimension_granularity/pivot_dimension_granularity.d.ts +34 -0
- package/dist/types/components/side_panel/pivot/pivot_layout_configurator/pivot_dimension_order/pivot_dimension_order.d.ts +15 -0
- package/dist/types/components/side_panel/pivot/pivot_layout_configurator/pivot_layout_configurator.d.ts +73 -0
- package/dist/types/components/side_panel/pivot/pivot_layout_configurator/pivot_measure/pivot_measure.d.ts +37 -0
- package/dist/types/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel.d.ts +68 -0
- package/dist/types/components/side_panel/pivot/pivot_measure_display_panel/pivot_measure_display_panel_store.d.ts +34 -0
- package/dist/types/components/side_panel/pivot/pivot_side_panel/pivot_side_panel.d.ts +21 -0
- package/dist/types/components/side_panel/pivot/pivot_side_panel/pivot_side_panel_store.d.ts +35 -0
- package/dist/types/components/side_panel/pivot/pivot_side_panel/pivot_spreadsheet_side_panel/pivot_spreadsheet_side_panel.d.ts +49 -0
- package/dist/types/components/side_panel/pivot/pivot_title_section/pivot_title_section.d.ts +29 -0
- package/dist/types/components/side_panel/remove_duplicates/remove_duplicates.d.ts +39 -0
- package/dist/types/components/side_panel/select_menu/select_menu.d.ts +37 -0
- package/dist/types/components/side_panel/settings/settings_panel.d.ts +28 -0
- package/dist/types/components/side_panel/side_panel/side_panel.d.ts +15 -0
- package/dist/types/components/side_panel/side_panel/side_panel_store.d.ts +32 -0
- package/dist/types/components/side_panel/split_to_columns_panel/split_to_columns_panel.d.ts +42 -0
- package/dist/types/components/side_panel/table_panel/table_panel.d.ts +52 -0
- package/dist/types/components/side_panel/table_style_editor_panel/table_style_editor_panel.d.ts +50 -0
- package/dist/types/components/spreadsheet/spreadsheet.d.ts +63 -0
- package/dist/types/components/tables/table_dropdown_button/table_dropdown_button.d.ts +25 -0
- package/dist/types/components/tables/table_resizer/table_resizer.d.ts +20 -0
- package/dist/types/components/tables/table_style_picker/table_style_picker.d.ts +28 -0
- package/dist/types/components/tables/table_style_preview/table_canvas_helpers.d.ts +2 -0
- package/dist/types/components/tables/table_style_preview/table_style_preview.d.ts +45 -0
- package/dist/types/components/tables/table_styles_popover/table_styles_popover.d.ts +53 -0
- package/dist/types/components/text_input/text_input.d.ts +35 -0
- package/dist/types/components/top_bar/top_bar.d.ts +70 -0
- package/dist/types/components/translations_terms.d.ts +191 -0
- package/dist/types/components/validation_messages/validation_messages.d.ts +21 -0
- package/dist/types/constants.d.ts +179 -0
- package/dist/types/formulas/code_builder.d.ts +24 -0
- package/dist/types/formulas/compiler.d.ts +26 -0
- package/dist/types/formulas/composer_tokenizer.d.ts +48 -0
- package/dist/types/formulas/helpers.d.ts +7 -0
- package/dist/types/formulas/index.d.ts +14 -0
- package/dist/types/formulas/parser.d.ts +76 -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 +51 -0
- package/dist/types/functions/helper_logical.d.ts +9 -0
- package/dist/types/functions/helper_lookup.d.ts +9 -0
- package/dist/types/functions/helper_math.d.ts +3 -0
- package/dist/types/functions/helper_matrices.d.ts +24 -0
- package/dist/types/functions/helper_parser.d.ts +95 -0
- package/dist/types/functions/helper_statistical.d.ts +19 -0
- package/dist/types/functions/helpers.d.ts +146 -0
- package/dist/types/functions/index.d.ts +18 -0
- package/dist/types/functions/module_array.d.ts +122 -0
- package/dist/types/functions/module_custom.d.ts +6 -0
- package/dist/types/functions/module_database.d.ts +73 -0
- package/dist/types/functions/module_date.d.ts +185 -0
- package/dist/types/functions/module_engineering.d.ts +7 -0
- package/dist/types/functions/module_filter.d.ts +16 -0
- package/dist/types/functions/module_financial.d.ts +295 -0
- package/dist/types/functions/module_info.d.ts +63 -0
- package/dist/types/functions/module_logical.d.ts +31 -0
- package/dist/types/functions/module_lookup.d.ts +108 -0
- package/dist/types/functions/module_math.d.ts +354 -0
- package/dist/types/functions/module_operators.d.ts +77 -0
- package/dist/types/functions/module_parser.d.ts +7 -0
- package/dist/types/functions/module_statistical.d.ts +244 -0
- package/dist/types/functions/module_text.d.ts +132 -0
- package/dist/types/functions/module_web.d.ts +7 -0
- package/dist/types/helpers/cells/cell_evaluation.d.ts +4 -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_helpers.d.ts +32 -0
- package/dist/types/helpers/clipboard/navigator_clipboard_wrapper.d.ts +13 -0
- package/dist/types/helpers/color.d.ts +80 -0
- package/dist/types/helpers/coordinates.d.ts +38 -0
- package/dist/types/helpers/data_normalization.d.ts +14 -0
- package/dist/types/helpers/data_validation_helpers.d.ts +6 -0
- package/dist/types/helpers/dates.d.ts +92 -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 +32 -0
- package/dist/types/helpers/figures/charts/chart_common.d.ts +122 -0
- package/dist/types/helpers/figures/charts/chart_common_line_scatter.d.ts +16 -0
- package/dist/types/helpers/figures/charts/chart_factory.d.ts +35 -0
- package/dist/types/helpers/figures/charts/chart_ui_common.d.ts +51 -0
- package/dist/types/helpers/figures/charts/combo_chart.d.ts +29 -0
- package/dist/types/helpers/figures/charts/gauge_chart.d.ts +23 -0
- package/dist/types/helpers/figures/charts/gauge_chart_rendering.d.ts +48 -0
- package/dist/types/helpers/figures/charts/index.d.ts +10 -0
- package/dist/types/helpers/figures/charts/line_chart.d.ts +33 -0
- package/dist/types/helpers/figures/charts/pie_chart.d.ts +29 -0
- package/dist/types/helpers/figures/charts/pyramid_chart.d.ts +32 -0
- package/dist/types/helpers/figures/charts/scatter_chart.d.ts +31 -0
- package/dist/types/helpers/figures/charts/scorecard_chart.d.ts +32 -0
- package/dist/types/helpers/figures/charts/scorecard_chart_config_builder.d.ts +44 -0
- package/dist/types/helpers/figures/charts/waterfall_chart.d.ts +37 -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/format/format.d.ts +45 -0
- package/dist/types/helpers/format/format_parser.d.ts +38 -0
- package/dist/types/helpers/format/format_tokenizer.d.ts +39 -0
- package/dist/types/helpers/index.d.ts +17 -0
- package/dist/types/helpers/internal_viewport.d.ts +82 -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 +211 -0
- package/dist/types/helpers/numbers.d.ts +25 -0
- package/dist/types/helpers/pivot/pivot_composer_helpers.d.ts +61 -0
- package/dist/types/helpers/pivot/pivot_domain_helpers.d.ts +68 -0
- package/dist/types/helpers/pivot/pivot_helpers.d.ts +55 -0
- package/dist/types/helpers/pivot/pivot_highlight.d.ts +2 -0
- package/dist/types/helpers/pivot/pivot_menu_items.d.ts +3 -0
- package/dist/types/helpers/pivot/pivot_positional_formula_registry.d.ts +7 -0
- package/dist/types/helpers/pivot/pivot_presence_tracker.d.ts +9 -0
- package/dist/types/helpers/pivot/pivot_presentation.d.ts +91 -0
- package/dist/types/helpers/pivot/pivot_registry.d.ts +28 -0
- package/dist/types/helpers/pivot/pivot_runtime_definition.d.ts +14 -0
- package/dist/types/helpers/pivot/pivot_side_panel_registry.d.ts +6 -0
- package/dist/types/helpers/pivot/pivot_time_adapter.d.ts +5 -0
- package/dist/types/helpers/pivot/spreadsheet_pivot/data_entry_spreadsheet_pivot.d.ts +20 -0
- package/dist/types/helpers/pivot/spreadsheet_pivot/date_spreadsheet_pivot.d.ts +7 -0
- package/dist/types/helpers/pivot/spreadsheet_pivot/runtime_definition_spreadsheet_pivot.d.ts +7 -0
- package/dist/types/helpers/pivot/spreadsheet_pivot/spreadsheet_pivot.d.ts +96 -0
- package/dist/types/helpers/pivot/table_spreadsheet_pivot.d.ts +80 -0
- package/dist/types/helpers/range.d.ts +59 -0
- package/dist/types/helpers/recompute_zones.d.ts +130 -0
- package/dist/types/helpers/rectangle.d.ts +7 -0
- package/dist/types/helpers/reference_type.d.ts +29 -0
- package/dist/types/helpers/references.d.ts +25 -0
- package/dist/types/helpers/rendering.d.ts +2 -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/table_helpers.d.ts +9 -0
- package/dist/types/helpers/table_presets.d.ts +23 -0
- package/dist/types/helpers/text_helper.d.ts +35 -0
- package/dist/types/helpers/ui/cut_interactive.d.ts +2 -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/table_interactive.d.ts +7 -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 +150 -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 +7 -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 +80 -0
- package/dist/types/history/tree.d.ts +175 -0
- package/dist/types/index.d.ts +364 -0
- package/dist/types/migrations/data.d.ts +30 -0
- package/dist/types/migrations/legacy_tools.d.ts +15 -0
- package/dist/types/migrations/locale.d.ts +94 -0
- package/dist/types/migrations/migration_steps.d.ts +6 -0
- package/dist/types/model.d.ts +193 -0
- package/dist/types/plugins/base_plugin.d.ts +64 -0
- package/dist/types/plugins/core/borders.d.ts +127 -0
- package/dist/types/plugins/core/cell.d.ts +115 -0
- package/dist/types/plugins/core/chart.d.ts +41 -0
- package/dist/types/plugins/core/conditional_format.d.ts +53 -0
- package/dist/types/plugins/core/data_validation.d.ts +33 -0
- package/dist/types/plugins/core/figures.d.ts +34 -0
- package/dist/types/plugins/core/header_grouping.d.ts +83 -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 +82 -0
- package/dist/types/plugins/core/pivot.d.ts +66 -0
- package/dist/types/plugins/core/range.d.ts +75 -0
- package/dist/types/plugins/core/settings.d.ts +12 -0
- package/dist/types/plugins/core/sheet.d.ts +148 -0
- package/dist/types/plugins/core/spreadsheet_pivot.d.ts +6 -0
- package/dist/types/plugins/core/table_style.d.ts +22 -0
- package/dist/types/plugins/core/tables.d.ts +56 -0
- package/dist/types/plugins/core_plugin.d.ts +50 -0
- package/dist/types/plugins/index.d.ts +7 -0
- package/dist/types/plugins/ui_core_views/cell_evaluation/binary_grid.d.ts +36 -0
- package/dist/types/plugins/ui_core_views/cell_evaluation/compilation_parameters.d.ts +14 -0
- package/dist/types/plugins/ui_core_views/cell_evaluation/evaluation_plugin.d.ts +58 -0
- package/dist/types/plugins/ui_core_views/cell_evaluation/evaluator.d.ts +59 -0
- package/dist/types/plugins/ui_core_views/cell_evaluation/formula_dependency_graph.d.ts +24 -0
- package/dist/types/plugins/ui_core_views/cell_evaluation/index.d.ts +1 -0
- package/dist/types/plugins/ui_core_views/cell_evaluation/position_map.d.ts +11 -0
- package/dist/types/plugins/ui_core_views/cell_evaluation/position_set.d.ts +28 -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 +63 -0
- package/dist/types/plugins/ui_core_views/custom_colors.d.ts +28 -0
- package/dist/types/plugins/ui_core_views/dynamic_tables.d.ts +32 -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 +41 -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_core_views/pivot_ui.d.ts +49 -0
- package/dist/types/plugins/ui_feature/autofill.d.ts +61 -0
- package/dist/types/plugins/ui_feature/automatic_sum.d.ts +101 -0
- package/dist/types/plugins/ui_feature/cell_computed_style.d.ts +13 -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/datavalidation_insertion.d.ts +5 -0
- package/dist/types/plugins/ui_feature/format.d.ts +25 -0
- package/dist/types/plugins/ui_feature/header_visibility_ui.d.ts +21 -0
- package/dist/types/plugins/ui_feature/index.d.ts +10 -0
- package/dist/types/plugins/ui_feature/insert_pivot.d.ts +14 -0
- package/dist/types/plugins/ui_feature/local_history.d.ts +36 -0
- package/dist/types/plugins/ui_feature/pivot_presence_plugin.d.ts +10 -0
- package/dist/types/plugins/ui_feature/sort.d.ts +29 -0
- package/dist/types/plugins/ui_feature/split_to_columns.d.ts +21 -0
- package/dist/types/plugins/ui_feature/table_autofill.d.ts +6 -0
- package/dist/types/plugins/ui_feature/table_computed_style.d.ts +26 -0
- package/dist/types/plugins/ui_feature/table_resize_ui.d.ts +6 -0
- package/dist/types/plugins/ui_feature/ui_options.d.ts +8 -0
- package/dist/types/plugins/ui_feature/ui_sheet.d.ts +48 -0
- package/dist/types/plugins/ui_plugin.d.ts +38 -0
- package/dist/types/plugins/ui_stateful/clipboard.d.ts +58 -0
- package/dist/types/plugins/ui_stateful/filter_evaluation.d.ts +25 -0
- package/dist/types/plugins/ui_stateful/header_positions.d.ts +28 -0
- package/dist/types/plugins/ui_stateful/index.d.ts +4 -0
- package/dist/types/plugins/ui_stateful/selection.d.ts +74 -0
- package/dist/types/plugins/ui_stateful/sheetview.d.ts +175 -0
- package/dist/types/registries/auto_completes/auto_complete_registry.d.ts +56 -0
- package/dist/types/registries/auto_completes/data_validation_auto_complete.d.ts +1 -0
- package/dist/types/registries/auto_completes/function_auto_complete.d.ts +1 -0
- package/dist/types/registries/auto_completes/index.d.ts +5 -0
- package/dist/types/registries/auto_completes/pivot_auto_complete.d.ts +1 -0
- package/dist/types/registries/auto_completes/pivot_dimension_auto_complete.d.ts +4 -0
- package/dist/types/registries/auto_completes/sheet_name_auto_complete.d.ts +1 -0
- package/dist/types/registries/autofill_modifiers.d.ts +7 -0
- package/dist/types/registries/autofill_rules.d.ts +20 -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 +52 -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/evaluation_registry.d.ts +9 -0
- package/dist/types/registries/figure_registry.d.ts +18 -0
- package/dist/types/registries/icons_on_cell_registry.d.ts +9 -0
- package/dist/types/registries/index.d.ts +12 -0
- package/dist/types/registries/inverse_command_registry.d.ts +5 -0
- package/dist/types/registries/menu_items_registry.d.ts +21 -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 +7 -0
- package/dist/types/registries/menus/row_menu_registry.d.ts +2 -0
- package/dist/types/registries/menus/sheet_menu_registry.d.ts +5 -0
- package/dist/types/registries/menus/table_style_menu_registry.d.ts +3 -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 +19 -0
- package/dist/types/registries/side_panel_registry.d.ts +14 -0
- package/dist/types/registries/side_panel_registry_entries.d.ts +1 -0
- package/dist/types/registries/topbar_component_registry.d.ts +20 -0
- package/dist/types/selection_stream/event_stream.d.ts +65 -0
- package/dist/types/selection_stream/selection_stream_processor.d.ts +154 -0
- package/dist/types/state_observer.d.ts +17 -0
- package/dist/types/store_engine/dependency_container.d.ts +25 -0
- package/dist/types/store_engine/index.d.ts +3 -0
- package/dist/types/store_engine/store.d.ts +72 -0
- package/dist/types/store_engine/store_hooks.d.ts +18 -0
- package/dist/types/stores/DOM_focus_store.d.ts +6 -0
- package/dist/types/stores/array_formula_highlight.d.ts +14 -0
- package/dist/types/stores/grid_renderer_store.d.ts +36 -0
- package/dist/types/stores/highlight_store.d.ts +16 -0
- package/dist/types/stores/index.d.ts +2 -0
- package/dist/types/stores/model_store.d.ts +2 -0
- package/dist/types/stores/notification_store.d.ts +13 -0
- package/dist/types/stores/renderer_store.d.ts +12 -0
- package/dist/types/stores/spreadsheet_store.d.ts +13 -0
- package/dist/types/translation.d.ts +21 -0
- package/dist/types/types/autofill.d.ts +71 -0
- package/dist/types/types/cell_popovers.d.ts +50 -0
- package/dist/types/types/cells.d.ts +64 -0
- package/dist/types/types/chart/bar_chart.d.ts +12 -0
- package/dist/types/types/chart/chart.d.ts +114 -0
- package/dist/types/types/chart/combo_chart.d.ts +15 -0
- package/dist/types/types/chart/common_bar_combo.d.ts +14 -0
- package/dist/types/types/chart/common_chart.d.ts +2 -0
- package/dist/types/types/chart/gauge_chart.d.ts +83 -0
- package/dist/types/types/chart/index.d.ts +7 -0
- package/dist/types/types/chart/line_chart.d.ts +24 -0
- package/dist/types/types/chart/pie_chart.d.ts +21 -0
- package/dist/types/types/chart/pyramid_chart.d.ts +10 -0
- package/dist/types/types/chart/scatter_chart.d.ts +5 -0
- package/dist/types/types/chart/scorecard_chart.d.ts +33 -0
- package/dist/types/types/chart/waterfall_chart.d.ts +27 -0
- package/dist/types/types/clipboard.d.ts +45 -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 +833 -0
- package/dist/types/types/conditional_formatting.d.ts +113 -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 +29 -0
- package/dist/types/types/errors.d.ts +36 -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 +18 -0
- package/dist/types/types/files.d.ts +27 -0
- package/dist/types/types/find_and_replace.d.ts +8 -0
- package/dist/types/types/format.d.ts +8 -0
- package/dist/types/types/functions.d.ts +50 -0
- package/dist/types/types/getters.d.ts +102 -0
- package/dist/types/types/history.d.ts +43 -0
- package/dist/types/types/image.d.ts +16 -0
- package/dist/types/types/index.d.ts +39 -0
- package/dist/types/types/locale.d.ts +14 -0
- package/dist/types/types/misc.d.ts +312 -0
- package/dist/types/types/pivot.d.ts +136 -0
- package/dist/types/types/pivot_runtime.d.ts +31 -0
- package/dist/types/types/range.d.ts +21 -0
- package/dist/types/types/rendering.d.ts +95 -0
- package/dist/types/types/table.d.ts +65 -0
- package/dist/types/types/validator.d.ts +16 -0
- package/dist/types/types/workbook_data.d.ts +147 -0
- package/dist/types/types/xlsx.d.ts +502 -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 +31 -0
- package/dist/types/xlsx/conversion/conversion_maps.d.ts +186 -0
- package/dist/types/xlsx/conversion/data_validation_conversion.d.ts +4 -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 +8 -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 +14 -0
- package/dist/types/xlsx/extraction/data_validation_extractor.d.ts +9 -0
- package/dist/types/xlsx/extraction/external_book_extractor.d.ts +6 -0
- package/dist/types/xlsx/extraction/figure_extractor.d.ts +10 -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 +10 -0
- package/dist/types/xlsx/extraction/sheet_extractor.d.ts +26 -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/data_validation.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 +10 -0
- package/dist/types/xlsx/helpers/colors.d.ts +8 -0
- package/dist/types/xlsx/helpers/content_helpers.d.ts +58 -0
- package/dist/types/xlsx/helpers/misc.d.ts +34 -0
- package/dist/types/xlsx/helpers/xlsx_helper.d.ts +10 -0
- package/dist/types/xlsx/helpers/xlsx_parser_error_manager.d.ts +38 -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 +19 -0
- package/package.json +45 -25
- package/dist/o-spreadsheet.d.ts +0 -12439
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { EventBus } from "./helpers/event_bus";
|
|
2
|
+
import { UuidGenerator } from "./helpers/index";
|
|
3
|
+
import { SelectionStreamProcessor } from "./selection_stream/selection_stream_processor";
|
|
4
|
+
import { StateUpdateMessage, TransportService } from "./types/collaborative/transport_service";
|
|
5
|
+
import { FileStore } from "./types/files";
|
|
6
|
+
import { Client, ClientPosition, Color, CommandDispatcher, Currency, Getters, GridRenderingContext, InformationNotification, LayerName, Locale } from "./types/index";
|
|
7
|
+
import { WorkbookData } from "./types/workbook_data";
|
|
8
|
+
import { XLSXExport } from "./types/xlsx";
|
|
9
|
+
/**
|
|
10
|
+
* Model
|
|
11
|
+
*
|
|
12
|
+
* The Model class is the owner of the state of the Spreadsheet. However, it
|
|
13
|
+
* has more a coordination role: it defers the actual state manipulation work to
|
|
14
|
+
* plugins.
|
|
15
|
+
*
|
|
16
|
+
* At creation, the Model instantiates all necessary plugins. They each have
|
|
17
|
+
* a private state (for example, the Selection plugin has the current selection).
|
|
18
|
+
*
|
|
19
|
+
* State changes are then performed through commands. Commands are dispatched
|
|
20
|
+
* to the model, which will then relay them to each plugins (and the history
|
|
21
|
+
* handler). Then, the model will trigger an 'update' event to notify whoever
|
|
22
|
+
* is concerned that the command was applied (if it was not cancelled).
|
|
23
|
+
*
|
|
24
|
+
* Also, the model has an unconventional responsibility: it actually renders the
|
|
25
|
+
* visible viewport on a canvas. This is because each plugins actually manage a
|
|
26
|
+
* specific concern about the content of the spreadsheet, and it is more natural
|
|
27
|
+
* if they are able to read data from their internal state to represent it on the
|
|
28
|
+
* screen.
|
|
29
|
+
*
|
|
30
|
+
* Note that the Model can be used in a standalone way to manipulate
|
|
31
|
+
* programmatically a spreadsheet.
|
|
32
|
+
*/
|
|
33
|
+
export type Mode = "normal" | "readonly" | "dashboard";
|
|
34
|
+
export interface ModelConfig {
|
|
35
|
+
readonly mode: Mode;
|
|
36
|
+
/**
|
|
37
|
+
* Any external custom dependencies your custom plugins or functions might need.
|
|
38
|
+
* They are available in plugins config and functions
|
|
39
|
+
* evaluation context.
|
|
40
|
+
*/
|
|
41
|
+
readonly custom: Readonly<{
|
|
42
|
+
[key: string]: any;
|
|
43
|
+
}>;
|
|
44
|
+
readonly defaultCurrency?: Partial<Currency>;
|
|
45
|
+
/**
|
|
46
|
+
* External dependencies required to enable some features
|
|
47
|
+
* such as uploading images.
|
|
48
|
+
*/
|
|
49
|
+
readonly external: Readonly<ModelExternalConfig>;
|
|
50
|
+
readonly moveClient: (position: ClientPosition) => void;
|
|
51
|
+
readonly transportService: TransportService;
|
|
52
|
+
readonly client: Client;
|
|
53
|
+
readonly snapshotRequested: boolean;
|
|
54
|
+
readonly notifyUI: (payload: InformationNotification) => void;
|
|
55
|
+
readonly raiseBlockingErrorUI: (text: string) => void;
|
|
56
|
+
readonly customColors: Color[];
|
|
57
|
+
}
|
|
58
|
+
export interface ModelExternalConfig {
|
|
59
|
+
readonly fileStore?: FileStore;
|
|
60
|
+
readonly loadCurrencies?: () => Promise<Currency[]>;
|
|
61
|
+
readonly loadLocales?: () => Promise<Locale[]>;
|
|
62
|
+
}
|
|
63
|
+
export declare class Model extends EventBus<any> implements CommandDispatcher {
|
|
64
|
+
private corePlugins;
|
|
65
|
+
private featurePlugins;
|
|
66
|
+
private statefulUIPlugins;
|
|
67
|
+
private coreViewsPlugins;
|
|
68
|
+
private range;
|
|
69
|
+
private session;
|
|
70
|
+
/**
|
|
71
|
+
* In a collaborative context, some commands can be replayed, we have to ensure
|
|
72
|
+
* that these commands are not replayed on the UI plugins.
|
|
73
|
+
*/
|
|
74
|
+
private isReplayingCommand;
|
|
75
|
+
/**
|
|
76
|
+
* A plugin can draw some contents on the canvas. But even better: it can do
|
|
77
|
+
* so multiple times. The order of the render calls will determine a list of
|
|
78
|
+
* "layers" (i.e., earlier calls will be obviously drawn below later calls).
|
|
79
|
+
* This list simply keeps the renderers+layer information so the drawing code
|
|
80
|
+
* can just iterate on it
|
|
81
|
+
*/
|
|
82
|
+
private renderers;
|
|
83
|
+
/**
|
|
84
|
+
* Internal status of the model. Important for command handling coordination
|
|
85
|
+
*/
|
|
86
|
+
private status;
|
|
87
|
+
/**
|
|
88
|
+
* The config object contains some configuration flag and callbacks
|
|
89
|
+
*/
|
|
90
|
+
readonly config: ModelConfig;
|
|
91
|
+
private corePluginConfig;
|
|
92
|
+
private uiPluginConfig;
|
|
93
|
+
private state;
|
|
94
|
+
readonly selection: SelectionStreamProcessor;
|
|
95
|
+
/**
|
|
96
|
+
* Getters are the main way the rest of the UI read data from the model. Also,
|
|
97
|
+
* it is shared between all plugins, so they can also communicate with each
|
|
98
|
+
* other.
|
|
99
|
+
*/
|
|
100
|
+
getters: Getters;
|
|
101
|
+
/**
|
|
102
|
+
* Getters that are accessible from the core plugins. It's a subset of `getters`,
|
|
103
|
+
* without the UI getters
|
|
104
|
+
*/
|
|
105
|
+
private coreGetters;
|
|
106
|
+
uuidGenerator: UuidGenerator;
|
|
107
|
+
private readonly handlers;
|
|
108
|
+
private readonly uiHandlers;
|
|
109
|
+
private readonly coreHandlers;
|
|
110
|
+
constructor(data?: any, config?: Partial<ModelConfig>, stateUpdateMessages?: StateUpdateMessage[], uuidGenerator?: UuidGenerator, verboseImport?: boolean);
|
|
111
|
+
joinSession(): void;
|
|
112
|
+
leaveSession(): Promise<void>;
|
|
113
|
+
private setupUiPlugin;
|
|
114
|
+
/**
|
|
115
|
+
* Initialize and properly configure a plugin.
|
|
116
|
+
*
|
|
117
|
+
* This method is private for now, but if the need arise, there is no deep
|
|
118
|
+
* reason why the model could not add dynamically a plugin while it is running.
|
|
119
|
+
*/
|
|
120
|
+
private setupCorePlugin;
|
|
121
|
+
private onRemoteRevisionReceived;
|
|
122
|
+
private setupSession;
|
|
123
|
+
private setupSessionEvents;
|
|
124
|
+
private setupConfig;
|
|
125
|
+
private setupExternalConfig;
|
|
126
|
+
private setupCorePluginConfig;
|
|
127
|
+
private setupUiPluginConfig;
|
|
128
|
+
/**
|
|
129
|
+
* Check if the given command is allowed by all the plugins and the history.
|
|
130
|
+
*/
|
|
131
|
+
private checkDispatchAllowed;
|
|
132
|
+
private checkDispatchAllowedCoreCommand;
|
|
133
|
+
private checkDispatchAllowedLocalCommand;
|
|
134
|
+
private finalize;
|
|
135
|
+
/**
|
|
136
|
+
* Check if a command can be dispatched, and returns a DispatchResult object with the possible
|
|
137
|
+
* reasons the dispatch failed.
|
|
138
|
+
*/
|
|
139
|
+
canDispatch: CommandDispatcher["dispatch"];
|
|
140
|
+
/**
|
|
141
|
+
* The dispatch method is the only entry point to manipulate data in the model.
|
|
142
|
+
* This is through this method that commands are dispatched most of the time
|
|
143
|
+
* recursively until no plugin want to react anymore.
|
|
144
|
+
*
|
|
145
|
+
* CoreCommands dispatched from this function are saved in the history.
|
|
146
|
+
*
|
|
147
|
+
* Small technical detail: it is defined as an arrow function. There are two
|
|
148
|
+
* reasons for this:
|
|
149
|
+
* 1. this means that the dispatch method can be "detached" from the model,
|
|
150
|
+
* which is done when it is put in the environment (see the Spreadsheet
|
|
151
|
+
* component)
|
|
152
|
+
* 2. This allows us to define its type by using the interface CommandDispatcher
|
|
153
|
+
*/
|
|
154
|
+
dispatch: CommandDispatcher["dispatch"];
|
|
155
|
+
/**
|
|
156
|
+
* Dispatch a command from a Core Plugin (or the History).
|
|
157
|
+
* A command dispatched from this function is not added to the history.
|
|
158
|
+
*/
|
|
159
|
+
private dispatchFromCorePlugin;
|
|
160
|
+
/**
|
|
161
|
+
* Dispatch the given command to the given handlers.
|
|
162
|
+
* It will call `beforeHandle` and `handle`
|
|
163
|
+
*/
|
|
164
|
+
private dispatchToHandlers;
|
|
165
|
+
/**
|
|
166
|
+
* When the Grid component is ready (= mounted), it has a reference to its
|
|
167
|
+
* canvas and need to draw the grid on it. This is then done by calling this
|
|
168
|
+
* method, which will dispatch the call to all registered plugins.
|
|
169
|
+
*
|
|
170
|
+
* Note that nothing prevent multiple grid components from calling this method
|
|
171
|
+
* each, or one grid component calling it multiple times with a different
|
|
172
|
+
* context. This is probably the way we should do if we want to be able to
|
|
173
|
+
* freeze a part of the grid (so, we would need to render different zones)
|
|
174
|
+
*/
|
|
175
|
+
drawLayer(context: GridRenderingContext, layer: LayerName): void;
|
|
176
|
+
/**
|
|
177
|
+
* As the name of this method strongly implies, it is useful when we need to
|
|
178
|
+
* export date out of the model.
|
|
179
|
+
*/
|
|
180
|
+
exportData(): WorkbookData;
|
|
181
|
+
updateMode(mode: Mode): void;
|
|
182
|
+
/**
|
|
183
|
+
* Exports the current model data into a list of serialized XML files
|
|
184
|
+
* to be zipped together as an *.xlsx file.
|
|
185
|
+
*
|
|
186
|
+
* We need to trigger a cell revaluation on every sheet and ensure that even
|
|
187
|
+
* async functions are evaluated.
|
|
188
|
+
* This prove to be necessary if the client did not trigger that evaluation in the first place
|
|
189
|
+
* (e.g. open a document with several sheet and click on download before visiting each sheet)
|
|
190
|
+
*/
|
|
191
|
+
exportXLSX(): XLSXExport;
|
|
192
|
+
garbageCollectExternalResources(): void;
|
|
193
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { StateObserver } from "../state_observer";
|
|
2
|
+
import { CommandDispatcher, CommandHandler, CommandResult, ExcelWorkbookData, Validation, WorkbookHistory } from "../types/index";
|
|
3
|
+
import { Validator } from "../types/validator";
|
|
4
|
+
/**
|
|
5
|
+
* BasePlugin
|
|
6
|
+
*
|
|
7
|
+
* Since the spreadsheet internal state is quite complex, it is split into
|
|
8
|
+
* multiple parts, each managing a specific concern.
|
|
9
|
+
*
|
|
10
|
+
* This file introduce the BasePlugin, which is the common class that defines
|
|
11
|
+
* how each of these model sub parts should interact with each other.
|
|
12
|
+
* There are two kind of plugins: core plugins handling persistent data
|
|
13
|
+
* and UI plugins handling transient data.
|
|
14
|
+
*/
|
|
15
|
+
export declare class BasePlugin<State = any, C = any> implements CommandHandler<C>, Validator {
|
|
16
|
+
static getters: readonly string[];
|
|
17
|
+
protected history: WorkbookHistory<State>;
|
|
18
|
+
protected dispatch: CommandDispatcher["dispatch"];
|
|
19
|
+
protected canDispatch: CommandDispatcher["dispatch"];
|
|
20
|
+
constructor(stateObserver: StateObserver, dispatch: CommandDispatcher["dispatch"], canDispatch: CommandDispatcher["dispatch"]);
|
|
21
|
+
/**
|
|
22
|
+
* Export for excel should be available for all plugins, even for the UI.
|
|
23
|
+
* In some case, we need to export evaluated value, which is available from
|
|
24
|
+
* UI plugin only.
|
|
25
|
+
*/
|
|
26
|
+
exportForExcel(data: ExcelWorkbookData): void;
|
|
27
|
+
/**
|
|
28
|
+
* Before a command is accepted, the model will ask each plugin if the command
|
|
29
|
+
* is allowed. If all of then return true, then we can proceed. Otherwise,
|
|
30
|
+
* the command is cancelled.
|
|
31
|
+
*
|
|
32
|
+
* There should not be any side effects in this method.
|
|
33
|
+
*/
|
|
34
|
+
allowDispatch(command: C): CommandResult | CommandResult[];
|
|
35
|
+
/**
|
|
36
|
+
* This method is useful when a plugin need to perform some action before a
|
|
37
|
+
* command is handled in another plugin. This should only be used if it is not
|
|
38
|
+
* possible to do the work in the handle method.
|
|
39
|
+
*/
|
|
40
|
+
beforeHandle(command: C): void;
|
|
41
|
+
/**
|
|
42
|
+
* This is the standard place to handle any command. Most of the plugin
|
|
43
|
+
* command handling work should take place here.
|
|
44
|
+
*/
|
|
45
|
+
handle(command: C): void;
|
|
46
|
+
/**
|
|
47
|
+
* Sometimes, it is useful to perform some work after a command (and all its
|
|
48
|
+
* subcommands) has been completely handled. For example, when we paste
|
|
49
|
+
* multiple cells, we only want to reevaluate the cell values once at the end.
|
|
50
|
+
*/
|
|
51
|
+
finalize(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Combine multiple validation functions into a single function
|
|
54
|
+
* returning the list of result of every validation.
|
|
55
|
+
*/
|
|
56
|
+
batchValidations<T>(...validations: Validation<T>[]): Validation<T>;
|
|
57
|
+
/**
|
|
58
|
+
* Combine multiple validation functions. Every validation is executed one after
|
|
59
|
+
* the other. As soon as one validation fails, it stops and the cancelled reason
|
|
60
|
+
* is returned.
|
|
61
|
+
*/
|
|
62
|
+
chainValidations<T>(...validations: Validation<T>[]): Validation<T>;
|
|
63
|
+
checkValidations<T>(command: T, ...validations: Validation<T>[]): CommandResult | CommandResult[];
|
|
64
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { Border, BorderDescription, CellPosition, Color, CommandResult, CoreCommand, ExcelWorkbookData, UID, WorkbookData } from "../../types/index";
|
|
2
|
+
import { CorePlugin } from "../core_plugin";
|
|
3
|
+
interface BordersPluginState {
|
|
4
|
+
readonly borders: Record<UID, (BorderDescription[] | undefined)[] | undefined>;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Formatting plugin.
|
|
8
|
+
*
|
|
9
|
+
* This plugin manages all things related to a cell look:
|
|
10
|
+
* - borders
|
|
11
|
+
*/
|
|
12
|
+
export declare class BordersPlugin extends CorePlugin<BordersPluginState> implements BordersPluginState {
|
|
13
|
+
static getters: readonly ["getCellBorder", "getBordersColors"];
|
|
14
|
+
readonly borders: BordersPluginState["borders"];
|
|
15
|
+
allowDispatch(cmd: CoreCommand): CommandResult.Success | CommandResult.NoChanges;
|
|
16
|
+
handle(cmd: CoreCommand): void;
|
|
17
|
+
/**
|
|
18
|
+
* Move borders according to the inserted columns.
|
|
19
|
+
* Ensure borders continuity.
|
|
20
|
+
*/
|
|
21
|
+
private handleAddColumns;
|
|
22
|
+
/**
|
|
23
|
+
* Move borders according to the inserted rows.
|
|
24
|
+
* Ensure borders continuity.
|
|
25
|
+
*/
|
|
26
|
+
private handleAddRows;
|
|
27
|
+
getCellBorder({ sheetId, col, row }: CellPosition): Border | null;
|
|
28
|
+
getBordersColors(sheetId: UID): Color[];
|
|
29
|
+
/**
|
|
30
|
+
* Ensure border continuity between two columns.
|
|
31
|
+
* If the two columns have the same borders (at each row respectively),
|
|
32
|
+
* the same borders are applied to each cell in between.
|
|
33
|
+
*/
|
|
34
|
+
private ensureColumnBorderContinuity;
|
|
35
|
+
/**
|
|
36
|
+
* Ensure border continuity between two rows.
|
|
37
|
+
* If the two rows have the same borders (at each column respectively),
|
|
38
|
+
* the same borders are applied to each cell in between.
|
|
39
|
+
*/
|
|
40
|
+
private ensureRowBorderContinuity;
|
|
41
|
+
/**
|
|
42
|
+
* From two borders, return a new border with sides defined in both borders.
|
|
43
|
+
* i.e. the intersection of two borders.
|
|
44
|
+
*/
|
|
45
|
+
private getCommonSides;
|
|
46
|
+
/**
|
|
47
|
+
* Get all the columns which contains at least a border
|
|
48
|
+
*/
|
|
49
|
+
private getColumnsWithBorders;
|
|
50
|
+
/**
|
|
51
|
+
* Get all the rows which contains at least a border
|
|
52
|
+
*/
|
|
53
|
+
private getRowsWithBorders;
|
|
54
|
+
/**
|
|
55
|
+
* Get the range of all the rows in the sheet
|
|
56
|
+
*/
|
|
57
|
+
private getRowsRange;
|
|
58
|
+
/**
|
|
59
|
+
* Move borders of a sheet horizontally.
|
|
60
|
+
* @param sheetId
|
|
61
|
+
* @param start starting column (included)
|
|
62
|
+
* @param delta how much borders will be moved (negative if moved to the left)
|
|
63
|
+
*/
|
|
64
|
+
private shiftBordersHorizontally;
|
|
65
|
+
/**
|
|
66
|
+
* Move borders of a sheet vertically.
|
|
67
|
+
* @param sheetId
|
|
68
|
+
* @param start starting row (included)
|
|
69
|
+
* @param delta how much borders will be moved (negative if moved to the above)
|
|
70
|
+
*/
|
|
71
|
+
private shiftBordersVertically;
|
|
72
|
+
/**
|
|
73
|
+
* Moves the borders (left if `vertical` or top if `horizontal` depending on
|
|
74
|
+
* `borderDirection`) of all cells in an entire row `delta` rows to the right
|
|
75
|
+
* (`delta` > 0) or to the left (`delta` < 0).
|
|
76
|
+
* Note that as the left of a cell is the right of the cell-1, if the left is
|
|
77
|
+
* moved the right is also moved. However, if `horizontal`, the bottom border
|
|
78
|
+
* is not moved.
|
|
79
|
+
* It does it by replacing the target border by the moved border. If the
|
|
80
|
+
* argument `destructive` is given false, the target border is preserved if
|
|
81
|
+
* the moved border is empty
|
|
82
|
+
*/
|
|
83
|
+
private moveBordersOfRow;
|
|
84
|
+
/**
|
|
85
|
+
* Moves the borders (left if `vertical` or top if `horizontal` depending on
|
|
86
|
+
* `borderDirection`) of all cells in an entire column `delta` columns below
|
|
87
|
+
* (`delta` > 0) or above (`delta` < 0).
|
|
88
|
+
* Note that as the top of a cell is the bottom of the cell-1, if the top is
|
|
89
|
+
* moved the bottom is also moved. However, if `vertical`, the right border
|
|
90
|
+
* is not moved.
|
|
91
|
+
* It does it by replacing the target border by the moved border. If the
|
|
92
|
+
* argument `destructive` is given false, the target border is preserved if
|
|
93
|
+
* the moved border is empty
|
|
94
|
+
*/
|
|
95
|
+
private moveBordersOfColumn;
|
|
96
|
+
/**
|
|
97
|
+
* Set the borders of a cell.
|
|
98
|
+
* It overrides the current border if override === true.
|
|
99
|
+
*/
|
|
100
|
+
private setBorder;
|
|
101
|
+
/**
|
|
102
|
+
* Remove the borders of a zone
|
|
103
|
+
*/
|
|
104
|
+
private clearBorders;
|
|
105
|
+
/**
|
|
106
|
+
* Remove the borders inside of a zone
|
|
107
|
+
*/
|
|
108
|
+
private clearInsideBorders;
|
|
109
|
+
/**
|
|
110
|
+
* Add a border to the existing one to a cell
|
|
111
|
+
*/
|
|
112
|
+
private addBorder;
|
|
113
|
+
/**
|
|
114
|
+
* Set the borders of a zone by computing the borders to add from the given
|
|
115
|
+
* command
|
|
116
|
+
*/
|
|
117
|
+
private setBorders;
|
|
118
|
+
/**
|
|
119
|
+
* Compute the borders to add to the given zone merged.
|
|
120
|
+
*/
|
|
121
|
+
private addBordersToMerge;
|
|
122
|
+
private checkBordersUnchanged;
|
|
123
|
+
import(data: WorkbookData): void;
|
|
124
|
+
export(data: WorkbookData): void;
|
|
125
|
+
exportForExcel(data: ExcelWorkbookData): void;
|
|
126
|
+
}
|
|
127
|
+
export {};
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { Token } from "../../formulas";
|
|
2
|
+
import { ApplyRangeChange, Cell, CellPosition, CommandResult, CompiledFormula, CoreCommand, ExcelWorkbookData, Format, FormulaCell, Range, RangeCompiledFormula, RangePart, Style, UID, WorkbookData, Zone } from "../../types/index";
|
|
3
|
+
import { CorePlugin } from "../core_plugin";
|
|
4
|
+
interface CoreState {
|
|
5
|
+
cells: Record<UID, Record<UID, Cell | undefined> | undefined>;
|
|
6
|
+
nextId: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Core Plugin
|
|
10
|
+
*
|
|
11
|
+
* This is the most fundamental of all plugins. It defines how to interact with
|
|
12
|
+
* cell and sheet content.
|
|
13
|
+
*/
|
|
14
|
+
export declare class CellPlugin extends CorePlugin<CoreState> implements CoreState {
|
|
15
|
+
static getters: readonly ["zoneToXC", "getCells", "getTranslatedCellFormula", "getCellStyle", "getCellById", "getFormulaString", "getFormulaMovedInSheet"];
|
|
16
|
+
readonly nextId = 1;
|
|
17
|
+
readonly cells: {
|
|
18
|
+
[sheetId: string]: {
|
|
19
|
+
[id: string]: Cell;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
adaptRanges(applyChange: ApplyRangeChange, sheetId?: UID): void;
|
|
23
|
+
allowDispatch(cmd: CoreCommand): CommandResult | CommandResult[];
|
|
24
|
+
handle(cmd: CoreCommand): void;
|
|
25
|
+
private clearZones;
|
|
26
|
+
/**
|
|
27
|
+
* Set a format to all the cells in a zone
|
|
28
|
+
*/
|
|
29
|
+
private setFormatter;
|
|
30
|
+
/**
|
|
31
|
+
* Clear the styles and format of zones
|
|
32
|
+
*/
|
|
33
|
+
private clearFormatting;
|
|
34
|
+
/**
|
|
35
|
+
* Clear the styles, the format and the content of zones
|
|
36
|
+
*/
|
|
37
|
+
private clearCells;
|
|
38
|
+
/**
|
|
39
|
+
* Copy the style of the reference column/row to the new columns/rows.
|
|
40
|
+
*/
|
|
41
|
+
private handleAddColumnsRows;
|
|
42
|
+
import(data: WorkbookData): void;
|
|
43
|
+
export(data: WorkbookData): void;
|
|
44
|
+
importCell(sheetId: UID, content?: string, style?: Style, format?: Format): Cell;
|
|
45
|
+
exportForExcel(data: ExcelWorkbookData): void;
|
|
46
|
+
private extractCustomStyle;
|
|
47
|
+
getCells(sheetId: UID): Record<UID, Cell>;
|
|
48
|
+
/**
|
|
49
|
+
* get a cell by ID. Used in evaluation when evaluating an async cell, we need to be able to find it back after
|
|
50
|
+
* starting an async evaluation even if it has been moved or re-allocated
|
|
51
|
+
*/
|
|
52
|
+
getCellById(cellId: UID): Cell | undefined;
|
|
53
|
+
getFormulaString(sheetId: UID, tokens: Token[], dependencies: Range[], useBoundedReference?: boolean): string;
|
|
54
|
+
getTranslatedCellFormula(sheetId: UID, offsetX: number, offsetY: number, tokens: Token[]): string;
|
|
55
|
+
getFormulaMovedInSheet(originSheetId: UID, targetSheetId: UID, tokens: Token[]): string;
|
|
56
|
+
getCellStyle(position: CellPosition): Style;
|
|
57
|
+
/**
|
|
58
|
+
* Converts a zone to a XC coordinate system
|
|
59
|
+
*
|
|
60
|
+
* The conversion also treats merges as one single cell
|
|
61
|
+
*
|
|
62
|
+
* Examples:
|
|
63
|
+
* {top:0,left:0,right:0,bottom:0} ==> A1
|
|
64
|
+
* {top:0,left:0,right:1,bottom:1} ==> A1:B2
|
|
65
|
+
*
|
|
66
|
+
* if A1:B2 is a merge:
|
|
67
|
+
* {top:0,left:0,right:1,bottom:1} ==> A1
|
|
68
|
+
* {top:1,left:0,right:1,bottom:2} ==> A1:B3
|
|
69
|
+
*
|
|
70
|
+
* if A1:B2 and A4:B5 are merges:
|
|
71
|
+
* {top:1,left:0,right:1,bottom:3} ==> A1:A5
|
|
72
|
+
*/
|
|
73
|
+
zoneToXC(sheetId: UID, zone: Zone, fixedParts?: RangePart[]): string;
|
|
74
|
+
private setStyle;
|
|
75
|
+
/**
|
|
76
|
+
* Copy the style of one column to other columns.
|
|
77
|
+
*/
|
|
78
|
+
private copyColumnStyle;
|
|
79
|
+
/**
|
|
80
|
+
* Copy the style of one row to other rows.
|
|
81
|
+
*/
|
|
82
|
+
private copyRowStyle;
|
|
83
|
+
/**
|
|
84
|
+
* gets the currently used style/border of a cell based on it's coordinates
|
|
85
|
+
*/
|
|
86
|
+
private getFormat;
|
|
87
|
+
private getNextUid;
|
|
88
|
+
private updateCell;
|
|
89
|
+
private createCell;
|
|
90
|
+
private createLiteralCell;
|
|
91
|
+
private createFormulaCell;
|
|
92
|
+
/**
|
|
93
|
+
* Create a new formula cell with the content
|
|
94
|
+
* being a computed property to rebuild the dependencies XC.
|
|
95
|
+
*/
|
|
96
|
+
private createFormulaCellWithDependencies;
|
|
97
|
+
private checkCellOutOfSheet;
|
|
98
|
+
private checkUselessClearCell;
|
|
99
|
+
private checkUselessUpdateCell;
|
|
100
|
+
}
|
|
101
|
+
export declare class FormulaCellWithDependencies implements FormulaCell {
|
|
102
|
+
readonly id: UID;
|
|
103
|
+
readonly format: Format | undefined;
|
|
104
|
+
readonly style: Style | undefined;
|
|
105
|
+
private readonly sheetId;
|
|
106
|
+
private readonly getRangeString;
|
|
107
|
+
readonly isFormula = true;
|
|
108
|
+
readonly compiledFormula: RangeCompiledFormula;
|
|
109
|
+
constructor(id: UID, compiledFormula: CompiledFormula, format: Format | undefined, style: Style | undefined, dependencies: Range[], sheetId: UID, getRangeString: (range: Range, sheetId: UID, option?: {
|
|
110
|
+
useBoundedReference: boolean;
|
|
111
|
+
}) => string);
|
|
112
|
+
get content(): string;
|
|
113
|
+
get contentWithFixedReferences(): string;
|
|
114
|
+
}
|
|
115
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { AbstractChart } from "../../helpers/figures/charts/abstract_chart";
|
|
2
|
+
import { ChartCreationContext, ChartDefinition, ChartType } from "../../types/chart/chart";
|
|
3
|
+
import { ApplyRangeChange, Command, CommandResult, CoreCommand, UID, WorkbookData } from "../../types/index";
|
|
4
|
+
import { CorePlugin } from "../core_plugin";
|
|
5
|
+
/**
|
|
6
|
+
* Chart plugin
|
|
7
|
+
*
|
|
8
|
+
* This plugin manages charts
|
|
9
|
+
* */
|
|
10
|
+
interface ChartState {
|
|
11
|
+
readonly charts: Record<UID, AbstractChart | undefined>;
|
|
12
|
+
}
|
|
13
|
+
export declare class ChartPlugin extends CorePlugin<ChartState> implements ChartState {
|
|
14
|
+
static getters: readonly ["isChartDefined", "getChartDefinition", "getChartType", "getChartIds", "getChart", "getContextCreationChart"];
|
|
15
|
+
readonly charts: Record<UID, AbstractChart | undefined>;
|
|
16
|
+
private createChart;
|
|
17
|
+
private validateChartDefinition;
|
|
18
|
+
adaptRanges(applyChange: ApplyRangeChange): void;
|
|
19
|
+
allowDispatch(cmd: Command): CommandResult | CommandResult[];
|
|
20
|
+
handle(cmd: CoreCommand): void;
|
|
21
|
+
getContextCreationChart(figureId: UID): ChartCreationContext | undefined;
|
|
22
|
+
getChart(figureId: UID): AbstractChart | undefined;
|
|
23
|
+
getChartType(figureId: UID): ChartType;
|
|
24
|
+
isChartDefined(figureId: UID): boolean;
|
|
25
|
+
getChartIds(sheetId: UID): string[];
|
|
26
|
+
getChartDefinition(figureId: UID): ChartDefinition;
|
|
27
|
+
import(data: WorkbookData): void;
|
|
28
|
+
export(data: WorkbookData): void;
|
|
29
|
+
/**
|
|
30
|
+
* Add a figure with tag chart with the given id at the given position
|
|
31
|
+
*/
|
|
32
|
+
private addFigure;
|
|
33
|
+
/**
|
|
34
|
+
* Add a chart in the local state. If a chart already exists, this chart is
|
|
35
|
+
* replaced
|
|
36
|
+
*/
|
|
37
|
+
private addChart;
|
|
38
|
+
private checkChartDuplicate;
|
|
39
|
+
private checkChartExists;
|
|
40
|
+
}
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ApplyRangeChange, Command, CommandResult, ConditionalFormat, ConditionalFormatInternal, CoreCommand, ExcelWorkbookData, RangeData, UID, WorkbookData, Zone } from "../../types";
|
|
2
|
+
import { CorePlugin } from "../core_plugin";
|
|
3
|
+
interface ConditionalFormatState {
|
|
4
|
+
readonly cfRules: {
|
|
5
|
+
[sheet: string]: ConditionalFormatInternal[];
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export declare class ConditionalFormatPlugin extends CorePlugin<ConditionalFormatState> implements ConditionalFormatState {
|
|
9
|
+
static getters: readonly ["getConditionalFormats", "getRulesSelection", "getRulesByCell", "getAdaptedCfRanges"];
|
|
10
|
+
readonly cfRules: {
|
|
11
|
+
[sheet: string]: ConditionalFormatInternal[];
|
|
12
|
+
};
|
|
13
|
+
loopThroughRangesOfSheet(sheetId: UID, applyChange: ApplyRangeChange): void;
|
|
14
|
+
adaptRanges(applyChange: ApplyRangeChange, sheetId?: UID): void;
|
|
15
|
+
allowDispatch(cmd: Command): CommandResult | CommandResult[];
|
|
16
|
+
handle(cmd: CoreCommand): void;
|
|
17
|
+
import(data: WorkbookData): void;
|
|
18
|
+
export(data: Partial<WorkbookData>): void;
|
|
19
|
+
exportForExcel(data: ExcelWorkbookData): void;
|
|
20
|
+
/**
|
|
21
|
+
* Returns all the conditional format rules defined for the current sheet to display the user
|
|
22
|
+
*/
|
|
23
|
+
getConditionalFormats(sheetId: UID): ConditionalFormat[];
|
|
24
|
+
getRulesSelection(sheetId: UID, selection: Zone[]): UID[];
|
|
25
|
+
getRulesByZone(sheetId: UID, zone: Zone): Set<UID>;
|
|
26
|
+
getRulesByCell(sheetId: UID, cellCol: number, cellRow: number): Set<ConditionalFormat>;
|
|
27
|
+
/**
|
|
28
|
+
* Add or remove cells to a given conditional formatting rule and return the adapted CF's XCs.
|
|
29
|
+
*/
|
|
30
|
+
getAdaptedCfRanges(sheetId: UID, cf: ConditionalFormat, toAdd: Zone[], toRemove: Zone[]): RangeData[] | undefined;
|
|
31
|
+
private mapToConditionalFormat;
|
|
32
|
+
private mapToConditionalFormatInternal;
|
|
33
|
+
/**
|
|
34
|
+
* Add or replace a conditional format rule
|
|
35
|
+
*/
|
|
36
|
+
private addConditionalFormatting;
|
|
37
|
+
private checkValidPriorityChange;
|
|
38
|
+
private checkEmptyRange;
|
|
39
|
+
private checkCFRule;
|
|
40
|
+
private checkOperatorArgsNumber;
|
|
41
|
+
private checkNaN;
|
|
42
|
+
private checkFormulaCompilation;
|
|
43
|
+
private checkThresholds;
|
|
44
|
+
private checkInflectionPoints;
|
|
45
|
+
private checkLowerBiggerThanUpper;
|
|
46
|
+
private checkMinBiggerThanMax;
|
|
47
|
+
private checkMidBiggerThanMax;
|
|
48
|
+
private checkMinBiggerThanMid;
|
|
49
|
+
private checkCFValues;
|
|
50
|
+
private removeConditionalFormatting;
|
|
51
|
+
private changeCFPriority;
|
|
52
|
+
}
|
|
53
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ApplyRangeChange, CellPosition, Command, CommandResult, CoreCommand, DataValidationRule, ExcelWorkbookData, UID, WorkbookData } from "../../types";
|
|
2
|
+
import { CorePlugin } from "../core_plugin";
|
|
3
|
+
interface DataValidationState {
|
|
4
|
+
readonly rules: {
|
|
5
|
+
[sheet: string]: DataValidationRule[];
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export declare class DataValidationPlugin extends CorePlugin<DataValidationState> implements DataValidationState {
|
|
9
|
+
static getters: readonly ["cellHasListDataValidationIcon", "getDataValidationRule", "getDataValidationRules", "getValidationRuleForCell"];
|
|
10
|
+
readonly rules: {
|
|
11
|
+
[sheet: string]: DataValidationRule[];
|
|
12
|
+
};
|
|
13
|
+
adaptRanges(applyChange: ApplyRangeChange, sheetId?: UID): void;
|
|
14
|
+
private loopThroughRangesOfSheet;
|
|
15
|
+
allowDispatch(cmd: Command): CommandResult | CommandResult[];
|
|
16
|
+
handle(cmd: CoreCommand): void;
|
|
17
|
+
getDataValidationRules(sheetId: UID): DataValidationRule[];
|
|
18
|
+
getDataValidationRule(sheetId: UID, id: UID): DataValidationRule | undefined;
|
|
19
|
+
getValidationRuleForCell({ sheetId, col, row }: CellPosition): DataValidationRule | undefined;
|
|
20
|
+
cellHasListDataValidationIcon(cellPosition: CellPosition): boolean;
|
|
21
|
+
private addDataValidationRule;
|
|
22
|
+
private removeRangesFromRules;
|
|
23
|
+
private removeDataValidationRule;
|
|
24
|
+
private setCenterStyleToBooleanCells;
|
|
25
|
+
private checkEmptyRange;
|
|
26
|
+
import(data: WorkbookData): void;
|
|
27
|
+
export(data: Partial<WorkbookData>): void;
|
|
28
|
+
exportForExcel(data: ExcelWorkbookData): void;
|
|
29
|
+
private checkCriterionTypeIsValid;
|
|
30
|
+
private checkCriterionHasValidNumberOfValues;
|
|
31
|
+
private checkCriterionValuesAreValid;
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { CommandResult, CoreCommand, ExcelWorkbookData, Figure, UID, WorkbookData } from "../../types/index";
|
|
2
|
+
import { CorePlugin } from "../core_plugin";
|
|
3
|
+
interface FigureState {
|
|
4
|
+
readonly figures: {
|
|
5
|
+
[sheet: string]: Record<UID, Figure | undefined> | undefined;
|
|
6
|
+
};
|
|
7
|
+
readonly insertionOrders: UID[];
|
|
8
|
+
}
|
|
9
|
+
export declare class FigurePlugin extends CorePlugin<FigureState> implements FigureState {
|
|
10
|
+
static getters: readonly ["getFigures", "getFigure", "getFigureSheetId"];
|
|
11
|
+
readonly figures: {
|
|
12
|
+
[sheet: string]: Record<UID, Figure | undefined> | undefined;
|
|
13
|
+
};
|
|
14
|
+
readonly insertionOrders: UID[];
|
|
15
|
+
allowDispatch(cmd: CoreCommand): CommandResult;
|
|
16
|
+
beforeHandle(cmd: CoreCommand): void;
|
|
17
|
+
handle(cmd: CoreCommand): void;
|
|
18
|
+
private onRowColDelete;
|
|
19
|
+
private onRowDeletion;
|
|
20
|
+
private onColDeletion;
|
|
21
|
+
private updateFigure;
|
|
22
|
+
private addFigure;
|
|
23
|
+
private deleteSheet;
|
|
24
|
+
private removeFigure;
|
|
25
|
+
private checkFigureExists;
|
|
26
|
+
private checkFigureDuplicate;
|
|
27
|
+
getFigures(sheetId: UID): Figure[];
|
|
28
|
+
getFigure(sheetId: string, figureId: string): Figure | undefined;
|
|
29
|
+
getFigureSheetId(figureId: string): UID | undefined;
|
|
30
|
+
import(data: WorkbookData): void;
|
|
31
|
+
export(data: WorkbookData): void;
|
|
32
|
+
exportForExcel(data: ExcelWorkbookData): void;
|
|
33
|
+
}
|
|
34
|
+
export {};
|