@odoo/o-spreadsheet 19.5.0-alpha.6 → 19.5.0-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist/o_spreadsheet.cjs +35670 -34225
  2. package/dist/o_spreadsheet.css +65 -32
  3. package/dist/o_spreadsheet.esm.js +35670 -34225
  4. package/dist/o_spreadsheet.iife.js +35729 -34284
  5. package/dist/o_spreadsheet.min.iife.js +403 -403
  6. package/dist/o_spreadsheet.xml +210 -98
  7. package/dist/types/actions/action.d.ts +1 -7
  8. package/dist/types/actions/data_actions.d.ts +1 -0
  9. package/dist/types/actions/menu_items_actions.d.ts +2 -0
  10. package/dist/types/collaborative/ot/ot_helpers.d.ts +3 -1
  11. package/dist/types/components/clickable_cells_overlay/clickable_cells_overlay.d.ts +20 -0
  12. package/dist/types/components/dashboard/dashboard.d.ts +5 -12
  13. package/dist/types/components/error_tooltip/error_tooltip.d.ts +2 -0
  14. package/dist/types/components/figures/figure/figure.d.ts +3 -6
  15. package/dist/types/components/figures/figure_carousel/figure_carousel.d.ts +9 -2
  16. package/dist/types/components/figures/figure_chart/figure_chart.d.ts +1 -2
  17. package/dist/types/components/figures/figure_image/figure_image.d.ts +1 -2
  18. package/dist/types/components/filters/filter_menu/filter_menu.d.ts +1 -0
  19. package/dist/types/components/grid/grid.d.ts +2 -0
  20. package/dist/types/components/grid_overlay/grid_overlay.d.ts +6 -5
  21. package/dist/types/components/helpers/dom_helpers.d.ts +2 -0
  22. package/dist/types/components/helpers/wheel_hook.d.ts +1 -1
  23. package/dist/types/components/link/link_display/link_display.d.ts +1 -0
  24. package/dist/types/components/link/link_editor/link_editor.d.ts +1 -0
  25. package/dist/types/components/scrollbar/scrollbar_vertical.d.ts +2 -1
  26. package/dist/types/components/side_panel/carousel_panel/carousel_panel.d.ts +20 -2
  27. package/dist/types/components/side_panel/chart/chart_type_picker/chart_type_picker.d.ts +4 -17
  28. package/dist/types/components/side_panel/chart/chart_type_picker_popover/chart_type_picker_popover.d.ts +64 -0
  29. package/dist/types/components/side_panel/data_sources_cleanup/data_sources_cleanup.d.ts +28 -0
  30. package/dist/types/components/side_panel/data_sources_cleanup/data_sources_cleanup_store.d.ts +13 -0
  31. package/dist/types/components/side_panel/pivot/pivot_layout_configurator/pivot_layout_configurator.d.ts +0 -2
  32. package/dist/types/components/side_panel/split_to_columns_panel/split_to_columns_panel.d.ts +4 -11
  33. package/dist/types/components/side_panel/split_to_columns_panel/split_to_columns_store.d.ts +33 -0
  34. package/dist/types/components/standalone_viewport/standalone_viewport.d.ts +55 -0
  35. package/dist/types/components/standalone_viewport/standalone_viewport_store.d.ts +28 -0
  36. package/dist/types/components/tables/hovered_table_store.d.ts +3 -6
  37. package/dist/types/formulas/code_builder.d.ts +2 -1
  38. package/dist/types/formulas/compiler.d.ts +6 -0
  39. package/dist/types/functions/create_compute_function.d.ts +4 -3
  40. package/dist/types/functions/function_registry.d.ts +1 -5
  41. package/dist/types/functions/helper_matrices.d.ts +1 -0
  42. package/dist/types/functions/helper_statistical.d.ts +6 -0
  43. package/dist/types/functions/module_array.d.ts +41 -23
  44. package/dist/types/functions/module_database.d.ts +18 -6
  45. package/dist/types/functions/module_date.d.ts +70 -22
  46. package/dist/types/functions/module_engineering.d.ts +3 -1
  47. package/dist/types/functions/module_filter.d.ts +2 -2
  48. package/dist/types/functions/module_financial.d.ts +105 -35
  49. package/dist/types/functions/module_info.d.ts +33 -11
  50. package/dist/types/functions/module_logical.d.ts +16 -8
  51. package/dist/types/functions/module_lookup.d.ts +23 -15
  52. package/dist/types/functions/module_math.d.ts +125 -43
  53. package/dist/types/functions/module_operators.d.ts +7 -3
  54. package/dist/types/functions/module_statistical.d.ts +78 -22
  55. package/dist/types/functions/module_text.d.ts +70 -24
  56. package/dist/types/functions/module_web.d.ts +3 -1
  57. package/dist/types/helpers/carousel_helpers.d.ts +0 -2
  58. package/dist/types/helpers/figures/chart.d.ts +2 -0
  59. package/dist/types/helpers/internal_viewport.d.ts +19 -10
  60. package/dist/types/helpers/misc.d.ts +1 -0
  61. package/dist/types/helpers/ui/split_to_columns_interactive.d.ts +1 -1
  62. package/dist/types/helpers/viewport_collection.d.ts +40 -9
  63. package/dist/types/helpers/zones.d.ts +1 -0
  64. package/dist/types/index.d.ts +7 -0
  65. package/dist/types/model.d.ts +1 -0
  66. package/dist/types/plugins/core/carousel.d.ts +8 -4
  67. package/dist/types/plugins/core/cell.d.ts +1 -0
  68. package/dist/types/plugins/core/chart.d.ts +2 -0
  69. package/dist/types/plugins/core/conditional_format.d.ts +2 -0
  70. package/dist/types/plugins/core/data_validation.d.ts +2 -0
  71. package/dist/types/plugins/core/formulas_provider.d.ts +8 -0
  72. package/dist/types/plugins/core/pivot.d.ts +1 -0
  73. package/dist/types/plugins/core_plugin.d.ts +7 -3
  74. package/dist/types/plugins/ui_core_views/cell_evaluation/evaluation_plugin.d.ts +10 -3
  75. package/dist/types/plugins/ui_feature/ui_options.d.ts +1 -7
  76. package/dist/types/plugins/ui_feature/ui_sheet.d.ts +2 -1
  77. package/dist/types/plugins/ui_stateful/filter_evaluation.d.ts +2 -3
  78. package/dist/types/plugins/ui_stateful/header_positions.d.ts +2 -1
  79. package/dist/types/registries/chart_registry.d.ts +3 -0
  80. package/dist/types/registries/data_source_registry.d.ts +15 -0
  81. package/dist/types/store_engine/dependency_container.d.ts +5 -0
  82. package/dist/types/store_engine/store_hooks.d.ts +6 -0
  83. package/dist/types/stores/main_viewport_store.d.ts +11 -0
  84. package/dist/types/stores/table_resize_store.d.ts +6 -0
  85. package/dist/types/stores/viewports_store.d.ts +18 -3
  86. package/dist/types/types/commands.d.ts +23 -15
  87. package/dist/types/types/core_getters.d.ts +3 -1
  88. package/dist/types/types/figure.d.ts +26 -3
  89. package/dist/types/types/functions.d.ts +14 -4
  90. package/dist/types/types/getters.d.ts +27 -6
  91. package/dist/types/types/misc.d.ts +9 -1
  92. package/package.json +2 -2
  93. package/dist/types/plugins/ui_feature/split_to_columns.d.ts +0 -21
  94. package/dist/types/plugins/ui_feature/table_resize_ui.d.ts +0 -6
  95. /package/dist/types/plugins/{ui_feature → ui_stateful}/cell_computed_style.d.ts +0 -0
  96. /package/dist/types/plugins/{ui_feature → ui_stateful}/figure.d.ts +0 -0
  97. /package/dist/types/plugins/{ui_feature → ui_stateful}/header_visibility_ui.d.ts +0 -0
  98. /package/dist/types/plugins/{ui_feature → ui_stateful}/table_computed_style.d.ts +0 -0
