@odoo/o-spreadsheet
Version:
A spreadsheet component
183 lines (182 loc) • 10.6 kB
TypeScript
import { Type } from "@odoo/owl";
import { Action, ActionSpec, MenuItemOrSeparator } from "../actions/action";
import { Token } from "../formulas/tokenizer";
import { PivotRuntimeDefinition } from "../helpers/pivot/pivot_runtime_definition";
import { Model } from "../model";
import { AutoCompleteProposal, AutoCompleteProviderDefinition } from "../registries/auto_completes/auto_complete_registry";
import { SidePanelContent } from "../registries/side_panel_registry";
import { ChartColorScale, ChartDefinition, ChartDefinitionWithDataSource, ChartRangeDataSource, ChartStyle, ChartWithAxisDefinition, DataSetStyle, TitleDesign } from "../types/chart/chart";
import { FunnelChartDefinition } from "../types/chart/funnel_chart";
import { GeoChartDefinition } from "../types/chart/geo_chart";
import { TreeMapCategoryColorOptions, TreeMapChartDefinition, TreeMapColorScaleOptions } from "../types/chart/tree_map_chart";
import { DispatchResult } from "../types/commands";
import { ColorScaleThreshold, ConditionalFormat } from "../types/conditional_formatting";
import { DataValidationRule } from "../types/data_validation";
import { InformationNotification } from "../types/env";
import { FigureUI, ResizeDirection } from "../types/figure";
import { FunctionDescription } from "../types/functions";
import { GenericCriterionType } from "../types/generic_criterion";
import { BorderPosition, BorderStyle, CellPosition, Color, ComposerFocusType, CSSProperties, Dimension, GridClickModifiers, HeaderGroup, HeaderIndex, NamedRange, Pixel, Position, SortDirection, UID, Zone } from "../types/misc";
import { PivotCoreDefinition, PivotCoreMeasure, PivotCustomGroupedField, PivotDimension, PivotField, PivotFilter, PivotMeasure, SpreadsheetPivotCoreDefinition } from "../types/pivot";
import { Range } from "../types/range";
import { DOMCoordinates, DOMDimension, Rect } from "../types/rendering";
import { Store } from "../types/store_engine";
import { NotificationStoreMethods } from "../types/stores/notification_store_methods";
import { CoreTable, CriterionFilter, DataFilterValue, Table, TableConfig, TableStyle } from "../types/table";
import type { ComposerSelection } from "./composer/composer/abstract_composer_store";
import type { ContextMenuType } from "./grid/grid";
import type { ZoomedMouseEvent } from "./helpers/zoom";
import type { SidePanelComponentProps } from "./side_panel/side_panel/side_panel_store";
/**
* Validate that a prop is an array, but with a more specific element type than `any[]`.
*/
declare function validateArrayOf<T>(): Type<T[]>;
/**
* Validate that a prop is a record (string-keyed dictionary), but with a more
* specific value type than `any`.
*/
declare function validateRecordOf<T>(): Type<Record<string, T>>;
/**
* Validate that a prop is a `Set`, typed with a specific element type.
*/
declare function validateSetOf<T>(): Type<Set<T>>;
declare function validateRect(): Type<Rect>;
declare function validateBorderPosition(): Type<BorderPosition>;
declare function validateBorderStyle(): Type<BorderStyle>;
declare function validateDOMCoordinates(): Type<DOMCoordinates>;
declare function validateDOMDimension(): Type<DOMDimension>;
declare function validateSortDirection(): Type<SortDirection>;
declare function validateResizeDirection(): Type<ResizeDirection>;
declare function validateComposerFocusType(): Type<ComposerFocusType>;
declare function validateDimension(): Type<Dimension>;
declare function validateContextMenuType(): Type<ContextMenuType>;
/**
* Validate that a prop is a store. Typed as the CQS-wrapped `Store<T>` to
* match what `useStore(...)` returns at the call site.
*/
declare function validateStore<T>(): Type<Store<T>>;
declare function validateFunction<T = () => void>(): Type<T>;
export declare const types: {
function: typeof validateFunction;
ArrayOf: typeof validateArrayOf;
RecordOf: typeof validateRecordOf;
SetOf: typeof validateSetOf;
GenericCriterionType: () => Type<GenericCriterionType>;
UID: () => Type<UID>;
CriterionFilter: () => Type<CriterionFilter>;
CSSProperties: () => Type<CSSProperties>;
ResizeDirection: typeof validateResizeDirection;
FigureUI: () => Type<FigureUI>;
Token: () => Type<Token>;
CellPosition: () => Type<CellPosition>;
AutoCompleteProviderDefinition: () => Type<AutoCompleteProviderDefinition>;
AutoCompleteProposal: () => Type<AutoCompleteProposal>;
FunctionDescription: () => Type<FunctionDescription>;
Rect: typeof validateRect;
Pixel: () => Type<Pixel>;
HeaderIndex: () => Type<HeaderIndex>;
BorderPosition: typeof validateBorderPosition;
BorderStyle: typeof validateBorderStyle;
Color: () => Type<Color>;
ActionSpec: () => Type<ActionSpec>;
DOMCoordinates: typeof validateDOMCoordinates;
DOMDimension: typeof validateDOMDimension;
ComposerFocusType: typeof validateComposerFocusType;
SortDirection: typeof validateSortDirection;
Store: typeof validateStore;
Position: () => Type<Position>;
PivotCoreDefinition: () => Type<PivotCoreDefinition>;
PivotField: () => Type<PivotField>;
PivotDimension: () => Type<PivotDimension>;
PivotMeasure: () => Type<PivotMeasure>;
PivotCoreMeasure: () => Type<PivotCoreMeasure>;
PivotCustomGroupedField: () => Type<PivotCustomGroupedField>;
PivotRuntimeDefinition: () => Type<PivotRuntimeDefinition>;
PivotFilter: () => Type<PivotFilter>;
DataFilterValue: () => Type<DataFilterValue>;
SpreadsheetPivotCoreDefinition: () => Type<SpreadsheetPivotCoreDefinition>;
ComposerSelection: () => Type<ComposerSelection>;
Action: () => Type<Action>;
MenuItemOrSeparator: () => Type<MenuItemOrSeparator>;
Model: () => Type<Model>;
DispatchResult: () => Type<DispatchResult>;
Zone: () => Type<Zone>;
Range: () => Type<Range>;
HeaderGroup: () => Type<HeaderGroup>;
GridClickModifiers: () => Type<GridClickModifiers>;
ZoomedMouseEvent: () => Type<ZoomedMouseEvent<PointerEvent | MouseEvent>>;
ConditionalFormat: () => Type<ConditionalFormat>;
ColorScaleThreshold: () => Type<ColorScaleThreshold>;
Table: () => Type<Table>;
CoreTable: () => Type<CoreTable>;
TableConfig: () => Type<TableConfig>;
TableStyle: () => Type<TableStyle>;
TitleDesign: () => Type<TitleDesign>;
ChartDefinition: () => Type<ChartDefinition<string>>;
ChartDefinitionWithDataSource: () => Type<ChartDefinitionWithDataSource<string>>;
ChartWithAxisDefinition: () => Type<ChartWithAxisDefinition>;
ChartStyle: () => Type<ChartStyle>;
ChartColorScale: () => Type<ChartColorScale>;
ChartRangeDataSource: () => Type<ChartRangeDataSource<string>>;
DataSetStyle: () => Type<DataSetStyle>;
GeoChartDefinition: () => Type<GeoChartDefinition<string>>;
FunnelChartDefinition: () => Type<FunnelChartDefinition<string>>;
TreeMapChartDefinition: () => Type<TreeMapChartDefinition<Range>>;
TreeMapCategoryColorOptions: () => Type<TreeMapCategoryColorOptions>;
TreeMapColorScaleOptions: () => Type<TreeMapColorScaleOptions>;
NamedRange: () => Type<NamedRange>;
DataValidationRule: () => Type<DataValidationRule>;
InformationNotification: () => Type<InformationNotification>;
NotificationStoreMethods: () => Type<NotificationStoreMethods>;
SidePanelContent: () => Type<SidePanelContent>;
SidePanelComponentProps: () => Type<SidePanelComponentProps>;
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">;
Dimension: typeof validateDimension;
ContextMenuType: typeof validateContextMenuType;
and: <T extends any[]>(types: T) => Type<import("@odoo/owl").UnionToIntersection<import("@odoo/owl").StripBrands<T[number]>>>;
any: () => Type<any>;
array: {
(): Type<any[]>;
<T>(): Type<T[]>;
<T>(elementType: T): Type<import("@odoo/owl").StripBrands<T>[]>;
};
boolean: () => Type<boolean>;
constructor: <T extends import("@odoo/owl").Constructor>(constructor: T) => Type<T>;
customValidator: <T>(type: T, validator: (value: import("@odoo/owl").StripBrands<T>) => boolean, errorMessage?: string) => Type<import("@odoo/owl").StripBrands<T>>;
instanceOf: <T extends import("@odoo/owl").Constructor>(constructor: T) => Type<InstanceType<T>>;
literal: <const T extends import("@odoo/owl").LiteralTypes>(literal: T) => Type<T>;
number: <T extends number = number>() => Type<T>;
object: {
(): Type<Record<string, any>>;
<const Keys extends string[]>(keys: Keys): Type<import("@odoo/owl").ResolveOptionalEntries<import("@odoo/owl").KeyedObject<Keys>>>;
<Shape extends {}>(): Type<import("@odoo/owl").ResolveOptionalEntries<Shape>>;
<Shape extends {}>(shape: Shape): Type<import("@odoo/owl").ResolveOptionalEntries<Shape>>;
};
or: <T extends unknown[]>(types: T) => Type<import("@odoo/owl").StripBrands<T[number]>>;
promise: {
(): Type<Promise<void>>;
<T>(type: T): Type<Promise<import("@odoo/owl").StripBrands<T>>>;
};
record: {
(): Type<Record<PropertyKey, any>>;
<V>(valueType: V): Type<Record<PropertyKey, import("@odoo/owl").StripBrands<V>>>;
};
ref: {
(): Type<HTMLElement | null>;
<T extends import("@odoo/owl").Constructor<HTMLElement>>(type: T): Type<InstanceType<T> | null>;
};
selection: <const T extends import("@odoo/owl").LiteralTypes>(literals: T[]) => Type<T>;
signal: {
(): Type<import("@odoo/owl").ReactiveValue<any>>;
<T>(): Type<import("@odoo/owl").ReactiveValue<T>>;
<T>(type: T): Type<import("@odoo/owl").ReactiveValue<import("@odoo/owl").StripBrands<T>>>;
};
strictObject: {
<const Keys extends string[]>(keys: Keys): Type<import("@odoo/owl").ResolveOptionalEntries<import("@odoo/owl").KeyedObject<Keys>>>;
<Shape extends {}>(shape: Shape): Type<import("@odoo/owl").ResolveOptionalEntries<Shape>>;
};
string: <T extends string = string>() => Type<T>;
tuple: <const T extends unknown[]>(types: T) => Type<import("@odoo/owl").StripBrandsAll<T>>;
component: () => Type<typeof import("@odoo/owl").Component>;
};
export {};