@odoo/o-spreadsheet 19.4.10 → 19.4.12

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.
@@ -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.4.10
5
- @date 2026-08-29T09:17:28.397Z
6
- @hash d7a0f18
4
+ @version 19.4.12
5
+ @date 2026-09-10T05:38:02.876Z
6
+ @hash cdb63b4
7
7
  -->
8
8
  <odoo>
9
9
  <t t-name="o-spreadsheet-ValidationMessages">
@@ -3558,7 +3558,7 @@
3558
3558
  updateChart="this.props.updateChart"
3559
3559
  canUpdateChart="this.props.canUpdateChart"
3560
3560
  onErrorMessagesChanged.bind="this.onErrorMessagesChanged"
3561
- getLabelRangeOptions.bind="this.getLabelRangeOptions"
3561
+ getLabelRangeOptions="() => []"
3562
3562
  dataSeriesTitle.translate="Hierarchy"
3563
3563
  labelRangeTitle.translate="Values"
3564
3564
  />
@@ -4418,7 +4418,7 @@
4418
4418
  updateChart="this.props.updateChart"
4419
4419
  canUpdateChart="this.props.canUpdateChart"
4420
4420
  onErrorMessagesChanged.bind="this.onErrorMessagesChanged"
4421
- getLabelRangeOptions.bind="this.getLabelRangeOptions"
4421
+ getLabelRangeOptions="() => []"
4422
4422
  labelRangeTitle.translate="Date range"
4423
4423
  />
4424
4424
 
@@ -4427,7 +4427,7 @@
4427
4427
  <span class="w-100">Horizontal axis</span>
4428
4428
  <Select
4429
4429
  selectedValue="this.getGroupByType('horizontal') || ''"
4430
- values="this.getGroupByOptions()"
4430
+ values="this.groupByChoices"
4431
4431
  class="'o-horizontal-group-by'"
4432
4432
  onChange="(value) => this.updateGroupBy('horizontal', value)"
4433
4433
  />
@@ -4436,7 +4436,7 @@
4436
4436
  <span class="w-100">Vertical axis</span>
4437
4437
  <Select
4438
4438
  selectedValue="this.getGroupByType('vertical') || ''"
4439
- values="this.getGroupByOptions()"
4439
+ values="this.groupByChoices"
4440
4440
  class="'o-vertical-group-by'"
4441
4441
  onChange="(value) => this.updateGroupBy('vertical', value)"
4442
4442
  />
@@ -7387,7 +7387,7 @@
7387
7387
  t-on-dblclick.self="this.onDoubleClick"
7388
7388
  t-on-contextmenu.stop.prevent="this.onContextMenu">
7389
7389
  <GridAddRowsFooter
7390
- t-if="!this.env.model.getters.isReadonly()"
7390
+ t-if="this.isFooterVisible"
7391
7391
  t-key="this.env.model.getters.getActiveSheetId()"
7392
7392
  />
7393
7393
  <t t-call-slot="default"/>
@@ -8010,7 +8010,7 @@
8010
8010
  </t>
8011
8011
  <t t-foreach="this.getMenuItems()" t-as="item" t-key="item.id">
8012
8012
  <div
8013
- class="o-chart-menu-item border-0 lh-1 p-1 d-flex align-items-center justify-content-center rounded"
8013
+ class="o-chart-menu-item lh-1 p-1 d-flex align-items-center justify-content-center rounded"
8014
8014
  t-att-title="item.label"
8015
8015
  t-on-click="item.onClick"
8016
8016
  t-att-data-id="item.id">
@@ -8018,8 +8018,8 @@
8018
8018
  </div>
8019
8019
  </t>
8020
8020
  <t t-if="this.isMenuAvailable()">
8021
- <button
8022
- class="o-chart-menu-item btn text-muted lh-1 p-1 fa fa-ellipsis-v"
8021
+ <div
8022
+ class="o-chart-menu-item lh-1 p-1 d-flex align-items-center justify-content-center rounded fa fa-ellipsis-v"
8023
8023
  t-on-click="this.openContextMenu"