@@ -3,31 +3,41 @@ import { Arg, FunctionResultNumber, FunctionResultObject, Maybe } from "../types
3
3
  export declare const CHAR: {
4
4
  description: string;
5
5
  args: import("..").ArgDefinition[];
6
- compute: (this: import("..").EvalContext, tableNumber: Maybe<FunctionResultObject>) => string | EvaluationError;
6
+ compute: (this: import("..").EvalContext, tableNumber: Maybe<FunctionResultObject>) => EvaluationError | {
7
+ value: string;
8
+ };
7
9
  isExported: true;
8
10
  };
9
11
  export declare const CLEAN: {
10
12
  description: string;
11
13
  args: import("..").ArgDefinition[];
12
- compute: (text: Maybe<FunctionResultObject>) => string;
14
+ compute: (text: Maybe<FunctionResultObject>) => {
15
+ value: string;
16
+ };
13
17
  isExported: true;
14
18
  };
15
19
  export declare const CONCATENATE: {
16
20
  description: string;
17
21
  args: import("..").ArgDefinition[];
18
- compute: (...datas: Arg[]) => string;
22
+ compute: (...datas: Arg[]) => {
23
+ value: string;
24
+ };
19
25
  isExported: true;
20
26
  };
21
27
  export declare const EXACT: {
22
28
  description: string;
23
29
  args: import("..").ArgDefinition[];
24
- compute: (string1: Maybe<FunctionResultObject>, string2: Maybe<FunctionResultObject>) => boolean;
30
+ compute: (string1: Maybe<FunctionResultObject>, string2: Maybe<FunctionResultObject>) => {
31
+ value: boolean;
32
+ };
25
33
  isExported: true;
26
34
  };
27
35
  export declare const FIND: {
28
36
  description: string;
29
37
  args: import("..").ArgDefinition[];
30
- compute: (this: import("..").EvalContext, searchFor: Maybe<FunctionResultObject>, textToSearch: Maybe<FunctionResultObject>, startingAt?: Maybe<FunctionResultObject>) => number | EvaluationError;
38
+ compute: (this: import("..").EvalContext, searchFor: Maybe<FunctionResultObject>, textToSearch: Maybe<FunctionResultObject>, startingAt?: Maybe<FunctionResultObject>) => EvaluationError | {
39
+ value: number;
40
+ };
31
41
  isExported: true;
32
42
  };
33
43
  export declare const FORMAT_LARGE_NUMBER: {
@@ -38,48 +48,64 @@ export declare const FORMAT_LARGE_NUMBER: {
38
48
  export declare const JOIN: {
39
49
  description: string;
40
50
  args: import("..").ArgDefinition[];
41
- compute: (delimiter: Maybe<FunctionResultObject>, ...valuesOrArrays: Arg[]) => string;
51
+ compute: (delimiter: Maybe<FunctionResultObject>, ...valuesOrArrays: Arg[]) => {
52
+ value: string;
53
+ };
42
54
  };
43
55
  export declare const LEFT: {
44
56
  description: string;
45
57
  args: import("..").ArgDefinition[];
46
- compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>, ...args: Maybe<FunctionResultObject>[]) => string | EvaluationError;
58
+ compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>, ...args: Maybe<FunctionResultObject>[]) => EvaluationError | {
59
+ value: string;
60
+ };
47
61
  isExported: true;
48
62
  };
