@odoo/o-spreadsheet 19.5.0-alpha.4 → 19.5.0-alpha.6
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 +4290 -4178
- package/dist/o_spreadsheet.css +3 -7
- package/dist/o_spreadsheet.esm.js +4291 -4179
- package/dist/o_spreadsheet.iife.js +14932 -14820
- package/dist/o_spreadsheet.min.iife.js +223 -223
- package/dist/o_spreadsheet.xml +7 -10
- package/dist/types/components/autofill/autofill.d.ts +1 -0
- package/dist/types/{plugins/ui_feature/autofill.d.ts → components/autofill/autofill_store.d.ts} +6 -11
- package/dist/types/components/autofill/table_autofill_store.d.ts +6 -0
- package/dist/types/components/composer/composer/abstract_composer_store.d.ts +2 -2
- package/dist/types/components/composer/composer/composer.d.ts +2 -1
- package/dist/types/components/grid/grid.d.ts +3 -0
- package/dist/types/components/paint_format_button/paint_format_store.d.ts +1 -1
- package/dist/types/components/popover/cell_popover_store.d.ts +1 -1
- package/dist/types/components/props_validation.d.ts +7 -7
- package/dist/types/components/selection_input/selection_input_store.d.ts +1 -1
- package/dist/types/components/side_panel/chart/chart_type_picker/chart_type_picker.d.ts +1 -1
- package/dist/types/components/side_panel/chart/common.d.ts +1 -1
- package/dist/types/components/side_panel/conditional_formatting/cf_editor/cell_is_rule_editor.d.ts +1 -1
- package/dist/types/components/side_panel/conditional_formatting/cf_editor/color_scale_rule_editor.d.ts +1 -1
- package/dist/types/components/side_panel/conditional_formatting/cf_editor/color_scale_rule_editor_threshold.d.ts +1 -1
- package/dist/types/components/side_panel/conditional_formatting/cf_editor/data_bar_rule_editor.d.ts +1 -1
- package/dist/types/components/side_panel/conditional_formatting/cf_editor/icon_set_rule_editor.d.ts +1 -1
- package/dist/types/components/side_panel/remove_duplicates/remove_duplicates.d.ts +3 -10
- package/dist/types/components/side_panel/side_panel/side_panel_store.d.ts +1 -1
- package/dist/types/formulas/compiler.d.ts +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/plugins/core/squisher.d.ts +1 -0
- package/dist/types/plugins/ui_core_views/pivot_ui.d.ts +3 -0
- package/dist/types/plugins/ui_feature/collaborative.d.ts +2 -1
- package/dist/types/store_engine/store_registries.d.ts +4 -0
- package/dist/types/stores/array_formula_highlight.d.ts +1 -1
- package/dist/types/{plugins/ui_feature/automatic_sum.d.ts → stores/automatic_sum_store.d.ts} +5 -4
- package/dist/types/stores/checkbox_toggle.d.ts +9 -0
- package/dist/types/stores/data_cleanup_store.d.ts +31 -0
- package/dist/types/stores/spreadsheet_store.d.ts +1 -1
- package/dist/types/stores/trim_whitespace_store.d.ts +9 -0
- package/dist/types/types/commands.d.ts +0 -3
- package/dist/types/types/getters.d.ts +1 -4
- package/dist/types/types/range.d.ts +1 -0
- package/dist/types/types/store_engine.d.ts +10 -3
- package/package.json +2 -2
- package/dist/types/plugins/ui_feature/checkbox_toggle.d.ts +0 -9
- package/dist/types/plugins/ui_feature/data_cleanup.d.ts +0 -16
- package/dist/types/plugins/ui_feature/table_autofill.d.ts +0 -6
package/dist/o_spreadsheet.xml
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<!--
|
|
2
2
|
This file is generated by o-spreadsheet build tools. Do not edit it.
|
|
3
3
|
@see https://github.com/odoo/o-spreadsheet
|
|
4
|
-
@version 19.5.0-alpha.
|
|
5
|
-
@date 2026-07-
|
|
6
|
-
@hash
|
|
4
|
+
@version 19.5.0-alpha.6
|
|
5
|
+
@date 2026-07-23T07:49:15.559Z
|
|
6
|
+
@hash 192a921
|
|
7
7
|
-->
|
|
8
8
|
<odoo>
|
|
9
9
|
<t t-name="o-spreadsheet-ValidationMessages">
|
|
@@ -979,7 +979,7 @@
|
|
|
979
979
|
<t t-set="dataHasHeaderLabel">Data has header row</t>
|
|
980
980
|
<Checkbox
|
|
981
981
|
name="'dataHasHeader'"
|
|
982
|
-
value="this.
|
|
982
|
+
value="this.dataCleanupSore.hasHeader"
|
|
983
983
|
label="dataHasHeaderLabel"
|
|
984
984
|
onChange.bind="this.toggleHasHeader"
|
|
985
985
|
/>
|
|
@@ -994,9 +994,9 @@
|
|
|
994
994
|
onChange.bind="this.toggleAllColumns"
|
|
995
995
|
/>
|
|
996
996
|
|
|
997
|
-
<t t-foreach="Object.keys(this.
|
|
997
|
+
<t t-foreach="Object.keys(this.dataCleanupSore.columns)" t-as="colIndex" t-key="colIndex">
|
|
998
998
|
<Checkbox
|
|
999
|
-
value="this.
|
|
999
|
+
value="this.dataCleanupSore.columns[colIndex]"
|
|
1000
1000
|
label="this.getColLabel(colIndex)"
|
|
1001
1001
|
onChange="() => this.toggleColumn(colIndex)"
|
|
1002
1002
|
/>
|
|
@@ -7484,10 +7484,7 @@
|
|
|
7484
7484
|
/>
|
|
7485
7485
|
<canvas t-ref="this.canvasRef" class="os-theme-dependant pe-none"/>
|
|
7486
7486
|
<t t-set="focused" t-value="this.focusedClients"/>
|
|
7487
|
-
<t
|
|
7488
|
-
t-foreach="this.env.model.getters.getClientsToDisplay()"
|
|
7489
|
-
t-as="client"
|
|
7490
|
-
t-key="this.getClientPositionKey(client)">
|
|
7487
|
+
<t t-foreach="this.clientsToDisplay" t-as="client" t-key="this.getClientPositionKey(client)">
|
|
7491
7488
|
<ClientTag
|
|
7492
7489
|
name="client.name"
|
|
7493
7490
|
color="client.color"
|
|
@@ -20,6 +20,7 @@ export declare class Autofill extends Component<SpreadsheetChildEnv> {
|
|
|
20
20
|
}, onPointerMove: (col: HeaderIndex, row: HeaderIndex, ev: MouseEvent) => void, onPointerUp: () => void, startScrollDirection?: import("../helpers/drag_and_drop_grid_hook").DnDDirection) => void;
|
|
21
21
|
};
|
|
22
22
|
private viewStore;
|
|
23
|
+
private autofillStore;
|
|
23
24
|
setup(): void;
|
|
24
25
|
get style(): string;
|
|
25
26
|
get handlerStyle(): string;
|
package/dist/types/{plugins/ui_feature/autofill.d.ts → components/autofill/autofill_store.d.ts}
RENAMED
|
@@ -1,22 +1,17 @@
|
|
|
1
|
+
import { SpreadsheetStore } from "../../stores/spreadsheet_store";
|
|
1
2
|
import { Tooltip } from "../../types/autofill";
|
|
2
|
-
import { Command
|
|
3
|
+
import { Command } from "../../types/commands";
|
|
4
|
+
import { HeaderIndex } from "../../types/misc";
|
|
3
5
|
import { GridRenderingContext } from "../../types/rendering";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Autofill Plugin
|
|
7
|
-
*
|
|
8
|
-
*/
|
|
9
|
-
export declare class AutofillPlugin extends UIPlugin {
|
|
6
|
+
export declare class AutofillStore extends SpreadsheetStore {
|
|
10
7
|
static layers: readonly ["Autofill"];
|
|
11
|
-
static getters: readonly ["getAutofillTooltip"];
|
|
12
8
|
private autofillZone;
|
|
13
9
|
private steps;
|
|
14
10
|
private lastCellSelected;
|
|
15
11
|
private direction;
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
tooltip: Tooltip | undefined;
|
|
13
|
+
canAutofillSelect(col: HeaderIndex, row: HeaderIndex): boolean;
|
|
18
14
|
handle(cmd: Command): void;
|
|
19
|
-
getAutofillTooltip(): Tooltip | undefined;
|
|
20
15
|
/**
|
|
21
16
|
* Autofill the autofillZone from the current selection
|
|
22
17
|
* @param apply Flag set to true to apply the autofill in the model. It's
|
|
@@ -4,7 +4,7 @@ import { NotificationStore } from "../../../stores/notification_store";
|
|
|
4
4
|
import { SpreadsheetStore } from "../../../stores/spreadsheet_store";
|
|
5
5
|
import { Command } from "../../../types/commands";
|
|
6
6
|
import { CellPosition, Direction, EditionMode, HeaderIndex, Highlight, UID, UnboundedZone, Zone } from "../../../types/misc";
|
|
7
|
-
import { Get } from "../../../types/store_engine";
|
|
7
|
+
import { Get, Store } from "../../../types/store_engine";
|
|
8
8
|
export interface ComposerSelection {
|
|
9
9
|
start: number;
|
|
10
10
|
end: number;
|
|
@@ -26,7 +26,7 @@ export declare abstract class AbstractComposerStore extends SpreadsheetStore {
|
|
|
26
26
|
hoveredTokens: EnrichedToken[];
|
|
27
27
|
hoveredContentEvaluation: string;
|
|
28
28
|
private autoCompleteKeepLast;
|
|
29
|
-
protected notificationStore:
|
|
29
|
+
protected notificationStore: Store<NotificationStore>;
|
|
30
30
|
private highlightStore;
|
|
31
31
|
private viewStore;
|
|
32
32
|
constructor(get: Get);
|
|
@@ -5,6 +5,7 @@ import { FunctionDescription } from "../../../types/functions";
|
|
|
5
5
|
import { CSSProperties, Color } from "../../../types/misc";
|
|
6
6
|
import { Rect } from "../../../types/rendering";
|
|
7
7
|
import { SpreadsheetChildEnv } from "../../../types/spreadsheet_env";
|
|
8
|
+
import { Store } from "../../../types/store_engine";
|
|
8
9
|
import { TextValueProvider } from "../autocomplete_dropdown/autocomplete_dropdown";
|
|
9
10
|
import { ContentEditableHelper } from "../content_editable_helper";
|
|
10
11
|
import { FunctionDescriptionProvider } from "../formula_assistant/formula_assistant";
|
|
@@ -41,7 +42,7 @@ export declare class Composer extends Component<SpreadsheetChildEnv> {
|
|
|
41
42
|
inputStyle: string;
|
|
42
43
|
onComposerContentFocused: (selection: ComposerSelection) => void;
|
|
43
44
|
isDefaultFocus: boolean;
|
|
44
|
-
composerStore:
|
|
45
|
+
composerStore: Store<AbstractComposerStore>;
|
|
45
46
|
inputMode: string;
|
|
46
47
|
showAssistant: boolean;
|
|
47
48
|
rect?: Rect | undefined;
|
|
@@ -67,6 +67,7 @@ export declare class Grid extends Component<SpreadsheetChildEnv> {
|
|
|
67
67
|
private DOMFocusableElementStore;
|
|
68
68
|
private paintFormatStore;
|
|
69
69
|
private clientFocusStore;
|
|
70
|
+
private checkboxToggleStore;
|
|
70
71
|
dragNDropGrid: {
|
|
71
72
|
start: (initialPointerCoordinates: {
|
|
72
73
|
clientX: number;
|
|
@@ -76,6 +77,7 @@ export declare class Grid extends Component<SpreadsheetChildEnv> {
|
|
|
76
77
|
onMouseWheel: (ev: WheelEvent) => void;
|
|
77
78
|
hoveredCell: Store<DelayedHoveredCellStore>;
|
|
78
79
|
sidePanel: Store<SidePanelStore>;
|
|
80
|
+
private automaticSumStore;
|
|
79
81
|
setup(): void;
|
|
80
82
|
get highlights(): import("../..").Highlight[];
|
|
81
83
|
get gridOverlayDimensions(): string;
|
|
@@ -122,4 +124,5 @@ export declare class Grid extends Component<SpreadsheetChildEnv> {
|
|
|
122
124
|
onComposerContentFocused(): void;
|
|
123
125
|
get staticTables(): Table[];
|
|
124
126
|
get displaySelectionHandler(): boolean;
|
|
127
|
+
get clientsToDisplay(): Required<Client>[];
|
|
125
128
|
}
|
|
@@ -5,7 +5,7 @@ import { Highlight, Zone } from "../../types/misc";
|
|
|
5
5
|
import { Get } from "../../types/store_engine";
|
|
6
6
|
export declare class PaintFormatStore extends SpreadsheetStore {
|
|
7
7
|
mutators: readonly ["activate", "cancel", "pasteFormat"];
|
|
8
|
-
protected highlightStore: import("../../types/store_engine").
|
|
8
|
+
protected highlightStore: import("../../types/store_engine").Store<HighlightStore>;
|
|
9
9
|
private status;
|
|
10
10
|
private copiedData?;
|
|
11
11
|
constructor(get: Get);
|
|
@@ -6,7 +6,7 @@ import { DelayedHoveredCellStore } from "../grid/delayed_hovered_cell_store";
|
|
|
6
6
|
export declare class CellPopoverStore extends SpreadsheetStore {
|
|
7
7
|
mutators: readonly ["open", "close"];
|
|
8
8
|
private persistentPopover?;
|
|
9
|
-
protected hoveredCell: import("../../types/store_engine").
|
|
9
|
+
protected hoveredCell: import("../../types/store_engine").Store<DelayedHoveredCellStore>;
|
|
10
10
|
private viewStore;
|
|
11
11
|
handle(cmd: Command): void;
|
|
12
12
|
open({ col, row }: Position, type: CellPopoverType): void;
|
|
@@ -133,7 +133,7 @@ export declare const types: {
|
|
|
133
133
|
DataValidationCriterionType: () => Type<"containsText" | "notContainsText" | "isEqualText" | "isEmail" | "isLink" | "dateIs" | "dateIsBefore" | "dateIsOnOrBefore" | "dateIsAfter" | "dateIsOnOrAfter" | "dateIsBetween" | "dateIsNotBetween" | "dateIsValid" | "isEqual" | "isNotEqual" | "isGreaterThan" | "isGreaterOrEqualTo" | "isLessThan" | "isLessOrEqualTo" | "isBetween" | "isNotBetween" | "isBoolean" | "isValueInList" | "isValueInRange" | "customFormula">;
|
|
134
134
|
Dimension: typeof validateDimension;
|
|
135
135
|
ContextMenuType: typeof validateContextMenuType;
|
|
136
|
-
and: <T extends any[]>(types: T) =>
|
|
136
|
+
and: <T extends any[]>(types: T) => import("@odoo/owl").ShapeType<import("@odoo/owl").MergedShape<T>, import("@odoo/owl").UnionToIntersection<import("@odoo/owl").StripBrands<T[number]>>>;
|
|
137
137
|
any: () => Type<any>;
|
|
138
138
|
array: {
|
|
139
139
|
(): Type<any[]>;
|
|
@@ -147,10 +147,10 @@ export declare const types: {
|
|
|
147
147
|
literal: <const T extends import("@odoo/owl").LiteralTypes>(literal: T) => Type<T>;
|
|
148
148
|
number: <T extends number = number>() => Type<T>;
|
|
149
149
|
object: {
|
|
150
|
-
():
|
|
151
|
-
<const Keys extends string[]>(keys: Keys):
|
|
152
|
-
<Shape extends {}>():
|
|
153
|
-
<Shape extends {}>(shape: Shape):
|
|
150
|
+
(): import("@odoo/owl").ShapeType<Record<string, any>, Record<string, any>>;
|
|
151
|
+
<const Keys extends string[]>(keys: Keys): import("@odoo/owl").ShapeType<Keys, import("@odoo/owl").ResolveOptionalEntries<import("@odoo/owl").KeyedObject<Keys>>>;
|
|
152
|
+
<Shape extends {}>(): import("@odoo/owl").ShapeType<Shape, import("@odoo/owl").ResolveOptionalEntries<Shape>>;
|
|
153
|
+
<Shape extends {}>(shape: Shape): import("@odoo/owl").ShapeType<Shape, import("@odoo/owl").ResolveOptionalEntries<Shape>>;
|
|
154
154
|
};
|
|
155
155
|
or: <T extends unknown[]>(types: T) => Type<import("@odoo/owl").StripBrands<T[number]>>;
|
|
156
156
|
promise: {
|
|
@@ -172,8 +172,8 @@ export declare const types: {
|
|
|
172
172
|
<T>(type: T): Type<import("@odoo/owl").ReactiveValue<import("@odoo/owl").StripBrands<T>>>;
|
|
173
173
|
};
|
|
174
174
|
strictObject: {
|
|
175
|
-
<const Keys extends string[]>(keys: Keys):
|
|
176
|
-
<Shape extends {}>(shape: Shape):
|
|
175
|
+
<const Keys extends string[]>(keys: Keys): import("@odoo/owl").ShapeType<Keys, import("@odoo/owl").ResolveOptionalEntries<import("@odoo/owl").KeyedObject<Keys>>>;
|
|
176
|
+
<Shape extends {}>(shape: Shape): import("@odoo/owl").ShapeType<Shape, import("@odoo/owl").ResolveOptionalEntries<Shape>>;
|
|
177
177
|
};
|
|
178
178
|
string: <T extends string = string>() => Type<T>;
|
|
179
179
|
tuple: <const T extends unknown[]>(types: T) => Type<import("@odoo/owl").StripBrandsAll<T>>;
|
|
@@ -28,7 +28,7 @@ export declare class SelectionInputStore extends SpreadsheetStore {
|
|
|
28
28
|
mode: SelectionRangeEditMode;
|
|
29
29
|
private inputSheetId;
|
|
30
30
|
private focusStore;
|
|
31
|
-
protected highlightStore: import("../../types/store_engine").
|
|
31
|
+
protected highlightStore: import("../../types/store_engine").Store<HighlightStore>;
|
|
32
32
|
constructor(get: Get, initialRanges?: string[], inputHasSingleRange?: boolean, colors?: Color[], disabledRanges?: boolean[]);
|
|
33
33
|
handleEvent(event: SelectionEvent): void;
|
|
34
34
|
handle(cmd: Command): void;
|
|
@@ -19,7 +19,7 @@ export declare class ChartTypePicker extends Component<SpreadsheetChildEnv> {
|
|
|
19
19
|
};
|
|
20
20
|
protected props: import("@odoo/owl").Props<{
|
|
21
21
|
chartId: UID;
|
|
22
|
-
chartPanelStore: import("../../../../types/store_engine").
|
|
22
|
+
chartPanelStore: import("../../../../types/store_engine").Store<MainChartPanelStore>;
|
|
23
23
|
}>;
|
|
24
24
|
categories: {
|
|
25
25
|
line: string;
|
|
@@ -10,7 +10,7 @@ export interface ChartSidePanelProps<T extends ChartDefinition<string>> {
|
|
|
10
10
|
export type ChartUpdateFunction<T extends ChartDefinition<string> = ChartDefinition<string>> = (chartId: UID, definition: Partial<T>) => DispatchResult;
|
|
11
11
|
export declare const chartSidePanelPropsDefinition: {
|
|
12
12
|
chartId: import("@odoo/owl").Type<UID>;
|
|
13
|
-
definition: import("@odoo/owl").
|
|
13
|
+
definition: import("@odoo/owl").ShapeType<{}, {}>;
|
|
14
14
|
canUpdateChart: import("@odoo/owl").Type<ChartUpdateFunction<ChartDefinition<string>>>;
|
|
15
15
|
updateChart: import("@odoo/owl").Type<ChartUpdateFunction<ChartDefinition<string>>>;
|
|
16
16
|
};
|
package/dist/types/components/side_panel/conditional_formatting/cf_editor/cell_is_rule_editor.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export declare class CellIsRuleEditor extends Component<SpreadsheetChildEnv> {
|
|
|
11
11
|
Select: typeof Select;
|
|
12
12
|
};
|
|
13
13
|
protected props: import("@odoo/owl").Props<{
|
|
14
|
-
store: import("../../../../types/store_engine").
|
|
14
|
+
store: import("../../../../types/store_engine").Store<ConditionalFormattingEditorStore>;
|
|
15
15
|
}>;
|
|
16
16
|
getTextDecoration: typeof getTextDecoration;
|
|
17
17
|
get rule(): import("../../../..").CellIsRule;
|
|
@@ -8,6 +8,6 @@ export declare class ColorScaleRuleEditor extends Component<SpreadsheetChildEnv>
|
|
|
8
8
|
ColorScaleRuleEditorThreshold: typeof ColorScaleRuleEditorThreshold;
|
|
9
9
|
};
|
|
10
10
|
protected props: import("@odoo/owl").Props<{
|
|
11
|
-
store: import("../../../../types/store_engine").
|
|
11
|
+
store: import("../../../../types/store_engine").Store<ConditionalFormattingEditorStore>;
|
|
12
12
|
}>;
|
|
13
13
|
}
|
|
@@ -15,7 +15,7 @@ export declare class ColorScaleRuleEditorThreshold extends Component<Spreadsheet
|
|
|
15
15
|
Select: typeof Select;
|
|
16
16
|
};
|
|
17
17
|
protected props: import("@odoo/owl").Props<{
|
|
18
|
-
store: import("../../../../types/store_engine").
|
|
18
|
+
store: import("../../../../types/store_engine").Store<ConditionalFormattingEditorStore>;
|
|
19
19
|
thresholdType: "minimum" | "maximum" | "midpoint";
|
|
20
20
|
}>;
|
|
21
21
|
get rule(): import("../../../..").ColorScaleRule;
|
package/dist/types/components/side_panel/conditional_formatting/cf_editor/data_bar_rule_editor.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export declare class DataBarRuleEditor extends Component<SpreadsheetChildEnv> {
|
|
|
11
11
|
RoundColorPicker: typeof RoundColorPicker;
|
|
12
12
|
};
|
|
13
13
|
protected props: import("@odoo/owl").Props<{
|
|
14
|
-
store: import("../../../../types/store_engine").
|
|
14
|
+
store: import("../../../../types/store_engine").Store<ConditionalFormattingEditorStore>;
|
|
15
15
|
}>;
|
|
16
16
|
get rule(): import("../../../..").DataBarRule;
|
|
17
17
|
colorNumberToHex: typeof colorNumberToHex;
|
package/dist/types/components/side_panel/conditional_formatting/cf_editor/icon_set_rule_editor.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export declare class IconSetRuleEditor extends Component<SpreadsheetChildEnv> {
|
|
|
14
14
|
Select: typeof Select;
|
|
15
15
|
};
|
|
16
16
|
protected props: import("@odoo/owl").Props<{
|
|
17
|
-
store: import("../../../../types/store_engine").
|
|
17
|
+
store: import("../../../../types/store_engine").Store<ConditionalFormattingEditorStore>;
|
|
18
18
|
}>;
|
|
19
19
|
get rule(): import("../../../..").IconSetRule;
|
|
20
20
|
getIconName(iconSet: "arrows" | "smiley" | "dots", iconType: "good" | "neutral" | "bad"): string;
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
import { Component } from "../../../owl3_compatibility_layer";
|
|
2
|
+
import { DataCleanupStore } from "../../../stores/data_cleanup_store";
|
|
2
3
|
import { SpreadsheetChildEnv } from "../../../types/spreadsheet_env";
|
|
4
|
+
import { Store } from "../../../types/store_engine";
|
|
3
5
|
import { ValidationMessages } from "../../validation_messages/validation_messages";
|
|
4
6
|
import { Checkbox } from "../components/checkbox/checkbox";
|
|
5
7
|
import { Section } from "../components/section/section";
|
|
6
|
-
interface RemoveDuplicatesState {
|
|
7
|
-
hasHeader: boolean;
|
|
8
|
-
columns: {
|
|
9
|
-
[colIndex: number]: boolean;
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
8
|
export declare class RemoveDuplicatesPanel extends Component<SpreadsheetChildEnv> {
|
|
13
9
|
static template: string;
|
|
14
10
|
static components: {
|
|
@@ -19,7 +15,7 @@ export declare class RemoveDuplicatesPanel extends Component<SpreadsheetChildEnv
|
|
|
19
15
|
protected props: import("@odoo/owl").Props<{
|
|
20
16
|
onCloseSidePanel: () => void;
|
|
21
17
|
}>;
|
|
22
|
-
|
|
18
|
+
dataCleanupSore: Store<DataCleanupStore>;
|
|
23
19
|
setup(): void;
|
|
24
20
|
toggleHasHeader(): void;
|
|
25
21
|
toggleAllColumns(): void;
|
|
@@ -30,7 +26,4 @@ export declare class RemoveDuplicatesPanel extends Component<SpreadsheetChildEnv
|
|
|
30
26
|
get errorMessages(): string[];
|
|
31
27
|
get selectionStatisticalInformation(): string;
|
|
32
28
|
get canConfirm(): boolean;
|
|
33
|
-
private updateColumns;
|
|
34
|
-
private getColsToAnalyze;
|
|
35
29
|
}
|
|
36
|
-
export {};
|
|
@@ -30,7 +30,7 @@ export declare class SidePanelStore extends SpreadsheetStore {
|
|
|
30
30
|
}) | undefined;
|
|
31
31
|
secondaryPanel: PanelInfo | undefined;
|
|
32
32
|
availableWidth: number;
|
|
33
|
-
screenWidthStore: import("../../../types/store_engine").
|
|
33
|
+
screenWidthStore: import("../../../types/store_engine").Store<ScreenWidthStore>;
|
|
34
34
|
get isMainPanelOpen(): boolean;
|
|
35
35
|
get isSecondaryPanelOpen(): boolean;
|
|
36
36
|
get mainPanelProps(): SidePanelComponentProps | undefined;
|
|
@@ -92,6 +92,7 @@ export declare class CompiledFormula implements Omit<ICompiledFormula, "tokens"
|
|
|
92
92
|
* Make a new instance of CompiledFormula by compiling the formula string as input by the user.
|
|
93
93
|
* */
|
|
94
94
|
static Compile(formula: string, sheetId: UID, getters: CoreGetters): CompiledFormula;
|
|
95
|
+
areRangeShapesInLineWithNormalizedFormula(): boolean;
|
|
95
96
|
}
|
|
96
97
|
/**
|
|
97
98
|
* A compiled formula serialized
|
package/dist/types/index.d.ts
CHANGED
|
@@ -228,12 +228,15 @@ import "./plugins/plugin_registries";
|
|
|
228
228
|
import "./registries/auto_completes/autocompelete_registration";
|
|
229
229
|
import "./registries/chart_types";
|
|
230
230
|
import "./registries/interactive_icon_on_cell_registry";
|
|
231
|
+
import { AutofillStore } from "./components/autofill/autofill_store";
|
|
232
|
+
import { TableAutofillStore } from "./components/autofill/table_autofill_store";
|
|
231
233
|
import { Composer } from "./components/composer/composer/composer";
|
|
232
234
|
import { StandaloneComposer } from "./components/composer/standalone_composer/standalone_composer";
|
|
233
235
|
import { Select } from "./components/select/select";
|
|
234
236
|
import { ChartRangeDataSourceComponent } from "./components/side_panel/chart/building_blocks/range_data_source/range_data_source";
|
|
235
237
|
import { CalendarButton } from "./components/side_panel/criterion_form/calendar_button/calendar_button";
|
|
236
238
|
import { TopBar } from "./components/top_bar/top_bar";
|
|
239
|
+
import { PositionMap } from "./helpers/cells/position_map";
|
|
237
240
|
import { parseFormat } from "./helpers/format/format_parser";
|
|
238
241
|
import { replaceSymbolInFormula } from "./helpers/formulas";
|
|
239
242
|
import { getFirstPivotFunction, getNumberOfPivotFunctions } from "./helpers/pivot/pivot_composer_helpers";
|
|
@@ -314,6 +317,7 @@ export declare const helpers: {
|
|
|
314
317
|
collapseHierarchicalDisplayName: typeof collapseHierarchicalDisplayName;
|
|
315
318
|
getCanonicalSymbolName: typeof getCanonicalSymbolName;
|
|
316
319
|
fuzzyLookup: typeof fuzzyLookup;
|
|
320
|
+
PositionMap: typeof PositionMap;
|
|
317
321
|
replaceSymbolInFormula: typeof replaceSymbolInFormula;
|
|
318
322
|
isSingleCellReference: typeof isSingleCellReference;
|
|
319
323
|
computeCachedTextDimension: typeof computeCachedTextDimension;
|
|
@@ -420,9 +424,12 @@ export declare const stores: {
|
|
|
420
424
|
SidePanelStore: typeof SidePanelStore;
|
|
421
425
|
PivotSidePanelStore: typeof PivotSidePanelStore;
|
|
422
426
|
PivotMeasureDisplayPanelStore: typeof PivotMeasureDisplayPanelStore;
|
|
427
|
+
TableAutofillStore: typeof TableAutofillStore;
|
|
428
|
+
AutofillStore: typeof AutofillStore;
|
|
423
429
|
ClientFocusStore: typeof ClientFocusStore;
|
|
424
430
|
GridRenderer: typeof GridRenderer;
|
|
425
431
|
ViewportsStore: typeof ViewportsStore;
|
|
432
|
+
globalStores: import(".").Registry<import(".").StoreConstructor<SpreadsheetStore, any[]>>;
|
|
426
433
|
};
|
|
427
434
|
export { getCaretDownSvg, getCaretUpSvg } from "./components/icons/icons";
|
|
428
435
|
export { createAutocompleteArgumentsProvider } from "./functions/autocomplete_arguments_provider";
|
|
@@ -30,6 +30,7 @@ export declare class Squisher {
|
|
|
30
30
|
private alreadyAppliedNumberOffsets;
|
|
31
31
|
private previousStrings;
|
|
32
32
|
private baseFormulaWasTransformed;
|
|
33
|
+
private rangeToStringOptions;
|
|
33
34
|
private baseNumber;
|
|
34
35
|
constructor(getters: CoreGetters);
|
|
35
36
|
/** Build the result object based on a transformation. Joins the numbers into a single string, tries to do the same
|
|
@@ -15,9 +15,12 @@ export declare class PivotUIPlugin extends CoreViewPlugin {
|
|
|
15
15
|
private pivots;
|
|
16
16
|
private unusedPivotsInFormulas?;
|
|
17
17
|
private custom;
|
|
18
|
+
private pivotPositionCache;
|
|
19
|
+
private shouldInvalidateCache;
|
|
18
20
|
constructor(config: CoreViewPluginConfig);
|
|
19
21
|
beforeHandle(cmd: Command): void;
|
|
20
22
|
handle(cmd: Command): void;
|
|
23
|
+
finalize(): void;
|
|
21
24
|
/**
|
|
22
25
|
* Get the id of the first pivot in the formula at the given position. Returns undefined if there
|
|
23
26
|
* is no pivot at this position
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { UID } from "../..";
|
|
1
2
|
import { Client, ClientId, ClientWithColor } from "../../types/collaborative/session";
|
|
2
3
|
import { GridRenderingContext } from "../../types/rendering";
|
|
3
4
|
import { UIPlugin, UIPluginConfig } from "../ui_plugin";
|
|
@@ -18,7 +19,7 @@ export declare class CollaborativePlugin extends UIPlugin {
|
|
|
18
19
|
* Get the list of others connected clients which are present in the same sheet
|
|
19
20
|
* and with a valid position
|
|
20
21
|
*/
|
|
21
|
-
getClientsToDisplay(): ClientToDisplay[];
|
|
22
|
+
getClientsToDisplay(sheetId: UID): ClientToDisplay[];
|
|
22
23
|
drawLayer(renderingContext: GridRenderingContext): void;
|
|
23
24
|
}
|
|
24
25
|
export {};
|
|
@@ -3,7 +3,7 @@ import { Get } from "../types/store_engine";
|
|
|
3
3
|
import { HighlightStore } from "./highlight_store";
|
|
4
4
|
import { SpreadsheetStore } from "./spreadsheet_store";
|
|
5
5
|
export declare class ArrayFormulaHighlight extends SpreadsheetStore {
|
|
6
|
-
protected highlightStore: import("../types/store_engine").
|
|
6
|
+
protected highlightStore: import("../types/store_engine").Store<HighlightStore>;
|
|
7
7
|
constructor(get: Get);
|
|
8
8
|
get highlights(): Highlight[];
|
|
9
9
|
}
|
package/dist/types/{plugins/ui_feature/automatic_sum.d.ts → stores/automatic_sum_store.d.ts}
RENAMED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { Command } from "
|
|
2
|
-
import { Position, UID, Zone } from "
|
|
3
|
-
import {
|
|
1
|
+
import { Command } from "../types/commands";
|
|
2
|
+
import { Position, UID, Zone } from "../types/misc";
|
|
3
|
+
import { SpreadsheetStore } from "./spreadsheet_store";
|
|
4
4
|
interface AutomaticSum {
|
|
5
5
|
position: Position;
|
|
6
6
|
zone: Zone;
|
|
7
7
|
}
|
|
8
|
-
export declare class
|
|
8
|
+
export declare class AutomaticSumStore extends SpreadsheetStore {
|
|
9
9
|
static getters: readonly ["getAutomaticSums"];
|
|
10
10
|
handle(cmd: Command): void;
|
|
11
11
|
getAutomaticSums(sheetId: UID, zone: Zone, anchor: Position): AutomaticSum[];
|
|
12
|
+
get automaticSumsOnMainSelectedZone(): AutomaticSum[];
|
|
12
13
|
private sumData;
|
|
13
14
|
private sumAdjacentData;
|
|
14
15
|
/**
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Command } from "../types/commands";
|
|
2
|
+
import { Zone } from "../types/misc";
|
|
3
|
+
import { SpreadsheetStore } from "./spreadsheet_store";
|
|
4
|
+
export declare class CheckboxToggleStore extends SpreadsheetStore {
|
|
5
|
+
storeGetters: readonly ["hasBooleanValidationInZones"];
|
|
6
|
+
handle(cmd: Command): void;
|
|
7
|
+
hasBooleanValidationInZones(zones: Zone[]): boolean;
|
|
8
|
+
private toggleCheckbox;
|
|
9
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { CancelledReason, Command } from "../types/commands";
|
|
2
|
+
import { Get } from "../types/store_engine";
|
|
3
|
+
import { SpreadsheetStore } from "./spreadsheet_store";
|
|
4
|
+
export declare class DataCleanupStore extends SpreadsheetStore {
|
|
5
|
+
mutators: readonly ["setHasHeader", "setColumns", "toggleAllColumns", "toggleColumn"];
|
|
6
|
+
private notificationStore;
|
|
7
|
+
hasHeader: boolean;
|
|
8
|
+
columns: {
|
|
9
|
+
[colIndex: number]: boolean;
|
|
10
|
+
};
|
|
11
|
+
constructor(get: Get);
|
|
12
|
+
private updateColumns;
|
|
13
|
+
setHasHeader(hasHeader: boolean): void;
|
|
14
|
+
setColumns(columns: {
|
|
15
|
+
[colIndex: number]: boolean;
|
|
16
|
+
}): void;
|
|
17
|
+
toggleAllColumns(): void;
|
|
18
|
+
toggleColumn(colIndex: number): void;
|
|
19
|
+
private get isEveryColumnSelected();
|
|
20
|
+
get removeDuplicateErrors(): CancelledReason[];
|
|
21
|
+
handle(cmd: Command): void;
|
|
22
|
+
private removeDuplicates;
|
|
23
|
+
private getUniqueRowsIndexes;
|
|
24
|
+
private notifyRowsRemovedAndRemaining;
|
|
25
|
+
private checkSingleRangeSelected;
|
|
26
|
+
private checkNoMergeInZone;
|
|
27
|
+
private checkRangeContainsValues;
|
|
28
|
+
private checkNoColumnProvided;
|
|
29
|
+
private checkColumnsIncludedInZone;
|
|
30
|
+
private getColsToAnalyze;
|
|
31
|
+
}
|
|
@@ -7,7 +7,7 @@ import { RendererStore } from "./renderer_store";
|
|
|
7
7
|
export declare class SpreadsheetStore extends DisposableStore {
|
|
8
8
|
protected model: Model;
|
|
9
9
|
protected getters: import("..").Getters;
|
|
10
|
-
protected renderer: import("../types/store_engine").
|
|
10
|
+
protected renderer: import("../types/store_engine").Store<RendererStore>;
|
|
11
11
|
constructor(get: Get);
|
|
12
12
|
get renderingLayers(): Readonly<LayerName[]>;
|
|
13
13
|
protected handle(cmd: Command): void;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Command } from "../types/commands";
|
|
2
|
+
import { SpreadsheetStore } from "./spreadsheet_store";
|
|
3
|
+
export declare class TrimWhitespaceStore extends SpreadsheetStore {
|
|
4
|
+
mutators: readonly ["trimWhitespace"];
|
|
5
|
+
private notificationStore;
|
|
6
|
+
trimWhitespace(): void;
|
|
7
|
+
handle(cmd: Command): void;
|
|
8
|
+
private _trimWhitespace;
|
|
9
|
+
}
|
|
@@ -435,8 +435,6 @@ export interface DuplicatePivotCommand {
|
|
|
435
435
|
}
|
|
436
436
|
export interface RemoveDuplicatesCommand {
|
|
437
437
|
type: "REMOVE_DUPLICATES";
|
|
438
|
-
columns: HeaderIndex[];
|
|
439
|
-
hasHeader: boolean;
|
|
440
438
|
}
|
|
441
439
|
export interface TrimWhitespaceCommand {
|
|
442
440
|
type: "TRIM_WHITESPACE";
|
|
@@ -885,7 +883,6 @@ export declare const enum CommandResult {
|
|
|
885
883
|
MoreThanOneRangeSelected = "MoreThanOneRangeSelected",
|
|
886
884
|
NoColumnsProvided = "NoColumnsProvided",
|
|
887
885
|
ColumnsNotIncludedInZone = "ColumnsNotIncludedInZone",
|
|
888
|
-
DuplicatesColumnsSelected = "DuplicatesColumnsSelected",
|
|
889
886
|
InvalidHeaderGroupStartEnd = "InvalidHeaderGroupStartEnd",
|
|
890
887
|
HeaderGroupAlreadyExists = "HeaderGroupAlreadyExists",
|
|
891
888
|
UnknownHeaderGroup = "UnknownHeaderGroup",
|
|
@@ -10,10 +10,7 @@ import { FingerprintPlugin } from "../plugins/ui_core_views/fingerprint";
|
|
|
10
10
|
import { FormulaTrackerPlugin } from "../plugins/ui_core_views/formula_tracker";
|
|
11
11
|
import { HeaderSizeUIPlugin } from "../plugins/ui_core_views/header_sizes_ui";
|
|
12
12
|
import { PivotUIPlugin } from "../plugins/ui_core_views/pivot_ui";
|
|
13
|
-
import { AutofillPlugin } from "../plugins/ui_feature/autofill";
|
|
14
|
-
import { AutomaticSumPlugin } from "../plugins/ui_feature/automatic_sum";
|
|
15
13
|
import { CellComputedStylePlugin } from "../plugins/ui_feature/cell_computed_style";
|
|
16
|
-
import { CheckboxTogglePlugin } from "../plugins/ui_feature/checkbox_toggle";
|
|
17
14
|
import { CollaborativePlugin } from "../plugins/ui_feature/collaborative";
|
|
18
15
|
import { ColorThemeUIPlugin } from "../plugins/ui_feature/color_theme";
|
|
19
16
|
import { DynamicTranslate } from "../plugins/ui_feature/dynamic_translate";
|
|
@@ -42,5 +39,5 @@ import { CoreGetters, PluginGetters } from "./core_getters";
|
|
|
42
39
|
export type RenderingGetters = {
|
|
43
40
|
isReadonly: () => boolean;
|
|
44
41
|
isDashboard: () => boolean;
|
|
45
|
-
} & CoreGetters & PluginGetters<typeof
|
|
42
|
+
} & CoreGetters & PluginGetters<typeof HistoryPlugin> & PluginGetters<typeof ClipboardPlugin> & PluginGetters<typeof EvaluationPlugin> & PluginGetters<typeof EvaluationChartPlugin> & PluginGetters<typeof EvaluationConditionalFormatPlugin> & PluginGetters<typeof HeaderVisibilityUIPlugin> & PluginGetters<typeof CustomColorsPlugin> & PluginGetters<typeof CollaborativePlugin> & PluginGetters<typeof SortPlugin> & PluginGetters<typeof UIOptionsPlugin> & PluginGetters<typeof SheetUIPlugin> & PluginGetters<typeof FilterEvaluationPlugin> & PluginGetters<typeof FingerprintPlugin> & PluginGetters<typeof SplitToColumnsPlugin> & PluginGetters<typeof SubtotalEvaluationPlugin> & PluginGetters<typeof HeaderSizeUIPlugin> & PluginGetters<typeof EvaluationDataValidationPlugin> & PluginGetters<typeof HeaderPositionsUIPlugin> & PluginGetters<typeof TableStylePlugin> & PluginGetters<typeof CellComputedStylePlugin> & PluginGetters<typeof DynamicTablesPlugin> & PluginGetters<typeof PivotUIPlugin> & PluginGetters<typeof TableComputedStylePlugin> & PluginGetters<typeof GeoFeaturePlugin> & PluginGetters<typeof PivotPresencePlugin> & PluginGetters<typeof TableComputedStylePlugin> & PluginGetters<typeof CellIconPlugin> & PluginGetters<typeof DynamicTranslate> & PluginGetters<typeof FormulaTrackerPlugin> & PluginGetters<typeof LockSheetPlugin> & PluginGetters<typeof CarouselUIPlugin> & PluginGetters<typeof ColorThemeUIPlugin> & PluginGetters<typeof FigureUIPlugin>;
|
|
46
43
|
export type Getters = RenderingGetters & PluginGetters<typeof GridSelectionPlugin>;
|
|
@@ -28,9 +28,16 @@ export type SkipFirst<T extends any[]> = T extends [any, ...infer U] ? U : never
|
|
|
28
28
|
export type OmitFunctions<T> = {
|
|
29
29
|
[K in keyof T as T[K] extends Function ? never : K]: T[K];
|
|
30
30
|
};
|
|
31
|
-
export type
|
|
32
|
-
|
|
33
|
-
}
|
|
31
|
+
export type FunctionKeys<T> = {
|
|
32
|
+
[K in keyof T]: T[K] extends Function ? K : never;
|
|
33
|
+
}[keyof T];
|
|
34
|
+
export type MutatorKeys<S> = S extends {
|
|
35
|
+
mutators: readonly FunctionKeys<S>[];
|
|
36
|
+
} ? S["mutators"][number] : never;
|
|
37
|
+
export type GetterKeys<S> = S extends {
|
|
38
|
+
storeGetters: readonly FunctionKeys<S>[];
|
|
39
|
+
} ? S["storeGetters"][number] : never;
|
|
40
|
+
export type Store<S> = CQS<Pick<S, MutatorKeys<S>> & OmitFunctions<S>> & Pick<S, GetterKeys<S>>;
|
|
34
41
|
/**
|
|
35
42
|
* Command Query Separation [1,2] implementation with types.
|
|
36
43
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@odoo/o-spreadsheet",
|
|
3
|
-
"version": "19.5.0-alpha.
|
|
3
|
+
"version": "19.5.0-alpha.6",
|
|
4
4
|
"description": "A spreadsheet component",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/o_spreadsheet.cjs",
|
|
@@ -141,7 +141,7 @@
|
|
|
141
141
|
"xmlSelfClosingSpace": false
|
|
142
142
|
},
|
|
143
143
|
"dependencies": {
|
|
144
|
-
"@odoo/owl": "3.0.0-alpha.
|
|
144
|
+
"@odoo/owl": "3.0.0-alpha.43",
|
|
145
145
|
"bootstrap": "5.3.3",
|
|
146
146
|
"font-awesome": "^4.7.0",
|
|
147
147
|
"rbush": "^3.0.1"
|