import { a as TemplateBodyFigure, c as TemplateFilter } from "./types-COJqu9qb.js"; import { t as FigureAggregation } from "./index-CClNdcZI.js"; //#region src/helpers/templates/editor/figures/utils.d.ts /** * Type for orders used in figures, when sorting data * `false` means no sort, `true` means using the default sort */ type FigureOrder = boolean | "asc" | "desc"; //#endregion //#region src/helpers/templates/editor/figures/base.d.ts interface FigureHelper { readonly id: string; readonly type: string; params: Record; slots: Set; readonly hash: string; } interface FigureHelperWithData extends FigureHelper { data: string | unknown[]; } interface FigureHelperWithFilters extends FigureHelper { filters: Map; } //#endregion //#region src/helpers/templates/editor/figures/md.d.ts interface MdFigure extends FigureHelperWithData { readonly type: "md"; data: string; readonly params: Record; } declare function createMdFigureHelper(data?: string, slots?: number[]): MdFigure; declare function createMdFigureHelperFrom(figure: TemplateBodyFigure): MdFigure; declare function mdHelperParamsToJSON(params: MdFigure["params"]): TemplateBodyFigure["params"]; //#endregion //#region src/helpers/templates/editor/figures/metric.d.ts /** * Type for labels used in metrics */ interface MetricLabel { /** * The text of the label (rendered under the value) */ text: string; /** * The aggregation used to fetch data, * if not set, the count of documents will be used */ aggregation?: FigureAggregation; /** * Format options used to format the data */ format?: { type: "date" | "number"; params?: string[]; }; } interface MetricFigureHelper extends FigureHelperWithFilters { readonly type: "metric"; params: { labels: MetricLabel[]; order: FigureOrder; }; } declare function createMetricFigureHelper(labels?: MetricLabel[], filters?: TemplateFilter[], order?: FigureOrder, slots?: number[]): MetricFigureHelper; declare function createMetricFigureHelperFrom(figure: TemplateBodyFigure): MetricFigureHelper; declare function metricHelperParamsToJSON(params: MetricFigureHelper["params"]): TemplateBodyFigure["params"]; declare function getMetricLabelKey(label: MetricLabel): string; declare function getAllMetricLabelKeysOfHelper(figure: MetricFigureHelper): string[]; declare function addMetricLabelOfHelper(figure: MetricFigureHelper, element: MetricLabel, index?: number): MetricFigureHelper; declare function removeMetricLabelOfHelper(figure: MetricFigureHelper, element: MetricLabel): MetricFigureHelper; declare function updateMetricLabelOfHelper(figure: MetricFigureHelper, oldElement: MetricLabel, newElement: MetricLabel): MetricFigureHelper; //#endregion //#region src/helpers/templates/editor/figures/table.d.ts /** * Type for columns used in tables */ interface TableColumn { /** * The name of the column */ header: string; /** * Whether the column is a metric, * can only be used once in a table */ metric?: boolean; /** * The aggregation used to fetch data, * if not set, the "value" of the previous column will be used */ aggregation?: FigureAggregation; /** * The style of the cells in this column */ styles?: { fontStyle?: "normal" | "bold" | "italic" | "bolditalic"; fillColor?: string | [number, number, number]; textColor?: string | [number, number, number]; headerColor?: string | [number, number, number]; halign?: "left" | "center" | "right" | "justify"; valign?: "top" | "middle" | "bottom"; fontSize?: number; lineColor?: string | [number, number, number]; }; } /** * Type for tables */ interface TableFigureHelper extends FigureHelperWithFilters { readonly type: "table"; params: { title: string; columns: TableColumn[]; total?: boolean; order?: FigureOrder; }; } declare function createTableFigureHelper(title?: string, columns?: TableColumn[], total?: boolean, filters?: TemplateFilter[], order?: FigureOrder, slots?: number[]): TableFigureHelper; declare function createTableFigureHelperFrom(figure: TemplateBodyFigure): TableFigureHelper; declare function tableHelperParamsToJSON(params: TableFigureHelper["params"]): TemplateBodyFigure["params"]; declare function getTableColumnKey(column: TableColumn): string; declare function getAllTableColumnKeysOfHelper(figure: TableFigureHelper): string[]; declare function addTableColumnOfHelper(figure: TableFigureHelper, element: TableColumn, index?: number): TableFigureHelper; declare function removeTableColumnOfHelper(figure: TableFigureHelper, element: TableColumn): TableFigureHelper; declare function updateTableColumnOfHelper(figure: TableFigureHelper, oldElement: TableColumn, newElement: TableColumn): TableFigureHelper; //#endregion //#region src/helpers/templates/editor/figures/vega.d.ts /** * Type for layers used in vega */ interface VegaLayer extends Record { /** * The aggregation used to fetch data, * if not set, the "value" of the label (or color if present) layer will be used */ aggregation?: FigureAggregation; /** * The title of the axis */ title?: string; /** * The legend, if `null` no legend will be shown */ legend?: null | { title?: string; }; } /** * Type for data label options */ interface VegaDataLabelOptions { format: "percent" | "numeric"; position?: "out" | "in"; showLabel?: boolean; minValue?: number; } interface VegaFigureHelper extends FigureHelperWithFilters { params: { /** * The title of the figure */ title: string; /** * Whether the axis should be inverted */ invertAxis?: boolean; /** * The label layer of the figure, often used for the x axis */ label: VegaLayer; /** * The value layer of the figure, often used for the y axis */ value: VegaLayer; /** * The color layer of the figure, often used for splitting the value */ color?: VegaLayer; /** * The data label options * * Data labels are displayed on top of the value layer, and show details about values */ dataLabel?: VegaDataLabelOptions; /** * The order of the data in the chart */ order?: FigureOrder; }; } declare function createVegaFigureHelper(type: string, title?: string, label?: VegaLayer, value?: VegaLayer, color?: VegaLayer, dataLabel?: VegaDataLabelOptions, invertAxis?: boolean, filters?: TemplateFilter[], order?: FigureOrder, slots?: number[]): VegaFigureHelper; declare function createVegaFigureHelperFrom(figure: TemplateBodyFigure): VegaFigureHelper; declare function vegaHelperParamsToJSON(params: VegaFigureHelper["params"]): TemplateBodyFigure["params"]; //#endregion //#region src/helpers/templates/editor/figures/index.d.ts type AnyFigureHelper = MdFigure | MetricFigureHelper | TableFigureHelper | VegaFigureHelper; type FigureHelperSet = Map; /** * Create a figure helper * * @param figure The figure object * * @returns The figure helper */ declare function createFigureHelper(type: AnyFigureHelper["type"], filters?: TemplateFilter[], order?: FigureOrder, slots?: number[]): AnyFigureHelper; /** * Create a figure helper from a figure object * * @param figure The figure object * * @returns The figure helper */ declare function createFigureHelperFrom(figure: TemplateBodyFigure): AnyFigureHelper; /** * Create a figure object from a figure helper * * @param figure The figure helper * * @returns The figure object */ declare function figureHelperToJSON(figure: AnyFigureHelper): TemplateBodyFigure; declare function isFigureHelperMarkdown(figure: AnyFigureHelper): figure is MdFigure; declare function isFigureHelperMetric(figure: AnyFigureHelper): figure is MetricFigureHelper; declare function isFigureHelperTable(figure: AnyFigureHelper): figure is TableFigureHelper; declare function isFigureHelperVega(figure: AnyFigureHelper): figure is VegaFigureHelper; //#endregion export { createMetricFigureHelperFrom as A, FigureOrder as B, removeTableColumnOfHelper as C, MetricLabel as D, MetricFigureHelper as E, updateMetricLabelOfHelper as F, MdFigure as I, createMdFigureHelper as L, getMetricLabelKey as M, metricHelperParamsToJSON as N, addMetricLabelOfHelper as O, removeMetricLabelOfHelper as P, createMdFigureHelperFrom as R, getTableColumnKey as S, updateTableColumnOfHelper as T, TableFigureHelper as _, figureHelperToJSON as a, createTableFigureHelperFrom as b, isFigureHelperTable as c, VegaFigureHelper as d, VegaLayer as f, TableColumn as g, vegaHelperParamsToJSON as h, createFigureHelperFrom as i, getAllMetricLabelKeysOfHelper as j, createMetricFigureHelper as k, isFigureHelperVega as l, createVegaFigureHelperFrom as m, FigureHelperSet as n, isFigureHelperMarkdown as o, createVegaFigureHelper as p, createFigureHelper as r, isFigureHelperMetric as s, AnyFigureHelper as t, VegaDataLabelOptions as u, addTableColumnOfHelper as v, tableHelperParamsToJSON as w, getAllTableColumnKeysOfHelper as x, createTableFigureHelper as y, mdHelperParamsToJSON as z }; //# sourceMappingURL=index-BCu4sofV.d.ts.map