@odoo/o-spreadsheet 19.5.0-alpha.19 → 19.5.0-alpha.20
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 +230 -157
- package/dist/o_spreadsheet.css +49 -36
- package/dist/o_spreadsheet.esm.js +230 -157
- package/dist/o_spreadsheet.iife.js +230 -157
- package/dist/o_spreadsheet.min.iife.js +287 -287
- package/dist/o_spreadsheet.xml +14 -10
- package/dist/types/components/spreadsheet/spreadsheet.d.ts +1 -2
- package/dist/types/helpers/color.d.ts +1 -1
- package/dist/types/helpers/data_analysis.d.ts +4 -3
- package/dist/types/plugins/ui_plugin.d.ts +1 -4
- package/dist/types/types/chart/chart_suggestion.d.ts +2 -1
- package/dist/types/types/model.d.ts +0 -3
- package/dist/types/types/rendering.d.ts +18 -1
- package/package.json +1 -1
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-09-
|
|
6
|
-
@hash
|
|
4
|
+
@version 19.5.0-alpha.20
|
|
5
|
+
@date 2026-09-16T08:02:12.495Z
|
|
6
|
+
@hash 4784627
|
|
7
7
|
-->
|
|
8
8
|
<odoo>
|
|
9
9
|
<t t-name="o-spreadsheet-ValidationMessages">
|
|
@@ -5587,7 +5587,7 @@
|
|
|
5587
5587
|
</t>
|
|
5588
5588
|
|
|
5589
5589
|
<t t-name="o_spreadsheet.PivotHTMLRenderer">
|
|
5590
|
-
<div class="
|
|
5590
|
+
<div class="w-100">
|
|
5591
5591
|
<Checkbox
|
|
5592
5592
|
name="'missing_values'"
|
|
5593
5593
|
label.translate="Display missing cells only"
|
|
@@ -7639,7 +7639,9 @@
|
|
|
7639
7639
|
gridDims="this.viewStore.viewports.getSheetViewDimensionWithHeaders()"
|
|
7640
7640
|
onInputContextMenu.bind="this.onInputContextMenu"
|
|
7641
7641
|
/>
|
|
7642
|
-
<
|
|
7642
|
+
<div class="os-canvas-background">
|
|
7643
|
+
<canvas t-ref="this.canvasRef" class="os-theme-dependant pe-none"/>
|
|
7644
|
+
</div>
|
|
7643
7645
|
<t t-set="focused" t-value="this.focusedClients"/>
|
|
7644
7646
|
<t t-foreach="this.clientsToDisplay" t-as="client" t-key="this.getClientPositionKey(client)">
|
|
7645
7647
|
<ClientTag
|
|
@@ -7701,7 +7703,7 @@
|
|
|
7701
7703
|
</button>
|
|
7702
7704
|
<div class="flex-fill">
|
|
7703
7705
|
<div
|
|
7704
|
-
class="o-fullscreen-figure os-theme-dependant o-figure position-relative border rounded shadow"
|
|
7706
|
+
class="o-fullscreen-figure o-figure-rounded overflow-hidden os-theme-dependant o-figure position-relative border rounded shadow"
|
|
7705
7707
|
tabindex="1"
|
|
7706
7708
|
t-ref="this.fullScreenFigureRef"
|
|
7707
7709
|
t-on-click.stop=""
|
|
@@ -8310,10 +8312,12 @@
|
|
|
8310
8312
|
</t>
|
|
8311
8313
|
|
|
8312
8314
|
<t t-name="o-spreadsheet-SpreadsheetDashboard">
|
|
8313
|
-
<div
|
|
8314
|
-
|
|
8315
|
-
|
|
8316
|
-
|
|
8315
|
+
<div class="o-dashboard-background os-canvas-background position-absolute w-100 h-100 z-0">
|
|
8316
|
+
<div
|
|
8317
|
+
class="o-dashboard-sheet-background w-100 h-100 os-theme-dependant"
|
|
8318
|
+
t-att-style="this.backgroundStyle"
|
|
8319
|
+
/>
|
|
8320
|
+
</div>
|
|
8317
8321
|
<div
|
|
8318
8322
|
class="o-grid o-dashboard-grid o-two-columns o-zoomable z-1"
|
|
8319
8323
|
tabindex="-1"
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Model } from "../../model";
|
|
2
2
|
import { Component } from "../../owl3_compatibility_layer";
|
|
3
|
-
import { InformationNotification } from "../../types/env";
|
|
4
3
|
import { HeaderGroup, Pixel } from "../../types/misc";
|
|
5
4
|
import { ColorThemeName } from "../../types/rendering";
|
|
6
5
|
import { SpreadsheetChildEnv } from "../../types/spreadsheet_env";
|
|
@@ -23,7 +22,7 @@ export declare class Spreadsheet extends Component<SpreadsheetChildEnv> {
|
|
|
23
22
|
static template: string;
|
|
24
23
|
protected props: import("@odoo/owl").Props<{
|
|
25
24
|
model: Model;
|
|
26
|
-
notifyUser?: ((notification: InformationNotification) => void) | undefined;
|
|
25
|
+
notifyUser?: ((notification: import("../..").InformationNotification) => void) | undefined;
|
|
27
26
|
raiseError?: ((text: string, callback?: () => void) => void) | undefined;
|
|
28
27
|
askConfirmation?: ((content: string, confirm: () => void, cancel?: () => void) => void) | undefined;
|
|
29
28
|
}>;
|
|
@@ -94,7 +94,7 @@ export declare const DARK_MODE_FILTER_STRING: string;
|
|
|
94
94
|
* stored in the theme so that, after the dark-mode CSS filter is applied, the
|
|
95
95
|
* desired color is actually shown.
|
|
96
96
|
*
|
|
97
|
-
* This function computes
|
|
97
|
+
* This function computes an approximate inverse of the DARK_MODE_FILTER chain.
|
|
98
98
|
*/
|
|
99
99
|
export declare function adaptForDarkMode(displayedColor: Color): Color;
|
|
100
100
|
export declare function darkenColor(color: Color, percentage: number): Color;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { EvaluatedCell } from "../types/cells";
|
|
2
2
|
import { Getters } from "../types/getters";
|
|
3
|
-
import { Zone } from "../types/misc";
|
|
3
|
+
import { CellPosition, UID, Zone } from "../types/misc";
|
|
4
4
|
export type ExtendedColumnType = "error" | "number" | "percentage" | "date" | "categorical" | "label" | "boolean" | "empty";
|
|
5
5
|
export interface ColumnAnalysis {
|
|
6
6
|
zone: Zone;
|
|
7
7
|
type: ExtendedColumnType;
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
title?: string;
|
|
9
|
+
headerInZone: boolean;
|
|
10
10
|
rowCount: number;
|
|
11
11
|
uniqueCount: number;
|
|
12
12
|
uniqueRatio: number;
|
|
@@ -14,3 +14,4 @@ export interface ColumnAnalysis {
|
|
|
14
14
|
nonEmpty: EvaluatedCell[];
|
|
15
15
|
}
|
|
16
16
|
export declare function analyzeColumns(zones: Zone[], getters: Getters): ColumnAnalysis[];
|
|
17
|
+
export declare function getColumnTableHeaderPosition(sheetId: UID, zone: Zone, getters: Getters): CellPosition | undefined;
|
|
@@ -9,7 +9,6 @@ import { ModelConfig } from "../types/model";
|
|
|
9
9
|
import { GridRenderingContext, LayerName } from "../types/rendering";
|
|
10
10
|
import { SelectionStreamProcessor } from "../types/selection_stream_processor";
|
|
11
11
|
import { BasePlugin } from "./base_plugin";
|
|
12
|
-
export type UIActions = Pick<ModelConfig, "notifyUI" | "raiseBlockingErrorUI">;
|
|
13
12
|
export interface UIPluginConfig {
|
|
14
13
|
readonly getters: Getters;
|
|
15
14
|
readonly stateObserver: StateObserver;
|
|
@@ -17,7 +16,6 @@ export interface UIPluginConfig {
|
|
|
17
16
|
readonly canDispatch: CommandDispatcher["dispatch"];
|
|
18
17
|
readonly selection: SelectionStreamProcessor;
|
|
19
18
|
readonly moveClient: (position: ClientPosition) => void;
|
|
20
|
-
readonly uiActions: UIActions;
|
|
21
19
|
readonly custom: ModelConfig["custom"];
|
|
22
20
|
readonly session: Session;
|
|
23
21
|
readonly defaultCurrency?: Partial<Currency>;
|
|
@@ -37,10 +35,9 @@ export interface UIPluginConstructor {
|
|
|
37
35
|
export declare class UIPlugin<State = any> extends BasePlugin<State, Command> {
|
|
38
36
|
static layers: Readonly<LayerName[]>;
|
|
39
37
|
protected getters: Getters;
|
|
40
|
-
protected ui: UIActions;
|
|
41
38
|
protected selection: SelectionStreamProcessor;
|
|
42
39
|
protected dispatch: CommandDispatcher["dispatch"];
|
|
43
40
|
protected canDispatch: CommandDispatcher["dispatch"];
|
|
44
|
-
constructor({ getters, stateObserver, dispatch, canDispatch,
|
|
41
|
+
constructor({ getters, stateObserver, dispatch, canDispatch, selection }: UIPluginConfig);
|
|
45
42
|
drawLayer(ctx: GridRenderingContext, layer: LayerName): void;
|
|
46
43
|
}
|
|
@@ -29,6 +29,7 @@ export interface SingleDateContext {
|
|
|
29
29
|
title: string;
|
|
30
30
|
lastCellXC: string;
|
|
31
31
|
rowCount: number;
|
|
32
|
+
source: ChartRangeDataSource<string>;
|
|
32
33
|
}
|
|
33
34
|
/** Pattern D — Single categorical column */
|
|
34
35
|
export interface SingleCategoricalContext {
|
|
@@ -115,7 +116,7 @@ export interface LabelVsMultipleNumbersContext {
|
|
|
115
116
|
yRanges: string[];
|
|
116
117
|
sizeRange: string;
|
|
117
118
|
labelRange: string;
|
|
118
|
-
|
|
119
|
+
headerInZone: boolean;
|
|
119
120
|
};
|
|
120
121
|
}
|
|
121
122
|
/** Pattern R — Categorical + Two Numbers (Population Pyramid or Grouped) */
|
|
@@ -2,7 +2,6 @@ import { GeoChartRegion } from "./chart/geo_chart";
|
|
|
2
2
|
import { Client, ClientPosition } from "./collaborative/session";
|
|
3
3
|
import { TransportService } from "./collaborative/transport_service";
|
|
4
4
|
import { Currency } from "./currency";
|
|
5
|
-
import { InformationNotification } from "./env";
|
|
6
5
|
import { FileStore } from "./files";
|
|
7
6
|
import { Locale } from "./locale";
|
|
8
7
|
import { Color } from "./misc";
|
|
@@ -28,8 +27,6 @@ export interface ModelConfig {
|
|
|
28
27
|
readonly transportService: TransportService;
|
|
29
28
|
readonly client: Client;
|
|
30
29
|
readonly snapshotRequested: boolean;
|
|
31
|
-
readonly notifyUI: (payload: InformationNotification) => void;
|
|
32
|
-
readonly raiseBlockingErrorUI: (text: string) => void;
|
|
33
30
|
readonly customColors: Color[];
|
|
34
31
|
readonly colorScheme?: ColorThemeName;
|
|
35
32
|
}
|
|
@@ -89,8 +89,25 @@ export interface SheetDOMScrollInfo {
|
|
|
89
89
|
export type ColorThemeName = "light" | "dark";
|
|
90
90
|
export interface GridRenderingTheme {
|
|
91
91
|
colorThemeName: ColorThemeName;
|
|
92
|
-
|
|
92
|
+
/**
|
|
93
|
+
* Default background of a chart. Deliberately NOT the background of the grid: the grid canvas is
|
|
94
|
+
* transparent where no cell colour is drawn, and its background comes from the
|
|
95
|
+
* `--os-canvas-background-color` CSS variable so integrators can override it. Painting this on the
|
|
96
|
+
* grid would ignore that override, so no such field exists here.
|
|
97
|
+
*/
|
|
98
|
+
chartBackgroundColor: string;
|
|
99
|
+
/**
|
|
100
|
+
* Base colour of the grid lines. Blended with the sheet background at draw time so the lines pick
|
|
101
|
+
* up its tint while staying opaque — they are drawn opaque because adjacent boxes stroke their
|
|
102
|
+
* shared border twice, which a translucent stroke would darken.
|
|
103
|
+
*/
|
|
93
104
|
gridBorderColor: string;
|
|
105
|
+
/**
|
|
106
|
+
* Used instead when the sheet has no background: the canvas is transparent there and the colour
|
|
107
|
+
* behind it lives outside the dark mode filter, so there is nothing to blend against. This is
|
|
108
|
+
* `gridBorderColor` already blended with the default background.
|
|
109
|
+
*/
|
|
110
|
+
gridBorderColorOnDefaultBackground: string;
|
|
94
111
|
headerBackgroundColor: string;
|
|
95
112
|
headerActiveBackgroundColor: string;
|
|
96
113
|
headerSelectedBackgroundColor: string;
|