49
63
  export declare const LEN: {
50
64
  description: string;
51
65
  args: import("..").ArgDefinition[];
52
- compute: (text: Maybe<FunctionResultObject>) => number;
66
+ compute: (text: Maybe<FunctionResultObject>) => {
67
+ value: number;
68
+ };
53
69
  isExported: true;
54
70
  };
55
71
  export declare const LOWER: {
56
72
  description: string;
57
73
  args: import("..").ArgDefinition[];
58
- compute: (text: Maybe<FunctionResultObject>) => string;
74
+ compute: (text: Maybe<FunctionResultObject>) => {
75
+ value: string;
76
+ };
59
77
  isExported: true;
60
78
  };
61
79
  export declare const MID: {
62
80
  description: string;
63
81
  args: import("..").ArgDefinition[];
64
- compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>, starting_at: Maybe<FunctionResultObject>, extract_length: Maybe<FunctionResultObject>) => string | EvaluationError;
82
+ compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>, starting_at: Maybe<FunctionResultObject>, extract_length: Maybe<FunctionResultObject>) => EvaluationError | {
83
+ value: string;
84
+ };
65
85
  isExported: true;
66
86
  };
67
87
  export declare const PROPER: {
68
88
  description: string;
69
89
  args: import("..").ArgDefinition[];
70
- compute: (text: Maybe<FunctionResultObject>) => string;
90
+ compute: (text: Maybe<FunctionResultObject>) => {
91
+ value: string;
92
+ };
71
93
  isExported: true;
72
94
  };
73
95
  export declare const REGEXTEST: {
74
96
  description: string;
75
97
  args: import("..").ArgDefinition[];
76
- compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>, pattern: Maybe<FunctionResultObject>, newText?: Maybe<FunctionResultObject>) => boolean | EvaluationError;
98
+ compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>, pattern: Maybe<FunctionResultObject>, newText?: Maybe<FunctionResultObject>) => EvaluationError | {
99
+ value: boolean;
100
+ };
77
101
  isExported: true;
78
102
  };
79
103
  export declare const REGEXEXTRACT: {
80
104
  description: string;
81
105
  args: import("..").ArgDefinition[];
82
- compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>, pattern: Maybe<FunctionResultObject>, return_mode?: Maybe<FunctionResultObject>, newText?: Maybe<FunctionResultObject>) => string | string[][] | EvaluationError | {
106
+ computeArray: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>, pattern: Maybe<FunctionResultObject>, return_mode?: Maybe<FunctionResultObject>, newText?: Maybe<FunctionResultObject>) => EvaluationError | {
107
+ value: string;
108
+ }[][] | {
83
109
  value: string;
84
110
  };
85
111
  isExported: true;
@@ -87,19 +113,25 @@ export declare const REGEXEXTRACT: {
87
113
  export declare const REGEXREPLACE: {
88
114
  description: string;
89
115
  args: import("..").ArgDefinition[];
90
- compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>, pattern: Maybe<FunctionResultObject>, replacement: Maybe<FunctionResultObject>, occurence?: Maybe<FunctionResultObject>, newText?: Maybe<FunctionResultObject>) => string | EvaluationError;
116
+ compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>, pattern: Maybe<FunctionResultObject>, replacement: Maybe<FunctionResultObject>, occurence?: Maybe<FunctionResultObject>, newText?: Maybe<FunctionResultObject>) => EvaluationError | {
117
+ value: string;
118
+ };
91
119
  isExported: true;
92
120
  };
93
121
  export declare const REPLACE: {
94
122
  description: string;
95
123
  args: import("..").ArgDefinition[];
96
- compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>, position: Maybe<FunctionResultObject>, length: Maybe<FunctionResultObject>, newText: Maybe<FunctionResultObject>) => string | EvaluationError;
124
+ compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>, position: Maybe<FunctionResultObject>, length: Maybe<FunctionResultObject>, newText: Maybe<FunctionResultObject>) => EvaluationError | {
125
+ value: string;
126
+ };
97
127
  isExported: true;
98
128
  };
99
129
  export declare const RIGHT: {
100
130
  description: string;
101
131
  args: import("..").ArgDefinition[];
102
- compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>, ...args: Maybe<FunctionResultObject>[]) => string | EvaluationError;
132
+ compute: (this: import("..").EvalContext, text: Maybe<FunctionResultObject>, ...args: Maybe<FunctionResultObject>[]) => EvaluationError | {
133
+ value: string;
134
+ };
103
135
  isExported: true;
104
136
  };