8024
8024
  />
8025
8025
  </t>
@@ -34,4 +34,5 @@ export declare class GridOverlay extends Component<SpreadsheetChildEnv> {
34
34
  onContextMenu(ev: MouseEvent): void;
35
35
  private getCartesianCoordinates;
36
36
  private getInteractiveIconAtEvent;
37
+ get isFooterVisible(): boolean;
37
38
  }
@@ -1,5 +1,4 @@
1
1
  import { CalendarChartDefinition, CalendarChartGranularity } from "../../../../types/chart/calendar_chart";
2
- import { ValueAndLabel } from "../../../../types/misc";
3
2
  import { Select } from "../../../select/select";
4
3
  import { GenericChartConfigPanel } from "../building_blocks/generic_side_panel/config_panel";
5
4
  import { ChartSidePanelProps } from "../common";
@@ -16,7 +15,6 @@ export declare class CalendarChartConfigPanel extends GenericChartConfigPanel<Ch
16
15
  value: "year" | "second_number" | "minute_number" | "hour_number" | "day_of_week" | "day_of_month" | "iso_week_number" | "month_number" | "quarter_number";
17
16
  label: string;
18
17
  }[];
19
- getGroupByOptions(): ValueAndLabel[];
20
18
  getGroupByType(currentAxis: "horizontal" | "vertical"): CalendarChartGranularity;
21
19
  updateGroupBy(currentAxis: "horizontal" | "vertical", value: CalendarChartGranularity): void;
22
20
  }
@@ -1,7 +1,7 @@
1
1
  import { Model } from "../../model";
2
2
  import { Component } from "../../owl3_compatibility_layer";
3
3
  import { InformationNotification } from "../../types/env";
4
- import { HeaderGroup, Pixel } from "../../types/misc";
4
+ import { ColorScheme, HeaderGroup, Pixel } from "../../types/misc";
5
5
  import { SpreadsheetChildEnv } from "../../types/spreadsheet_env";
6
6
  import { Store } from "../../types/store_engine";
7
7
  import { BottomBar } from "../bottom_bar/bottom_bar";
@@ -14,6 +14,10 @@ import { SidePanels } from "../side_panel/side_panels/side_panels";
14
14
  import { SmallBottomBar } from "../small_bottom_bar/small_bottom_bar";
15
15
  import { SpreadsheetPrint } from "../spreadsheet_print/spreadsheet_print";
16
16
  import { TopBar } from "../top_bar/top_bar";
