import { CorePlugin, Model, UID } from '../../odoo/o-spreadsheet'; import { ChartOdooLinkPlugin, OdooChartCorePlugin, OdooChartCoreViewPlugin } from '../chart'; import { CurrencyPlugin } from '../currency/plugins/currency'; import { AccountingPlugin } from 'addons/spreadsheet_account/static/src/plugins/accounting_plugin'; import { GlobalFiltersCorePlugin, GlobalFiltersCoreViewPlugin } from '../global_filters'; import { ListCorePlugin, ListCoreViewPlugin } from '../list'; import { IrMenuPlugin } from '../ir_ui_menu/ir_ui_menu_plugin'; import { PivotOdooCorePlugin } from '../pivot'; import { PivotCoreGlobalFilterPlugin } from '../pivot/plugins/pivot_core_global_filter_plugin'; type Getters = Model["getters"]; type CoreGetters = CorePlugin["getters"]; /** * Union of all getter names of a plugin. * * e.g. With the following plugin * @example * class MyPlugin { * static getters = [ * "getCell", * "getCellValue", * ] as const; * getCell() { ... } * getCellValue() { ... } * } * type Names = GetterNames * // is equivalent to "getCell" | "getCellValue" */ type GetterNames = Plugin["getters"][number]; /** * Extract getter methods from a plugin, based on its `getters` static array. * @example * class MyPlugin { * static getters = [ * "getCell", * "getCellValue", * ] as const; * getCell() { ... } * getCellValue() { ... } * } * type MyPluginGetters = PluginGetters; * // MyPluginGetters is equivalent to: * // { * // getCell: () => ..., * // getCellValue: () => ..., * // } */ type PluginGetters = Pick, GetterNames>; declare module "@spreadsheet" { /** * Add getters from custom plugins defined in odoo */ interface OdooCoreGetters extends CoreGetters {} interface OdooCoreGetters extends PluginGetters {} interface OdooCoreGetters extends PluginGetters {} interface OdooCoreGetters extends PluginGetters {} interface OdooCoreGetters extends PluginGetters {} interface OdooCoreGetters extends PluginGetters {} interface OdooCoreGetters extends PluginGetters {} interface OdooCoreGetters extends PluginGetters {} interface OdooGetters extends Getters {} interface OdooGetters extends OdooCoreGetters {} interface OdooGetters extends PluginGetters {} interface OdooGetters extends PluginGetters {} interface OdooGetters extends PluginGetters {} interface OdooGetters extends PluginGetters {} interface OdooGetters extends PluginGetters {} }