105
137
  export declare const SEARCH: {
@@ -117,49 +149,63 @@ export declare const SEARCH: {
117
149
  export declare const SPLIT: {
118
150
  description: string;
119
151
  args: import("..").ArgDefinition[];
120
- compute: (text: Maybe<FunctionResultObject>, delimiter: Maybe<FunctionResultObject>, splitByEach?: Maybe<FunctionResultObject>, removeEmptyText?: Maybe<FunctionResultObject>) => EvaluationError | import("..").Matrix<string>;
152
+ computeArray: (text: Maybe<FunctionResultObject>, delimiter: Maybe<FunctionResultObject>, splitByEach?: Maybe<FunctionResultObject>, removeEmptyText?: Maybe<FunctionResultObject>) => EvaluationError | import("..").Matrix<{
153
+ value: string;
154
+ }>;
121
155
  isExported: false;
122
156
  };
123
157
  export declare const SUBSTITUTE: {
124
158
  description: string;
125
159
  args: import("..").ArgDefinition[];
126
- compute: (this: import("..").EvalContext, textToSearch: Maybe<FunctionResultObject>, searchFor: Maybe<FunctionResultObject>, replaceWith: Maybe<FunctionResultObject>, occurrenceNumber: Maybe<FunctionResultObject>) => string | EvaluationError;
160
+ compute: (this: import("..").EvalContext, textToSearch: Maybe<FunctionResultObject>, searchFor: Maybe<FunctionResultObject>, replaceWith: Maybe<FunctionResultObject>, occurrenceNumber: Maybe<FunctionResultObject>) => EvaluationError | {
161
+ value: string;
162
+ };
127
163
  isExported: true;
128
164
  };
129
165
  export declare const TEXTJOIN: {
130
166
  description: string;
131
167
  args: import("..").ArgDefinition[];
132
- compute: (delimiter: Maybe<FunctionResultObject>, ignoreEmpty?: Maybe<FunctionResultObject>, ...textsOrArrays: Arg[]) => string;
168
+ compute: (delimiter: Maybe<FunctionResultObject>, ignoreEmpty?: Maybe<FunctionResultObject>, ...textsOrArrays: Arg[]) => {
169
+ value: string;
170
+ };
133
171
  isExported: true;
134
172
  };
135
173
  export declare const TEXTSPLIT: {
136
174
  description: string;
137
175
  args: import("..").ArgDefinition[];
138
- compute: (this: import("..").EvalContext, text: FunctionResultObject, colDelimiter: Arg, rowDelimiter: Arg, ignoreEmpty?: Maybe<FunctionResultObject>, matchMode?: Maybe<FunctionResultObject>, padWith?: Maybe<FunctionResultObject>) => EvaluationError | import("..").Matrix<FunctionResultObject>;
176
+ computeArray: (this: import("..").EvalContext, text: FunctionResultObject, colDelimiter: Arg, rowDelimiter: Arg, ignoreEmpty?: Maybe<FunctionResultObject>, matchMode?: Maybe<FunctionResultObject>, padWith?: Maybe<FunctionResultObject>) => EvaluationError | import("..").Matrix<FunctionResultObject>;
139
177
  isExported: true;
140
178
  };
141
179
  export declare const TRIM: {
142
180
  description: string;
143
181
  args: import("..").ArgDefinition[];
144
- compute: (text: Maybe<FunctionResultObject>) => string;
182
+ compute: (text: Maybe<FunctionResultObject>) => {
183
+ value: string;
184
+ };
145
185
  isExported: true;
146
186
  };
147
187
  export declare const UPPER: {
148
188
  description: string;
149
189
  args: import("..").ArgDefinition[];
150
- compute: (text: Maybe<FunctionResultObject>) => string;
190
+ compute: (text: Maybe<FunctionResultObject>) => {
191
+ value: string;
192
+ };
151
193
  isExported: true;
152
194
  };
153
195
  export declare const TEXT: {
154
196
  description: string;
155
197
  args: import("..").ArgDefinition[];
156
- compute: (this: import("..").EvalContext, number: Maybe<FunctionResultObject>, format: Maybe<FunctionResultObject>) => string;
198
+ compute: (this: import("..").EvalContext, number: Maybe<FunctionResultObject>, format: Maybe<FunctionResultObject>) => {
199
+ value: import("..").FormattedValue;
200
+ };
157
201
  isExported: true;
158
202
  };
159
203
  export declare const VALUE: {
160
204
  description: string;
161
205
  args: import("..").ArgDefinition[];
162
- compute: (this: import("..").EvalContext, value: Maybe<FunctionResultObject>) => number;
206
+ compute: (this: import("..").EvalContext, value: Maybe<FunctionResultObject>) => {
207
+ value: number;
208
+ };
163
209
  isExported: true;
164
210
  };
165
211
  export declare const TEXTAFTER: {
@@ -2,6 +2,8 @@ import { FunctionResultObject, Maybe } from "../types/misc";
2
2
  export declare const HYPERLINK: {
3
3
  description: string;
4
4
  args: import("..").ArgDefinition[];
5
- compute: (url: Maybe<FunctionResultObject>, linkLabel: Maybe<FunctionResultObject>) => string;
5
+ compute: (url: Maybe<FunctionResultObject>, linkLabel: Maybe<FunctionResultObject>) => {
6
+ value: string;
7
+ };
6
8
  isExported: true;
7
9
  };
@@ -1,9 +1,7 @@
1
- import { ChartDefinition } from "../types/chart/chart";
2
1
  import { AnchorOffset, CarouselItem } from "../types/figure";
3
2
  import { Getters } from "../types/getters";
4
3
  import { UID } from "../types/misc";
5
4
  import { SpreadsheetChildEnv } from "../types/spreadsheet_env";
6
- export declare const CAROUSEL_DEFAULT_CHART_DEFINITION: ChartDefinition;
7
5
  /**
8
6
  * Compute the anchor of a chart popped out of a carousel: slightly offset from the
9
7
  * carousel figure so the new chart does not perfectly overlap it.
@@ -1,3 +1,4 @@
1
+ import { CompiledFormula } from "../../formulas/compiler";
1
2
  import { ChartCreationContext, ChartData, ChartDefinition } from "../../types/chart/chart";
2
3
  import { CoreGetters } from "../../types/core_getters";
3
4
  import { Getters } from "../../types/getters";
@@ -24,6 +25,7 @@ export declare class SpreadsheetChart {
24
25
  getContextCreation(): ChartCreationContext;
25
26
  getDefinitionForExcel(getters: Getters): import("../..").ExcelChartDefinition | undefined;
26
27
  getData(getters: Getters, chartId: UID): ChartData;
28
+ getFormulas(getters: CoreGetters): CompiledFormula[];
27
29
  getRuntime(getters: Getters, chartId: UID): import("../..").ChartRuntime;
28
30
  static deleteInvalidKeys(definition: ChartDefinition<any>): ChartDefinition<any>;
29
31
  }
@@ -1,10 +1,17 @@
1
- import { RenderingGetters } from "../types/getters";
1
+ import { ViewportsGetters } from "../types/getters";
2
2
  import { Dimension, HeaderIndex, Pixel, Position, UID, Zone } from "../types/misc";
3
3
  import { DOMCoordinates, DOMDimension, Rect } from "../types/rendering";
4
+ interface InternalViewportArgs {
5
+ getters: ViewportsGetters;
6
+ sheetId: UID;
7
+ boundaries: Zone;
8
+ sizeInGrid: DOMDimension;
9
+ canScrollVertically: boolean;
10
+ canScrollHorizontally: boolean;
11
+ offsets: DOMCoordinates;
12
+ getFooterSize: () => number;
13
+ }
4
14
  export declare class InternalViewport {
5
- private getters;
6
- private sheetId;
7
- private boundaries;
8
15
  top: HeaderIndex;
9
16
  bottom: HeaderIndex;
10
17
  left: HeaderIndex;
@@ -15,12 +22,13 @@ export declare class InternalViewport {
15
22
  canScrollHorizontally: boolean;
16
23
  viewportWidth: Pixel;
17
24
  viewportHeight: Pixel;
18
- offsetCorrectionX: Pixel;
19
- offsetCorrectionY: Pixel;
20
- constructor(getters: RenderingGetters, sheetId: UID, boundaries: Zone, sizeInGrid: DOMDimension, options: {
21
- canScrollVertically: boolean;
22
- canScrollHorizontally: boolean;
23
- }, offsets: DOMCoordinates);
25
+ boundaryLeftX: Pixel;
26
+ boundaryTopY: Pixel;
27
+ private getters;
28
+ private sheetId;
29
+ private boundaries;
30
+ private getFooterSize;
31
+ constructor(args: InternalViewportArgs);
24
32
  /** Returns the maximum size (in Pixels) of the viewport relative to its allocated client size
25
33
  * When the viewport grid size is smaller than its client width (resp. height), it will return
26
34
  * the client width (resp. height).
@@ -85,3 +93,4 @@ export declare class InternalViewport {
85
93
  * */
86
94
  private get snapCorrection();
87
95
  }
96
+ export {};
@@ -233,4 +233,5 @@ export declare function defaultDict<T>(def: T): {
233
233
  get: (key: string) => T;
234
234
  set: (key: string, value: T) => void;
235
235
  };
236
+ export declare function sumArray(array: number[]): number;
236
237
  export declare function repeat<T>(array: T[], times: number): T[];
@@ -3,4 +3,4 @@ import { SpreadsheetChildEnv } from "../../types/spreadsheet_env";
3
3
  export declare const SplitToColumnsInteractiveContent: {
4
4
  SplitIsDestructive: string;
5
5
  };
6
- export declare function interactiveSplitToColumns(env: SpreadsheetChildEnv, separator: string, addNewColumns: boolean): DispatchResult;
6
+ export declare function interactiveSplitToColumns(env: SpreadsheetChildEnv): DispatchResult;
@@ -1,14 +1,28 @@
1
1
  import { AnchorOffset, Figure, FigureUI } from "../types/figure";
2
- import { RenderingGetters } from "../types/getters";
2
+ import { ViewportsGetters } from "../types/getters";
3
3
  import { CellPosition, Dimension, HeaderDimensions, HeaderIndex, PaneDivision, Pixel, PixelPosition, Position, SheetViewDimensions, UID, Zone } from "../types/misc";
4
4
  import { DOMCoordinates, DOMDimension, EdgeScrollInfo, Rect, SheetDOMScrollInfo, Viewport } from "../types/rendering";
5
5
  import { InternalViewport } from "./internal_viewport";
6
6
  type SheetViewports = {
7
- topLeft: InternalViewport | undefined;
8
- bottomLeft: InternalViewport | undefined;
9
- topRight: InternalViewport | undefined;
7
+ topLeft?: InternalViewport;
8
+ bottomLeft?: InternalViewport;
9
+ topRight?: InternalViewport;
10
10
  bottomRight: InternalViewport;
11
11
  };
12
+ interface PositionedViewport {
13
+ viewport: InternalViewport;
14
+ viewportX: Pixel;
15
+ viewportY: Pixel;
16
+ }
17
+ interface ViewportCollectionArgs {
18
+ getters: ViewportsGetters;
19
+ paneDivision: Record<UID, PaneDivision>;
20
+ sheetViewWidth: Pixel;
21
+ sheetViewHeight: Pixel;
22
+ zoomLevel: number;
23
+ getFooterSize: () => number;
24
+ zoneToDisplay?: Zone;
25
+ }
12
26
  /**
13
27
  * EdgeScrollCases Schema
14
28
  *
@@ -45,15 +59,18 @@ type SheetViewports = {
45
59
  * ↓ ↓
46
60
  */
47
61
  export declare class ViewportCollection {
62
+ getters: ViewportsGetters;
63
+ viewports: Record<UID, SheetViewports | undefined>;
64
+ private gridOffsetX;
65
+ private gridOffsetY;
48
66
  private paneDivision;
49
67
  private sheetViewWidth;
50
68
  private sheetViewHeight;
51
69
  private zoomLevel;
52
- getters: RenderingGetters;
53
- viewports: Record<UID, SheetViewports | undefined>;
54
- private gridOffsetX;
55
- private gridOffsetY;
56
- constructor(getters: RenderingGetters, paneDivision: Record<UID, PaneDivision>, sheetViewWidth?: Pixel, sheetViewHeight?: Pixel, zoomLevel?: number);
70
+ private getFooterSize;
71
+ private zoneToDisplay?;
72
+ constructor(args: ViewportCollectionArgs);
73
+ changeViewportArgs(args: Partial<ViewportCollectionArgs>): void;
57
74
  /**
58
75
  * Return the index of a column given an offset x, based on the viewport left
59
76
  * visible cell.
@@ -141,6 +158,11 @@ export declare class ViewportCollection {
141
158
  }[];
142
159
  getViewportZoomLevel(): number;
143
160
  ensureMainViewportExist(sheetId: UID): void;
161
+ getPanesDimensions(sheetId: UID): {
162
+ paneWidth: number;
163
+ paneHeight: number;
164
+ };
165
+ getPositionedViewports(sheetId: UID): PositionedViewport[];
144
166
  getSubViewports(sheetId: UID): InternalViewport[];
145
167
  checkPositiveDimension(dims: SheetViewDimensions): boolean;
146
168
  checkValuesAreDifferent(dims: SheetViewDimensions): boolean;
@@ -164,6 +186,15 @@ export declare class ViewportCollection {
164
186
  y: number | Pixel;
165
187
  };
166
188
  resetViewports(sheetId: UID): void;
189
+ /**
190
+ * Depending on how `this.zoneToDisplay` intersects the viewports, we may need to reorganize the viewports to ensure that
191
+ * `viewports.bottomRight` is always defined.
192
+ *
193
+ * For example if `this.zoneToDisplay` is only intersecting the bottom-left viewport, we need to treat the bottom-left
194
+ * viewport as the bottom-right viewport.
195
+ */
196
+ private reorganizeViewportZones;
197
+ private getViewportZones;
167
198
  /**
168
199
  * Adjust the viewport such that the anchor position is visible
169
200
  */
@@ -204,3 +204,4 @@ export declare function mergeContiguousZones(zones: Zone[]): Zone[];
204
204
  * ]
205
205
  */
206
206
  export declare function splitZone(z1: Zone, z2: Zone): Zone[];
207
+ export declare function haveSameNumberOfCols(z1: Zone | UnboundedZone, z2: Zone | UnboundedZone): boolean;
@@ -219,6 +219,7 @@ export declare const registries: {
219
219
  getKeys(): string[];
220
220
  remove(key: string): void;
221
221
  };
222
+ unusedDataSourceRegistry: import(".").Registry<import("./registries/data_source_registry").DataSourceType>;
222
223
  };
223
224
  /** Registries Population */
224
225
  import "./clipboard_handlers/clipboard_handler_registrations";
@@ -232,10 +233,13 @@ import { AutofillStore } from "./components/autofill/autofill_store";
232
233
  import { TableAutofillStore } from "./components/autofill/table_autofill_store";
233
234
  import { Composer } from "./components/composer/composer/composer";
234
235
  import { StandaloneComposer } from "./components/composer/standalone_composer/standalone_composer";
236
+ import { isMobileOS } from "./components/helpers/dom_helpers";
235
237
  import { Select } from "./components/select/select";
236
238
  import { ChartRangeDataSourceComponent } from "./components/side_panel/chart/building_blocks/range_data_source/range_data_source";
237
239
  import { CalendarButton } from "./components/side_panel/criterion_form/calendar_button/calendar_button";
240
+ import { Spreadsheet } from "./components/spreadsheet/spreadsheet";
238
241
  import { TopBar } from "./components/top_bar/top_bar";
242
+ import { createComputeFunction } from "./functions/create_compute_function";
239
243
  import { PositionMap } from "./helpers/cells/position_map";
240
244
  import { parseFormat } from "./helpers/format/format_parser";
241
245
  import { replaceSymbolInFormula } from "./helpers/formulas";
@@ -321,6 +325,8 @@ export declare const helpers: {
321
325
  replaceSymbolInFormula: typeof replaceSymbolInFormula;
322
326
  isSingleCellReference: typeof isSingleCellReference;
323
327
  computeCachedTextDimension: typeof computeCachedTextDimension;
328
+ createComputeFunction: typeof createComputeFunction;
329
+ isMobileOS: typeof isMobileOS;
324
330
  };
325
331
  export declare const links: {
326
332
  isMarkdownLink: typeof isMarkdownLink;
@@ -392,6 +398,7 @@ export declare const components: {
392
398
  TopBar: typeof TopBar;
393
399
  Composer: typeof Composer;
394
400
  CalendarButton: typeof CalendarButton;
401
+ Spreadsheet: typeof Spreadsheet;
395
402
  };
396
403
  export declare const hooks: {
397
404
  useDragAndDropListItems: typeof useDragAndDropListItems;
@@ -35,6 +35,7 @@ export declare class Model extends EventBus<any> implements CommandDispatcher {
35
35
  private corePlugins;
36
36
  private statefulUIPlugins;
37
37
  private range;
38
+ private formulasPlugin;
38
39
  private session;
39
40
  /**
40
41
  * In a collaborative context, some commands can be replayed, we have to ensure
@@ -1,19 +1,23 @@
1
1
  import { CommandResult, CoreCommand } from "../../types/commands";
2
- import { Carousel } from "../../types/figure";
3
- import { UID } from "../../types/misc";
2
+ import { Carousel, CarouselData } from "../../types/figure";
3
+ import { RangeAdapterFunctions, UID } from "../../types/misc";
4
4
  import { WorkbookData } from "../../types/workbook_data";
5
5
  import { CorePlugin } from "../core_plugin";
6
6
  interface CarouselState {
7
7
  readonly carousels: Record<UID, Record<UID, Carousel | undefined> | undefined>;
8
8
  }
9
9
  export declare class CarouselPlugin extends CorePlugin<CarouselState> implements CarouselState {
10
- static getters: readonly ["getCarousel", "doesCarouselExist"];
10
+ static getters: readonly ["getCarousel", "doesCarouselExist", "carouselToCarouselData"];
11
11
  readonly carousels: Record<UID, Record<UID, Carousel | undefined> | undefined>;
12
- allowDispatch(cmd: CoreCommand): CommandResult.Success | CommandResult.InvalidFigureId | CommandResult.DuplicatedFigureId;
12
+ adaptRanges(rangeAdapterFunctions: RangeAdapterFunctions): void;
13
+ allowDispatch(cmd: CoreCommand): CommandResult.Success | CommandResult.InvalidRange | CommandResult.InvalidFigureId | CommandResult.DuplicatedFigureId;
13
14
  handle(cmd: CoreCommand): void;
14
15
  doesCarouselExist(figureId: UID): boolean;
15
16
  getCarousel(figureId: UID): Carousel;
16
17
  private removeDeletedCharts;
18
+ private carouselDataToCarousel;
19
+ carouselToCarouselData(carousel: Carousel): CarouselData;
20
+ private areDataViewRangesValid;
17
21
  import(data: WorkbookData): void;
18
22
  export(data: WorkbookData): void;
19
23
  }
@@ -87,5 +87,6 @@ export declare class CellPlugin extends CorePlugin<CoreState> implements CoreSta
87
87
  private checkCellOutOfSheet;
88
88
  private checkUselessClearCell;
89
89
  private checkUselessUpdateCell;
90
+ getFormulas(): CompiledFormula[];
90
91
  }
91
92
  export {};
@@ -1,3 +1,4 @@
1
+ import { CompiledFormula } from "../../formulas/compiler";
1
2
  import { SpreadsheetChart } from "../../helpers/figures/chart";
2
3
  import { ChartCreationContext, ChartDefinition, ChartType } from "../../types/chart/chart";
3
4
  import { Command, CommandResult, CoreCommand } from "../../types/commands";
@@ -41,5 +42,6 @@ export declare class ChartPlugin extends CorePlugin<ChartState> implements Chart
41
42
  private checkChartChanged;
42
43
  /** If the command is meant to create a new figure, the position & offset argument need to be defined in the command */
43
44
  private checkFigureArguments;
45
+ getFormulas(): CompiledFormula[];
44
46
  }
45
47
  export {};
@@ -1,3 +1,4 @@
1
+ import { CompiledFormula } from "../../formulas/compiler";
1
2
  import { Command, CommandResult, CoreCommand } from "../../types/commands";
2
3
  import { ConditionalFormat, ConditionalFormatInternal } from "../../types/conditional_formatting";
3
4
  import { RangeAdapterFunctions, UID, Zone } from "../../types/misc";
@@ -55,5 +56,6 @@ export declare class ConditionalFormatPlugin extends CorePlugin<ConditionalForma
55
56
  private checkCFValues;
56
57
  private removeConditionalFormatting;
57
58
  private changeCFPriority;
59
+ getFormulas(): CompiledFormula[];
58
60
  }
59
61
  export {};
@@ -1,3 +1,4 @@
1
+ import { CompiledFormula } from "../../formulas/compiler";
1
2
  import { Command, CommandResult, CoreCommand } from "../../types/commands";
2
3
  import { DataValidationRule } from "../../types/data_validation";
3
4
  import { CellPosition, RangeAdapterFunctions, UID } from "../../types/misc";
@@ -34,5 +35,6 @@ export declare class DataValidationPlugin extends CorePlugin<DataValidationState
34
35
  private checkCriterionHasValidNumberOfValues;
35
36
  private checkCriterionValuesAreValid;
36
37
  private checkValidRange;
38
+ getFormulas(): CompiledFormula[];
37
39
  }
38
40
  export {};
@@ -0,0 +1,8 @@
1
+ import { CompiledFormula } from "../../formulas/compiler";
2
+ import { FormulaProvider } from "../../types/misc";
3
+ export declare class FormulaProviderAggregator {
4
+ private providers;
5
+ static getters: readonly ["getAllFormulas"];
6
+ addFormulaProvider(provider: FormulaProvider["getFormulas"]): void;
7
+ getAllFormulas(): CompiledFormula[];
8
+ }
@@ -59,6 +59,7 @@ export declare class PivotCorePlugin extends CorePlugin<CoreState> implements Co
59
59
  private checkSortedColumnInMeasures;
60
60
  private checkDuplicatedMeasureIds;
61
61
  private checkCustomFieldsAreValid;
62
+ getFormulas(): CompiledFormula[];
62
63
  /**
63
64
  * Import the pivots
64
65
  */
@@ -1,15 +1,18 @@
1
+ import { CompiledFormula } from "../formulas/compiler";
1
2
  import { StateObserver } from "../state_observer";
2
3
  import { CoreCommand, CoreCommandDispatcher } from "../types/commands";
3
4
  import { CoreGetters } from "../types/core_getters";
4
- import { RangeAdapterFunctions, RangeProvider } from "../types/misc";
5
+ import { FormulaProvider, RangeAdapterFunctions, RangeProvider } from "../types/misc";
5
6
  import { ModelConfig } from "../types/model";
6
7
  import { WorkbookData } from "../types/workbook_data";
7
8
  import { BasePlugin } from "./base_plugin";
9
+ import { FormulaProviderAggregator } from "./core/formulas_provider";
8
10
  import { RangeAdapterPlugin } from "./core/range";
9
11
  export interface CorePluginConfig {
10
12
  readonly getters: CoreGetters;
11
13
  readonly stateObserver: StateObserver;
12
14
  readonly range: RangeAdapterPlugin;
15
+ readonly formulasPlugin: FormulaProviderAggregator;
13
16
  readonly dispatch: CoreCommandDispatcher["dispatch"];
14
17
  readonly canDispatch: CoreCommandDispatcher["dispatch"];
15
18
  readonly custom: ModelConfig["custom"];
@@ -25,11 +28,11 @@ export interface CorePluginConstructor {
25
28
  * persisted state.
26
29
  * They should not be concerned about UI parts or transient state.
27
30
  */
28
- export declare class CorePlugin<State = any> extends BasePlugin<State, CoreCommand> implements RangeProvider {
31
+ export declare class CorePlugin<State = any> extends BasePlugin<State, CoreCommand> implements RangeProvider, FormulaProvider {
29
32
  protected getters: CoreGetters;
30
33
  protected dispatch: CoreCommandDispatcher["dispatch"];
31
34
  protected canDispatch: CoreCommandDispatcher["dispatch"];
32
- constructor({ getters, stateObserver, range, dispatch, canDispatch }: CorePluginConfig);
35
+ constructor({ getters, stateObserver, range, dispatch, canDispatch, formulasPlugin, }: CorePluginConfig);
33
36
  import(data: WorkbookData): void;
34
37
  export(data: WorkbookData, shouldSquish: boolean): void;
35
38
  /**
@@ -44,4 +47,5 @@ export declare class CorePlugin<State = any> extends BasePlugin<State, CoreComma
44
47
  * @param sheetName couple of old and new sheet names to adapt ranges pointing to that sheet
45
48
  */
46
49
  adaptRanges(rangeAdapterFunctions: RangeAdapterFunctions): void;
50
+ getFormulas(): CompiledFormula[];
47
51
  }
@@ -1,21 +1,28 @@
1
1
  import { CompiledFormula } from "../../../formulas/compiler";
2
2
  import { CellValue, EvaluatedCell, FormulaCell } from "../../../types/cells";
3
- import { Command, CoreViewCommand } from "../../../types/commands";
3
+ import { Command, CommandResult } from "../../../types/commands";
4
4
  import { PerfProfile } from "../../../types/functions";
5
5
  import { CellPosition, FunctionResultObject, GetSymbolValue, Matrix, UID, Zone } from "../../../types/misc";
6
6
  import { Range } from "../../../types/range";
7
7
  import { ExcelWorkbookData } from "../../../types/workbook_data";
8
8
  import { CoreViewPlugin, CoreViewPluginConfig } from "../../core_view_plugin";
9
9
  export declare class EvaluationPlugin extends CoreViewPlugin {
10
- static getters: readonly ["evaluateFormula", "evaluateFormulaResult", "evaluateCompiledFormula", "getCorrespondingFormulaCell", "getVisibleRangeValues", "getEvaluatedCell", "getEvaluatedCells", "getEvaluatedCellsInZone", "getEvaluatedCellsPositions", "getSpreadZone", "getArrayFormulaSpreadingOn", "isArrayFormulaSpillBlocked", "isEmpty", "getPerfProfile"];
10
+ static getters: readonly ["evaluateFormula", "evaluateFormulaResult", "evaluateCompiledFormula", "getCorrespondingFormulaCell", "getVisibleRangeValues", "getEvaluatedCell", "getEvaluatedCells", "getEvaluatedCellsInZone", "getEvaluatedCellsPositions", "getSpreadZone", "getArrayFormulaSpreadingOn", "isArrayFormulaSpillBlocked", "isEmpty", "getPerfProfile", "isAutomaticEvaluationEnabled"];
11
11
  private shouldRebuildDependenciesGraph;
12
12
  private forceEvaluation;
13
+ private automaticEvaluation;
13
14
  private evaluator;
14
15
  private positionsToUpdate;
15
16
  constructor(config: CoreViewPluginConfig);
17
+ allowDispatch(cmd: Command): CommandResult.Success | CommandResult.NoChangeInAutomaticEvaluation;
16
18
  beforeHandle(cmd: Command): void;
17
- handle(cmd: CoreViewCommand): void;
19
+ handle(cmd: Command): void;
18
20
  finalize(): void;
21
+ /**
22
+ * Returns whether automatic evaluation is enabled.
23
+ * When disabled, cells are only re-evaluated on explicit EVALUATE_CELLS commands (F9).
24
+ */
25
+ isAutomaticEvaluationEnabled(): boolean;
19
26
  evaluateFormula(sheetId: UID, formulaString: string, cellPosition?: CellPosition): CellValue | Matrix<CellValue>;
20
27
  evaluateFormulaResult(sheetId: UID, formulaString: string, cellPosition?: CellPosition): Matrix<FunctionResultObject> | FunctionResultObject;
21
28
  evaluateCompiledFormula(sheetId: UID, compiledFormula: CompiledFormula, getSymbolValue?: GetSymbolValue): FunctionResultObject | Matrix<FunctionResultObject>;
@@ -1,14 +1,8 @@
1
1
  import { Command } from "../../types/commands";
2
2
  import { UIPlugin } from "../ui_plugin";
3
3
  export declare class UIOptionsPlugin extends UIPlugin {
4
- static getters: readonly ["shouldShowFormulas", "isAutomaticEvaluationEnabled"];
4
+ static getters: readonly ["shouldShowFormulas"];
5
5
  private showFormulas;
6
- private automaticEvaluation;
7
6
  handle(cmd: Command): void;
8
7
  shouldShowFormulas(): boolean;
9
- /**
10
- * Returns whether automatic evaluation is enabled.
11
- * When disabled, cells are only re-evaluated on explicit EVALUATE_CELLS commands (F9).
12
- */
13
- isAutomaticEvaluationEnabled(): boolean;
14
8
  }