17
+ interface State {
18
+ printModeEnabled: boolean;
19
+ colorThemeBeforePrint: ColorScheme;
20
+ }
17
21
  export declare class Spreadsheet extends Component<SpreadsheetChildEnv> {
18
22
  static template: string;
19
23
  protected props: import("@odoo/owl").Props<{
@@ -36,9 +40,7 @@ export declare class Spreadsheet extends Component<SpreadsheetChildEnv> {
36
40
  sidePanel: Store<SidePanelStore>;
37
41
  spreadsheetRef: import("@odoo/owl").Signal<HTMLElement | null>;
38
42
  spreadsheetRect: import("../..").Rect;
39
- state: {
40
- printModeEnabled: boolean;
41
- };
43
+ state: State;
42
44
  private _focusGrid?;
43
45
  private isViewportTooSmall;
44
46
  private notificationStore;
@@ -59,5 +61,8 @@ export declare class Spreadsheet extends Component<SpreadsheetChildEnv> {
59
61
  height: number;
60
62
  };
61
63
  getSpreadSheetClasses(): string;
64
+ enterPrintMode(): void;
62
65
  exitPrintMode(): void;
66
+ get colorScheme(): ColorScheme;
63
67
  }
68
+ export {};
@@ -12,6 +12,7 @@ export declare const FROZEN_PANE_BORDER_COLOR = "#DADFE8";
12
12
  export declare const COMPOSER_ASSISTANT_COLOR = "light-dark(#9B359B, #B972A6)";
13
13
  export declare const COLOR_TRANSPARENT = "#00000000";
14
14
  export declare const TABLE_HOVER_BACKGROUND_COLOR = "#017E8414";
15
+ export declare const DEFAULT_CHART_BACKGROUND_COLOR = "#FFFFFF";
15
16
  export declare const CHART_WATERFALL_POSITIVE_COLOR = "#4EA7F2";
16
17
  export declare const CHART_WATERFALL_NEGATIVE_COLOR = "#EA6175";
17
18
  export declare const CHART_WATERFALL_SUBTOTAL_COLOR = "#AAAAAA";
@@ -19,6 +19,10 @@ export declare function computeTextDimension(context: Canvas2DContext, text: str
19
19
  width: number;
20
20
  height: number;
21
21
  };
22
+ export declare function computeCachedTextDimension(context: Canvas2DContext, text: string, font: string): {
23
+ width: number;
24
+ height: number;
25
+ };
22
26
  export declare function fontSizeInPixels(fontSize: number): number;
23
27
  export declare function computeTextFont(style: Style, fontUnit?: "px" | "pt"): string;
24
28
  export declare function computeTextFontSizeInPixels(style?: Style): number;
@@ -9,7 +9,7 @@ interface CarouselState {
9
9
  export declare class CarouselPlugin extends CorePlugin<CarouselState> implements CarouselState {
10
10
  static getters: readonly ["getCarousel", "doesCarouselExist"];
11
11
  readonly carousels: Record<UID, Record<UID, Carousel | undefined> | undefined>;
12
- allowDispatch(cmd: CoreCommand): CommandResult.Success | CommandResult.InvalidFigureId | CommandResult.DuplicatedFigureId;
12
+ allowDispatch(cmd: CoreCommand): CommandResult.Success | CommandResult.InvalidFigureId | CommandResult.DuplicatedFigureId | CommandResult.ChartDoesNotExist;
13
13
  handle(cmd: CoreCommand): void;
14
14
  doesCarouselExist(figureId: UID): boolean;
15
15
  getCarousel(figureId: UID): Carousel;
@@ -7,7 +7,7 @@ export declare class RangeAdapterPlugin implements CommandHandler<CoreCommand> {
7
7
  private providers;
8
8
  private isAdaptingRanges;
9
9
  constructor(getters: CoreGetters);
10
- static getters: readonly ["copyFormulaStringForSheet", "extendRange", "getRangeString", "getRangeFromSheetXC", "createAdaptedRanges", "getRangeData", "getRangeDataFromXc", "getRangeDataFromZone", "getRangeFromRangeData", "getRangeFromZone", "getRangesUnion", "recomputeRanges", "isRangeValid", "removeRangesSheetPrefix"];
10
+ static getters: readonly ["copyFormulaStringForSheet", "extendRange", "getRangeString", "getRangeFromSheetXC", "clipRangesToSheet", "clipRangeToSheet", "createAdaptedRanges", "getRangeData", "getRangeDataFromXc", "getRangeDataFromZone", "getRangeFromRangeData", "getRangeFromZone", "getRangesUnion", "recomputeRanges", "isRangeValid", "removeRangesSheetPrefix"];
11
11
  allowDispatch(cmd: CoreCommand): CommandResult;
12
12
  beforeHandle(command: Command): void;
13
13
  handle(cmd: CoreCommand): void;
@@ -22,6 +22,8 @@ export declare class RangeAdapterPlugin implements CommandHandler<CoreCommand> {
22
22
  * all ranges
23
23
  */
24
24
  addRangeProvider(provider: RangeProvider["adaptRanges"]): void;
25
+ clipRangeToSheet(range: Range): Range | undefined;
26
+ clipRangesToSheet(ranges: Range[]): Range[];
25
27
  createAdaptedRanges(ranges: Range[], offsetX: number, offsetY: number, sheetId: UID): Range[];
26
28
  /**
27
29
  * Remove the sheet name prefix if a range is part of the given sheet.
@@ -3,7 +3,7 @@ import { Command } from "../../types/commands";
3
3
  import { UID } from "../../types/misc";
4
4
  import { UIPlugin, UIPluginConfig } from "../ui_plugin";
5
5
  export declare class GeoFeaturePlugin extends UIPlugin {
6
- static getters: readonly ["getGeoJsonFeatures", "geoFeatureNameToId", "getGeoChartAvailableRegions", "getAvailableChartRegions"];
6
+ static getters: readonly ["getGeoJsonFeatures", "geoFeatureNameToId", "getGeoChartAvailableRegions", "getAvailableChartRegions", "loadUsedGeoJsonFeatures"];
7
7
  private readonly geoJsonService;
8
8
  private geoJsonCache;
9
9
  /** Stores the initial region of each geo chart at the time of the START command */
@@ -19,5 +19,6 @@ export declare class GeoFeaturePlugin extends UIPlugin {
19
19
  getAvailableChartRegions(chartId: UID): GeoChartRegion[];
20
20
  getGeoJsonFeatures(region: string): GeoJSON.Feature[] | undefined;
21
21
  geoFeatureNameToId(region: string, featureName: string): string | undefined;
22
+ loadUsedGeoJsonFeatures(): Promise<void>;
22
23
  private convertToGeoJson;
23
24
  }
@@ -1,5 +1,5 @@
1
1
  import { Format } from "./format";
2
- import { Border, BorderData, CellPosition, Color, Dimension, HeaderIndex, Pixel, PixelPosition, SetDecimalStep, SortDirection, SortOptions, Style, UID, Zone } from "./misc";
2
+ import { Border, BorderData, CellPosition, Color, ColorScheme, Dimension, HeaderIndex, Pixel, PixelPosition, SetDecimalStep, SortDirection, SortOptions, Style, UID, Zone } from "./misc";
3
3
  import { ChartDefinition } from "./chart/chart";
4
4
  import { ConditionalFormat } from "./conditional_formatting";
5
5
  import { ClipboardPasteOptions, ParsedOsClipboardContentWithImageData } from "./clipboard";
@@ -757,7 +757,7 @@ export interface ToggleCheckboxCommand extends TargetDependentCommand {
757
757
  }
758
758
  export interface UpdateColorSchemeCommand {
759
759
  type: "UPDATE_COLOR_SCHEME";
760
- colorScheme: "light" | "dark";
760
+ colorScheme: ColorScheme;
761
761
  }
762
762
  export type CoreCommand =
763
763
  /** CELLS */
@@ -345,4 +345,5 @@ export interface NamedRange {
345
345
  name: string;
346
346
  range: Range;
347
347
  }
348
+ export type ColorScheme = "light" | "dark";
348
349
  export {};
@@ -5,7 +5,7 @@ import { Currency } from "./currency";
5
5
  import { InformationNotification } from "./env";
6
6
  import { FileStore } from "./files";
7
7
  import { Locale } from "./locale";
8
- import { Color } from "./misc";
8
+ import { Color, ColorScheme } from "./misc";
9
9
  export type Mode = "normal" | "readonly" | "dashboard" | "export_verification";
10
10
  export interface ModelConfig {
11
11
  readonly mode: Mode;
@@ -30,7 +30,7 @@ export interface ModelConfig {
30
30
  readonly notifyUI: (payload: InformationNotification) => void;
31
31
  readonly raiseBlockingErrorUI: (text: string) => void;
32
32
  readonly customColors: Color[];
33
- readonly colorScheme?: "light" | "dark";
33
+ readonly colorScheme?: ColorScheme;
34
34
  }
35
35
  export interface ModelExternalConfig {
36
36
  readonly fileStore?: FileStore;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@odoo/o-spreadsheet",
3
- "version": "19.4.10",
3
+ "version": "19.4.12",
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.47",
144
+ "@odoo/owl": "3.0.0-alpha.49",
145
145
  "bootstrap": "5.3.3",
146
146
  "font-awesome": "^4.7.0",
147
147
  "rbush": "^3.0.1"