@mozaic-ds/angular 2.0.46 → 2.0.48
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/fesm2022/mozaic-ds-angular.mjs +4041 -103
- package/fesm2022/mozaic-ds-angular.mjs.map +1 -1
- package/package.json +1 -1
- package/types/mozaic-ds-angular.d.ts +501 -7
|
@@ -2278,11 +2278,29 @@ interface BulkCopyEvent {
|
|
|
2278
2278
|
selectionMode?: 'rows' | 'cells';
|
|
2279
2279
|
rowSelection?: unknown;
|
|
2280
2280
|
}
|
|
2281
|
+
/**
|
|
2282
|
+
* A single cell change produced by a bulk operation (paste, delete, …).
|
|
2283
|
+
* Values are already coerced to the column's expected type and have passed
|
|
2284
|
+
* `cellEditorValidator`; consumers can persist them as-is.
|
|
2285
|
+
*/
|
|
2286
|
+
interface BulkCellChange {
|
|
2287
|
+
rowIndex: number;
|
|
2288
|
+
rowId: unknown;
|
|
2289
|
+
field: string;
|
|
2290
|
+
oldValue: unknown;
|
|
2291
|
+
newValue: unknown;
|
|
2292
|
+
}
|
|
2281
2293
|
interface BulkPasteEvent {
|
|
2282
2294
|
range: CellRange | null;
|
|
2283
2295
|
data: string[][];
|
|
2284
2296
|
rowIds: unknown[];
|
|
2285
2297
|
fields: string[];
|
|
2298
|
+
/**
|
|
2299
|
+
* Fully resolved per-cell changes applied by the grid (post-coercion,
|
|
2300
|
+
* post-validation). Use this to persist server-side — no need to replicate
|
|
2301
|
+
* the fill logic from `data` vs `range`.
|
|
2302
|
+
*/
|
|
2303
|
+
changes: BulkCellChange[];
|
|
2286
2304
|
selectionMode?: 'rows' | 'cells';
|
|
2287
2305
|
rowSelection?: unknown;
|
|
2288
2306
|
}
|
|
@@ -2310,6 +2328,11 @@ interface BulkDeleteEvent {
|
|
|
2310
2328
|
cellCount: number;
|
|
2311
2329
|
rowIds: unknown[];
|
|
2312
2330
|
fields: string[];
|
|
2331
|
+
/**
|
|
2332
|
+
* Fully resolved per-cell changes applied by the grid (post-coercion,
|
|
2333
|
+
* post-validation). Use this to persist server-side.
|
|
2334
|
+
*/
|
|
2335
|
+
changes: BulkCellChange[];
|
|
2313
2336
|
selectionMode?: 'rows' | 'cells';
|
|
2314
2337
|
rowSelection?: unknown;
|
|
2315
2338
|
}
|
|
@@ -2450,6 +2473,16 @@ interface ColumnDef<T = unknown> {
|
|
|
2450
2473
|
filterTemplate?: TemplateRef<unknown>;
|
|
2451
2474
|
/** Validation function for cell values. Returns CellError or null. */
|
|
2452
2475
|
cellValidator?: (value: unknown, row: T) => CellError | null;
|
|
2476
|
+
/**
|
|
2477
|
+
* Enables spreadsheet-style formulas for this column. Setting this to
|
|
2478
|
+
* `true` implies `editable: true` (users need to type the formula). When
|
|
2479
|
+
* the committed value starts with `=`, it is routed to the `FormulaEngine`
|
|
2480
|
+
* and the evaluated result is rendered in place of the raw formula text.
|
|
2481
|
+
*
|
|
2482
|
+
* Requires the grid-level `formulas` input to be `true` and the row to
|
|
2483
|
+
* expose a stable id via `rowIdField`.
|
|
2484
|
+
*/
|
|
2485
|
+
allowFormula?: boolean;
|
|
2453
2486
|
}
|
|
2454
2487
|
interface ColumnStateEntry {
|
|
2455
2488
|
field: string;
|
|
@@ -2695,6 +2728,10 @@ declare class GridStateManager<T = unknown> {
|
|
|
2695
2728
|
readonly draggingColumn: _angular_core.WritableSignal<string | null>;
|
|
2696
2729
|
readonly dropIndicatorIndex: _angular_core.WritableSignal<number | null>;
|
|
2697
2730
|
readonly cellEditState: _angular_core.WritableSignal<CellEditState>;
|
|
2731
|
+
/** `true` while the user is editing a formula inside the top formula bar
|
|
2732
|
+
* (outside any cell). Consumed by `FormulaEngine.isFormulaEditActive`
|
|
2733
|
+
* so headers show column-letter badges during bar-driven edits too. */
|
|
2734
|
+
readonly formulaBarEditingActive: _angular_core.WritableSignal<boolean>;
|
|
2698
2735
|
readonly visibleColumns: _angular_core.Signal<ColumnStateEntry[]>;
|
|
2699
2736
|
readonly pinnedLeftColumns: _angular_core.Signal<ColumnStateEntry[]>;
|
|
2700
2737
|
readonly unpinnedColumns: _angular_core.Signal<ColumnStateEntry[]>;
|
|
@@ -2720,6 +2757,8 @@ declare class GridStateManager<T = unknown> {
|
|
|
2720
2757
|
readonly leadingColumnSpacer: _angular_core.Signal<number>;
|
|
2721
2758
|
readonly trailingColumnSpacer: _angular_core.Signal<number>;
|
|
2722
2759
|
readonly columnDefMap: _angular_core.Signal<Map<string, ColumnDef<T>>>;
|
|
2760
|
+
/** `true` when at least one column declares `allowFormula: true`. */
|
|
2761
|
+
readonly hasFormulaColumns: _angular_core.Signal<boolean>;
|
|
2723
2762
|
readonly gridTemplateColumns: _angular_core.Signal<string>;
|
|
2724
2763
|
readonly totalContentWidth: _angular_core.Signal<number>;
|
|
2725
2764
|
readonly totalPages: _angular_core.Signal<number>;
|
|
@@ -2767,6 +2806,293 @@ declare class RowSelectionEngine<T = unknown> {
|
|
|
2767
2806
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<RowSelectionEngine<any>>;
|
|
2768
2807
|
}
|
|
2769
2808
|
|
|
2809
|
+
/**
|
|
2810
|
+
* Public types for the formula engine. These are the only symbols consumers
|
|
2811
|
+
* of the grid need to interact with. The parser / evaluator / DAG live in
|
|
2812
|
+
* `features/formula/` and expose the public surface through `FormulaEngine`.
|
|
2813
|
+
*
|
|
2814
|
+
* Shape overview:
|
|
2815
|
+
* - `CellAddress` — stable (rowId, field) tuple.
|
|
2816
|
+
* - `FormulaValue` — tagged union of numbers, strings, booleans, empty
|
|
2817
|
+
* and errors. Errors propagate through operators.
|
|
2818
|
+
* - `FormulaError` — Excel-compatible error codes + `#PARSE!`.
|
|
2819
|
+
* - `FormulaFunction*` — registration shape for built-in + custom funcs.
|
|
2820
|
+
* - `FormulaChange*` / `FormulaError*` — events emitted by the grid.
|
|
2821
|
+
*/
|
|
2822
|
+
/** Stable cell identifier, resistant to sort/filter/pagination. */
|
|
2823
|
+
interface CellAddress {
|
|
2824
|
+
rowId: string | number;
|
|
2825
|
+
field: string;
|
|
2826
|
+
}
|
|
2827
|
+
/** Excel-compatible error codes, plus mozaic-specific `#PARSE!`. */
|
|
2828
|
+
type FormulaError = '#DIV/0!' | '#VALUE!' | '#REF!' | '#NAME?' | '#NUM!' | '#N/A' | '#CYCLE!' | '#PARSE!';
|
|
2829
|
+
/**
|
|
2830
|
+
* Tagged union for any value that can appear as a formula operand or result.
|
|
2831
|
+
* `empty` represents a cell with no source value (distinct from the empty
|
|
2832
|
+
* string) and coerces to 0 in arithmetic contexts, `""` in textual ones.
|
|
2833
|
+
*/
|
|
2834
|
+
type FormulaValue = {
|
|
2835
|
+
kind: 'number';
|
|
2836
|
+
value: number;
|
|
2837
|
+
} | {
|
|
2838
|
+
kind: 'string';
|
|
2839
|
+
value: string;
|
|
2840
|
+
} | {
|
|
2841
|
+
kind: 'boolean';
|
|
2842
|
+
value: boolean;
|
|
2843
|
+
} | {
|
|
2844
|
+
kind: 'empty';
|
|
2845
|
+
} | {
|
|
2846
|
+
kind: 'error';
|
|
2847
|
+
error: FormulaError;
|
|
2848
|
+
};
|
|
2849
|
+
/**
|
|
2850
|
+
* Context passed to every function implementation. Keeps evaluation
|
|
2851
|
+
* side-effect free: the engine owns the cell store and only exposes a
|
|
2852
|
+
* `resolveRef` primitive. Range expansion is handled by the engine before
|
|
2853
|
+
* the function is invoked, so implementations receive a flat value array.
|
|
2854
|
+
*/
|
|
2855
|
+
interface FormulaEvalContext {
|
|
2856
|
+
/** Current cell being evaluated (used for diagnostics only). */
|
|
2857
|
+
readonly addr?: CellAddress;
|
|
2858
|
+
/**
|
|
2859
|
+
* Resolve a long-form reference. Returns `#REF!` when the target is
|
|
2860
|
+
* missing (column removed, row deleted). The engine is responsible for
|
|
2861
|
+
* cycle protection — functions must not worry about recursion.
|
|
2862
|
+
*/
|
|
2863
|
+
resolveRef(target: CellAddress): FormulaValue;
|
|
2864
|
+
/** Active locale, used by date/text helpers that are locale-aware. */
|
|
2865
|
+
readonly locale: 'en' | 'fr';
|
|
2866
|
+
}
|
|
2867
|
+
/** Arity constraint for a function registration. */
|
|
2868
|
+
type FormulaArity = number | 'variadic' | readonly [min: number, max: number];
|
|
2869
|
+
/**
|
|
2870
|
+
* Human-readable metadata shown in the autocomplete panel. When absent, the
|
|
2871
|
+
* suggestion listing falls back to the function name only.
|
|
2872
|
+
*/
|
|
2873
|
+
interface FormulaFunctionDocs {
|
|
2874
|
+
/** Canonical signature string, e.g. `SUM(number1, [number2, ...])`. */
|
|
2875
|
+
readonly signature: string;
|
|
2876
|
+
/** One-line summary — displayed next to the signature in FR by default. */
|
|
2877
|
+
readonly summary: string;
|
|
2878
|
+
}
|
|
2879
|
+
interface FormulaFunctionImpl {
|
|
2880
|
+
/** Number of arguments accepted. */
|
|
2881
|
+
readonly arity: FormulaArity;
|
|
2882
|
+
/**
|
|
2883
|
+
* Whether the function accepts a range argument (e.g. `SUM(A1:B3)`).
|
|
2884
|
+
* When `true`, each range is flattened into the `args` array in
|
|
2885
|
+
* row-major order. When `false`, passing a range yields `#VALUE!`.
|
|
2886
|
+
*
|
|
2887
|
+
* Defaults to `false`.
|
|
2888
|
+
*/
|
|
2889
|
+
readonly acceptsRange?: boolean;
|
|
2890
|
+
/** Optional documentation — consumed by the editor's autocomplete panel. */
|
|
2891
|
+
readonly docs?: FormulaFunctionDocs;
|
|
2892
|
+
/** Evaluate the function. Must be pure (no I/O, no mutation). */
|
|
2893
|
+
evaluate(args: FormulaValue[], ctx: FormulaEvalContext): FormulaValue;
|
|
2894
|
+
}
|
|
2895
|
+
/** Lookup table of function name (uppercase) → implementation. */
|
|
2896
|
+
type FormulaFunctionRegistry = Readonly<Record<string, FormulaFunctionImpl>>;
|
|
2897
|
+
/**
|
|
2898
|
+
* Source for storing formulas externally (instead of serialising the raw
|
|
2899
|
+
* formula into the row's field). Mirror of AG-Grid's `formulaDataSource`.
|
|
2900
|
+
*/
|
|
2901
|
+
interface FormulaDataSource {
|
|
2902
|
+
getFormula(addr: CellAddress): string | undefined;
|
|
2903
|
+
setFormula(addr: CellAddress, formula: string | undefined): void;
|
|
2904
|
+
/** Optional bulk hydration — useful for persistence layers. */
|
|
2905
|
+
hydrate?(entries: Iterable<{
|
|
2906
|
+
addr: CellAddress;
|
|
2907
|
+
formula: string;
|
|
2908
|
+
}>): void;
|
|
2909
|
+
}
|
|
2910
|
+
interface FormulaChangeEvent {
|
|
2911
|
+
addr: CellAddress;
|
|
2912
|
+
/** Canonical long-form formula (references keyed by rowId/field). */
|
|
2913
|
+
formula: string;
|
|
2914
|
+
/** Last evaluated value after the change. */
|
|
2915
|
+
evaluated: FormulaValue;
|
|
2916
|
+
}
|
|
2917
|
+
interface FormulaErrorEvent {
|
|
2918
|
+
addr: CellAddress;
|
|
2919
|
+
formula: string;
|
|
2920
|
+
error: FormulaError;
|
|
2921
|
+
}
|
|
2922
|
+
/** Factory helpers for callers that prefer not to build literals by hand. */
|
|
2923
|
+
declare const FormulaValues: {
|
|
2924
|
+
readonly number: (value: number) => FormulaValue;
|
|
2925
|
+
readonly string: (value: string) => FormulaValue;
|
|
2926
|
+
readonly boolean: (value: boolean) => FormulaValue;
|
|
2927
|
+
readonly empty: () => FormulaValue;
|
|
2928
|
+
readonly error: (error: FormulaError) => FormulaValue;
|
|
2929
|
+
};
|
|
2930
|
+
/** Narrow a value to a number, following Excel coercion rules. */
|
|
2931
|
+
declare function toNumber(v: FormulaValue): number | FormulaError;
|
|
2932
|
+
/** Narrow a value to a string, following Excel coercion rules. */
|
|
2933
|
+
declare function toStringValue(v: FormulaValue): string | FormulaError;
|
|
2934
|
+
/** Narrow a value to a boolean, following Excel coercion rules. */
|
|
2935
|
+
declare function toBoolean(v: FormulaValue): boolean | FormulaError;
|
|
2936
|
+
/** Returns the first error found in the given values, or `null`. */
|
|
2937
|
+
declare function firstError(values: readonly FormulaValue[]): FormulaError | null;
|
|
2938
|
+
|
|
2939
|
+
/**
|
|
2940
|
+
* Maps structured refs (A1-backed, field-keyed) to / from long-form
|
|
2941
|
+
* `CellAddress` tuples, and converts formula *source strings* between the
|
|
2942
|
+
* A1 edit surface and the `REF(COLUMN("…"),ROW(N))` storage form.
|
|
2943
|
+
*
|
|
2944
|
+
* The mapper is the only component aware of the grid's current column
|
|
2945
|
+
* order — every other layer works exclusively with addresses, so reordering
|
|
2946
|
+
* columns or renaming a field's display label never breaks a stored formula.
|
|
2947
|
+
*
|
|
2948
|
+
* Surface round-trip:
|
|
2949
|
+
*
|
|
2950
|
+
* Editor types → a1ToLongForm(ctx) → REF(COLUMN(…),ROW(…)) (stored)
|
|
2951
|
+
* Stored REF long-form → longFormToA1(ctx) → A1 (displayed)
|
|
2952
|
+
*
|
|
2953
|
+
* The mapper is intentionally stateless and receives its dependencies
|
|
2954
|
+
* (fields list + row id list) through the method parameters. This keeps
|
|
2955
|
+
* it unit-testable without instantiating the whole grid.
|
|
2956
|
+
*/
|
|
2957
|
+
|
|
2958
|
+
interface RefMapperContext {
|
|
2959
|
+
/**
|
|
2960
|
+
* Ordered list of column fields that can participate in formulas. Used
|
|
2961
|
+
* for A1 letter ↔ field conversion and for existence checks (an unknown
|
|
2962
|
+
* field yields `#REF!`).
|
|
2963
|
+
*/
|
|
2964
|
+
readonly fields: readonly string[];
|
|
2965
|
+
/**
|
|
2966
|
+
* Row identifiers in display order. Index 0 = row `1` in the user-facing
|
|
2967
|
+
* surface syntax. For grids in server mode, callers typically provide the
|
|
2968
|
+
* *currently loaded* subset — unresolved references surface as `#REF!`
|
|
2969
|
+
* which is the expected behaviour for page-scoped formulas.
|
|
2970
|
+
*/
|
|
2971
|
+
readonly rowIds: readonly (string | number)[];
|
|
2972
|
+
/**
|
|
2973
|
+
* Row id of the formula being resolved. The editor-side A1 helpers use
|
|
2974
|
+
* this to detect same-row refs (so the display can be relative by
|
|
2975
|
+
* default).
|
|
2976
|
+
*/
|
|
2977
|
+
readonly currentRowId?: string | number;
|
|
2978
|
+
}
|
|
2979
|
+
/** `(addr) → "A1"` using the current column order. */
|
|
2980
|
+
declare function addressToA1(addr: CellAddress, ctx: RefMapperContext): string | undefined;
|
|
2981
|
+
|
|
2982
|
+
/**
|
|
2983
|
+
* `FormulaEngine` — grid-scoped service that owns every formula cell, the
|
|
2984
|
+
* dependency DAG linking them, and the evaluator that turns stored
|
|
2985
|
+
* formulas into `FormulaValue`s.
|
|
2986
|
+
*
|
|
2987
|
+
* Responsibilities (Phase 1):
|
|
2988
|
+
* - Parse + resolve a raw formula when the user commits an edit.
|
|
2989
|
+
* - Update the dependency graph and detect cycles (`#CYCLE!`).
|
|
2990
|
+
* - Re-evaluate the mutated cell and every descendant in topological order.
|
|
2991
|
+
* - Expose a `values` signal the grid renders against.
|
|
2992
|
+
* - Provide an explicit `invalidate(addr)` so inline-edit can refresh
|
|
2993
|
+
* dependents after a *non-formula* source cell changes — avoiding a
|
|
2994
|
+
* blanket re-eval of the whole dataset.
|
|
2995
|
+
*
|
|
2996
|
+
* Out of scope (Phase ≥ 2):
|
|
2997
|
+
* - Editor component + autocomplete (uses `longFormToA1` under the hood).
|
|
2998
|
+
* - Clipboard / fill-handle rebasing of relative refs.
|
|
2999
|
+
* - History integration (undo/redo of formula mutations).
|
|
3000
|
+
*/
|
|
3001
|
+
|
|
3002
|
+
declare class FormulaEngine<T = unknown> {
|
|
3003
|
+
private readonly state;
|
|
3004
|
+
private readonly cells;
|
|
3005
|
+
private readonly dag;
|
|
3006
|
+
/** Last-evaluated values keyed by `rowId|field`. */
|
|
3007
|
+
private readonly valuesSignal;
|
|
3008
|
+
/** Function registry — consumers can replace via `setFunctions`. */
|
|
3009
|
+
private functions;
|
|
3010
|
+
/** Active locale for the parser/evaluator. */
|
|
3011
|
+
private locale;
|
|
3012
|
+
/** Snapshot of all evaluated formula values. Consumers read by key. */
|
|
3013
|
+
readonly values: Signal<ReadonlyMap<string, FormulaValue>>;
|
|
3014
|
+
/** Whether any formula is currently tracked. */
|
|
3015
|
+
readonly hasAnyFormula: Signal<boolean>;
|
|
3016
|
+
/**
|
|
3017
|
+
* `true` when the user is currently editing a cell whose column has
|
|
3018
|
+
* `allowFormula: true`. The grid's header uses this to surface the
|
|
3019
|
+
* structured-ref column badges (`[price]`, `[qty]`, …) above each
|
|
3020
|
+
* header, matching what the user types in their formula.
|
|
3021
|
+
*/
|
|
3022
|
+
readonly isFormulaEditActive: Signal<boolean>;
|
|
3023
|
+
/** Merge / replace the function registry (called once at grid init). */
|
|
3024
|
+
setFunctions(functions: FormulaFunctionRegistry): void;
|
|
3025
|
+
/** Read-only view of the current function registry — used by the editor's
|
|
3026
|
+
* autocomplete panel to enumerate available names + their docs. */
|
|
3027
|
+
getFunctions(): FormulaFunctionRegistry;
|
|
3028
|
+
setLocale(locale: 'en' | 'fr'): void;
|
|
3029
|
+
hasFormula(addr: CellAddress): boolean;
|
|
3030
|
+
/** Raw formula string, or `undefined` when none is stored. */
|
|
3031
|
+
getFormula(addr: CellAddress): string | undefined;
|
|
3032
|
+
/** Last-evaluated value, or `undefined` when no formula is stored. */
|
|
3033
|
+
valueAt(addr: CellAddress): FormulaValue | undefined;
|
|
3034
|
+
/**
|
|
3035
|
+
* Formula re-presented as A1 surface syntax for the current column /
|
|
3036
|
+
* row order. Returns `undefined` when the cell has no formula. Used by
|
|
3037
|
+
* the editor when opening a cell for edit.
|
|
3038
|
+
*/
|
|
3039
|
+
displayFormula(addr: CellAddress): string | undefined;
|
|
3040
|
+
/**
|
|
3041
|
+
* Registers or updates a formula at `addr`. Returns the freshly-computed
|
|
3042
|
+
* value. Invalid formulas are stored with their error as value so the
|
|
3043
|
+
* grid can render `#PARSE!` / `#REF!` etc. instead of silently dropping.
|
|
3044
|
+
*/
|
|
3045
|
+
set(addr: CellAddress, rawFormula: string): FormulaValue;
|
|
3046
|
+
/** Removes the formula at `addr`. Descendants are re-evaluated. */
|
|
3047
|
+
remove(addr: CellAddress): void;
|
|
3048
|
+
/**
|
|
3049
|
+
* Notifies the engine that a non-formula cell changed. Only dependents
|
|
3050
|
+
* are re-evaluated — this is the hook used by `InlineEditEngine` after
|
|
3051
|
+
* committing a plain value edit.
|
|
3052
|
+
*/
|
|
3053
|
+
invalidate(addr: CellAddress): void;
|
|
3054
|
+
/** Wipes every formula / value. */
|
|
3055
|
+
clear(): void;
|
|
3056
|
+
/**
|
|
3057
|
+
* Reconciles the engine against `sourceData()`: any cell whose column
|
|
3058
|
+
* declares `allowFormula: true` and whose value is a `=…` string is
|
|
3059
|
+
* registered (or updated). Cells previously registered but no longer
|
|
3060
|
+
* present (row removed, value changed to a literal) are dropped.
|
|
3061
|
+
*
|
|
3062
|
+
* Designed to be called from a grid-level effect tracking
|
|
3063
|
+
* `(formulas, sourceData, columnDefMap)` so that formulas baked into
|
|
3064
|
+
* the initial dataset are evaluated on first render — without it, the
|
|
3065
|
+
* engine would only learn about a formula after the user committed an
|
|
3066
|
+
* inline edit on it.
|
|
3067
|
+
*
|
|
3068
|
+
* The reconciliation is incremental: identical formula strings short-
|
|
3069
|
+
* circuit (no re-parse, no re-eval) so the call is cheap on stable data.
|
|
3070
|
+
*/
|
|
3071
|
+
syncFromSource(allowFormula: (field: string) => boolean): void;
|
|
3072
|
+
/**
|
|
3073
|
+
* Re-parses every stored formula so refs pick up the latest column
|
|
3074
|
+
* order / row list. Called by the grid shell when visibility or row
|
|
3075
|
+
* identity changes (reorder, filter flip, …).
|
|
3076
|
+
*/
|
|
3077
|
+
rebuild(): void;
|
|
3078
|
+
private refMapperContext;
|
|
3079
|
+
private storeError;
|
|
3080
|
+
/**
|
|
3081
|
+
* Evaluate the given seeds and every descendant in topological order.
|
|
3082
|
+
* Each node is first checked for cycle participation — any node inside
|
|
3083
|
+
* a cycle reports `#CYCLE!` without attempting evaluation (which would
|
|
3084
|
+
* recurse through the cached values and either spin or yield garbage).
|
|
3085
|
+
*/
|
|
3086
|
+
private revalidateFrom;
|
|
3087
|
+
private makeEvalContext;
|
|
3088
|
+
/** Resolve a reference: formula cell → cached value, else source data. */
|
|
3089
|
+
private resolveRef;
|
|
3090
|
+
private readSourceValue;
|
|
3091
|
+
private commitValues;
|
|
3092
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormulaEngine<any>, never>;
|
|
3093
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<FormulaEngine<any>>;
|
|
3094
|
+
}
|
|
3095
|
+
|
|
2770
3096
|
interface GridPlugin {
|
|
2771
3097
|
name: string;
|
|
2772
3098
|
init(state: GridStateManager<never>): void;
|
|
@@ -2837,6 +3163,8 @@ declare class MozGridComponent<T = unknown> {
|
|
|
2837
3163
|
private readonly historyEngine;
|
|
2838
3164
|
private readonly groupEngine;
|
|
2839
3165
|
private readonly filterEngine;
|
|
3166
|
+
protected readonly formulaEngine: FormulaEngine<T>;
|
|
3167
|
+
private readonly refHighlight;
|
|
2840
3168
|
private readonly persistenceEngine;
|
|
2841
3169
|
private readonly exportEngine;
|
|
2842
3170
|
private readonly validationEngine;
|
|
@@ -2862,6 +3190,12 @@ declare class MozGridComponent<T = unknown> {
|
|
|
2862
3190
|
readonly rowSelection: _angular_core.InputSignal<boolean>;
|
|
2863
3191
|
readonly expandable: _angular_core.InputSignal<boolean>;
|
|
2864
3192
|
readonly rowIdField: _angular_core.InputSignal<string>;
|
|
3193
|
+
/**
|
|
3194
|
+
* Enables the spreadsheet-style formula engine. When `true`, any cell
|
|
3195
|
+
* committed with a leading `=` in a column declaring `allowFormula: true`
|
|
3196
|
+
* is routed to `FormulaEngine` and its evaluated value is rendered.
|
|
3197
|
+
*/
|
|
3198
|
+
readonly formulas: _angular_core.InputSignal<boolean>;
|
|
2865
3199
|
readonly detailTemplate: _angular_core.InputSignal<TemplateRef<unknown> | null>;
|
|
2866
3200
|
readonly fullscreen: _angular_core.InputSignal<boolean>;
|
|
2867
3201
|
readonly reorderable: _angular_core.InputSignal<boolean>;
|
|
@@ -2945,6 +3279,39 @@ declare class MozGridComponent<T = unknown> {
|
|
|
2945
3279
|
protected readonly selectionTotalCount: _angular_core.Signal<number>;
|
|
2946
3280
|
protected readonly showPagination: _angular_core.Signal<boolean>;
|
|
2947
3281
|
protected readonly showInfiniteScrollLoader: _angular_core.Signal<boolean>;
|
|
3282
|
+
/** Focused cell coord picked up by the formula bar — falls back to the
|
|
3283
|
+
* selected cell so the bar stays populated after focus is lost (e.g.
|
|
3284
|
+
* the user clicked outside to dismiss an overlay). */
|
|
3285
|
+
private readonly formulaBarCoord;
|
|
3286
|
+
/** Snapshot coord captured at edit entry — kept as a signal so the
|
|
3287
|
+
* bar's address reads from it reactively and stays pinned to the
|
|
3288
|
+
* original cell even when the user clicks elsewhere to pick refs. */
|
|
3289
|
+
private readonly formulaBarActiveCoord;
|
|
3290
|
+
/** A1 address (`A5`, `$A$5`) of the formula-bar target cell. While the
|
|
3291
|
+
* bar is editing the address stays pinned to the snapshot so ref
|
|
3292
|
+
* picking doesn't visually jump the label around. */
|
|
3293
|
+
protected readonly formulaBarAddress: _angular_core.Signal<string>;
|
|
3294
|
+
/** Formula source if the target cell holds one, otherwise the displayed
|
|
3295
|
+
* value as a string. Mirrors Excel's formula-bar behaviour. */
|
|
3296
|
+
protected readonly formulaBarContent: _angular_core.Signal<string>;
|
|
3297
|
+
/** `true` while the user is editing in the formula bar (mounts the
|
|
3298
|
+
* full-featured formula editor with ref highlights + autocomplete). */
|
|
3299
|
+
protected readonly formulaBarEditing: _angular_core.WritableSignal<boolean>;
|
|
3300
|
+
/** Live draft while the formula-bar input is focused. `null` means
|
|
3301
|
+
* "not editing" and the input mirrors `formulaBarContent()`. */
|
|
3302
|
+
protected readonly formulaBarDraft: _angular_core.WritableSignal<string | null>;
|
|
3303
|
+
/** Snapshot of the cell targeted when the formula bar gained focus.
|
|
3304
|
+
* Needed because blur fires *after* the click that moved the
|
|
3305
|
+
* selection elsewhere — without this we'd commit into the new cell. */
|
|
3306
|
+
private formulaBarEditSnapshot;
|
|
3307
|
+
/** Value shown in the bar input — draft while editing, committed value otherwise. */
|
|
3308
|
+
protected readonly formulaBarDisplay: _angular_core.Signal<string>;
|
|
3309
|
+
/** Address of the cell the formula bar is editing (for `@row`
|
|
3310
|
+
* highlighting inside the embedded editor). Reads from the snapshot
|
|
3311
|
+
* so it stays stable while the user clicks other cells to pick refs. */
|
|
3312
|
+
protected readonly formulaBarEditingAddr: _angular_core.Signal<CellAddress | null>;
|
|
3313
|
+
/** `true` when the target cell sits in an editable column. */
|
|
3314
|
+
protected readonly formulaBarEditable: _angular_core.Signal<boolean>;
|
|
2948
3315
|
private columnsInitialized;
|
|
2949
3316
|
private stateRestored;
|
|
2950
3317
|
private documentMouseUpHandler;
|
|
@@ -2973,6 +3340,12 @@ declare class MozGridComponent<T = unknown> {
|
|
|
2973
3340
|
private resetInfiniteScrollIfActive;
|
|
2974
3341
|
private refocusGrid;
|
|
2975
3342
|
onMouseUp(): void;
|
|
3343
|
+
/**
|
|
3344
|
+
* Shifts a formula's relative refs by the given (row, col) delta when the
|
|
3345
|
+
* value is a formula string dropped on a new cell during a fill. Non-formula
|
|
3346
|
+
* values are returned as-is so downstream code can still see the raw value.
|
|
3347
|
+
*/
|
|
3348
|
+
private shiftFormulaForFill;
|
|
2976
3349
|
/**
|
|
2977
3350
|
* Maps a display row index (from displayRow.index) to the actual index in
|
|
2978
3351
|
* sourceData(). When grouping or sorting is active the display index doesn't
|
|
@@ -3004,6 +3377,27 @@ declare class MozGridComponent<T = unknown> {
|
|
|
3004
3377
|
onGroupClick(): void;
|
|
3005
3378
|
private applyGroupResult;
|
|
3006
3379
|
onKeyboardShortcutsClick(): void;
|
|
3380
|
+
/** Clicking the readonly preview flips the bar into edit mode: we mount
|
|
3381
|
+
* the full formula editor on the next tick (it auto-focuses) and
|
|
3382
|
+
* snapshot the target cell so blur-ordering races can't mis-route
|
|
3383
|
+
* the commit to a different row. */
|
|
3384
|
+
onFormulaBarInputFocus(): void;
|
|
3385
|
+
onFormulaBarEditorChange(value: string): void;
|
|
3386
|
+
onFormulaBarEditorCommit(): void;
|
|
3387
|
+
onFormulaBarEditorCancel(): void;
|
|
3388
|
+
/** Commit-on-outside-focus: when the user tabs or clicks truly away
|
|
3389
|
+
* from the bar (not onto a grid cell — cells aren't focusable so they
|
|
3390
|
+
* don't steal focus), persist the draft. */
|
|
3391
|
+
onFormulaBarWrapperFocusout(event: FocusEvent): void;
|
|
3392
|
+
private exitFormulaBarEdit;
|
|
3393
|
+
private commitFormulaBar;
|
|
3394
|
+
/**
|
|
3395
|
+
* Convert a formula-bar A1 draft to REF long-form storage. Kept as a
|
|
3396
|
+
* member so it can re-use the grid's reactive context without threading
|
|
3397
|
+
* `fields` / `rowIds` through every caller.
|
|
3398
|
+
*/
|
|
3399
|
+
private a1FormulaToStorage;
|
|
3400
|
+
onFormulaReferenceClick(): void;
|
|
3007
3401
|
private static readonly DENSITY_ROW_HEIGHT;
|
|
3008
3402
|
onSettingsClick(): void;
|
|
3009
3403
|
private applySettings;
|
|
@@ -3013,6 +3407,12 @@ declare class MozGridComponent<T = unknown> {
|
|
|
3013
3407
|
private getRangeFields;
|
|
3014
3408
|
private getRowSelectionIds;
|
|
3015
3409
|
private getAllVisibleFields;
|
|
3410
|
+
/**
|
|
3411
|
+
* Resolves a list of internal `HistoryCellChange` records into the public
|
|
3412
|
+
* `BulkCellChange[]` shape exposed on bulk events. Looks up each row's
|
|
3413
|
+
* configured id so consumers can persist changes without a second pass.
|
|
3414
|
+
*/
|
|
3415
|
+
private toBulkCellChanges;
|
|
3016
3416
|
private clearSelectionAndCloseBar;
|
|
3017
3417
|
onBulkEdit(): void;
|
|
3018
3418
|
onBulkCopy(): void;
|
|
@@ -3025,7 +3425,7 @@ declare class MozGridComponent<T = unknown> {
|
|
|
3025
3425
|
private deleteSelectedRows;
|
|
3026
3426
|
private coerceAndValidate;
|
|
3027
3427
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MozGridComponent<any>, never>;
|
|
3028
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MozGridComponent<any>, "moz-grid", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "totalItems": { "alias": "totalItems"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "rowSelection": { "alias": "rowSelection"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "rowIdField": { "alias": "rowIdField"; "required": false; "isSignal": true; }; "detailTemplate": { "alias": "detailTemplate"; "required": false; "isSignal": true; }; "fullscreen": { "alias": "fullscreen"; "required": false; "isSignal": true; }; "reorderable": { "alias": "reorderable"; "required": false; "isSignal": true; }; "stateKey": { "alias": "stateKey"; "required": false; "isSignal": true; }; "emptyDataTitle": { "alias": "emptyDataTitle"; "required": false; "isSignal": true; }; "emptyDataDescription": { "alias": "emptyDataDescription"; "required": false; "isSignal": true; }; "noResultsTitle": { "alias": "noResultsTitle"; "required": false; "isSignal": true; }; "noResultsDescription": { "alias": "noResultsDescription"; "required": false; "isSignal": true; }; "noResultsActionLabel": { "alias": "noResultsActionLabel"; "required": false; "isSignal": true; }; "exportable": { "alias": "exportable"; "required": false; "isSignal": true; }; "horizontalVirtualScroll": { "alias": "horizontalVirtualScroll"; "required": false; "isSignal": true; }; "loadingStrategy": { "alias": "loadingStrategy"; "required": false; "isSignal": true; }; "scrollThreshold": { "alias": "scrollThreshold"; "required": false; "isSignal": true; }; "plugins": { "alias": "plugins"; "required": false; "isSignal": true; }; "filterApplyMode": { "alias": "filterApplyMode"; "required": false; "isSignal": true; }; }, { "sortChange": "sortChange"; "pageChange": "pageChange"; "loadMore": "loadMore"; "cellEdit": "cellEdit"; "cellEditCancel": "cellEditCancel"; "selectionChange": "selectionChange"; "cellSelectionChange": "cellSelectionChange"; "groupChange": "groupChange"; "filterChange": "filterChange"; "bulkEdit": "bulkEdit"; "bulkCopy": "bulkCopy"; "bulkPaste": "bulkPaste"; "bulkDelete": "bulkDelete"; "fillDown": "fillDown"; "settingsChange": "settingsChange"; }, ["columnDefs", "toolbarDefs", "emptyDefs"], ["[mozGridFilterTags]"], true, never>;
|
|
3428
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MozGridComponent<any>, "moz-grid", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "totalItems": { "alias": "totalItems"; "required": false; "isSignal": true; }; "pagination": { "alias": "pagination"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "rowSelection": { "alias": "rowSelection"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "rowIdField": { "alias": "rowIdField"; "required": false; "isSignal": true; }; "formulas": { "alias": "formulas"; "required": false; "isSignal": true; }; "detailTemplate": { "alias": "detailTemplate"; "required": false; "isSignal": true; }; "fullscreen": { "alias": "fullscreen"; "required": false; "isSignal": true; }; "reorderable": { "alias": "reorderable"; "required": false; "isSignal": true; }; "stateKey": { "alias": "stateKey"; "required": false; "isSignal": true; }; "emptyDataTitle": { "alias": "emptyDataTitle"; "required": false; "isSignal": true; }; "emptyDataDescription": { "alias": "emptyDataDescription"; "required": false; "isSignal": true; }; "noResultsTitle": { "alias": "noResultsTitle"; "required": false; "isSignal": true; }; "noResultsDescription": { "alias": "noResultsDescription"; "required": false; "isSignal": true; }; "noResultsActionLabel": { "alias": "noResultsActionLabel"; "required": false; "isSignal": true; }; "exportable": { "alias": "exportable"; "required": false; "isSignal": true; }; "horizontalVirtualScroll": { "alias": "horizontalVirtualScroll"; "required": false; "isSignal": true; }; "loadingStrategy": { "alias": "loadingStrategy"; "required": false; "isSignal": true; }; "scrollThreshold": { "alias": "scrollThreshold"; "required": false; "isSignal": true; }; "plugins": { "alias": "plugins"; "required": false; "isSignal": true; }; "filterApplyMode": { "alias": "filterApplyMode"; "required": false; "isSignal": true; }; }, { "sortChange": "sortChange"; "pageChange": "pageChange"; "loadMore": "loadMore"; "cellEdit": "cellEdit"; "cellEditCancel": "cellEditCancel"; "selectionChange": "selectionChange"; "cellSelectionChange": "cellSelectionChange"; "groupChange": "groupChange"; "filterChange": "filterChange"; "bulkEdit": "bulkEdit"; "bulkCopy": "bulkCopy"; "bulkPaste": "bulkPaste"; "bulkDelete": "bulkDelete"; "fillDown": "fillDown"; "settingsChange": "settingsChange"; }, ["columnDefs", "toolbarDefs", "emptyDefs"], ["[mozGridFilterTags]"], true, never>;
|
|
3029
3429
|
}
|
|
3030
3430
|
|
|
3031
3431
|
interface GroupRow<T = unknown> {
|
|
@@ -3099,6 +3499,13 @@ declare class MozGridColumnDef<T = unknown> {
|
|
|
3099
3499
|
readonly hideable: _angular_core.InputSignal<boolean>;
|
|
3100
3500
|
readonly freezable: _angular_core.InputSignal<boolean>;
|
|
3101
3501
|
readonly headerMenuDisabled: _angular_core.InputSignal<boolean>;
|
|
3502
|
+
/**
|
|
3503
|
+
* Mirrors `ColumnDef.allowFormula`. Required so the template binding
|
|
3504
|
+
* `[allowFormula]="true"` is forwarded into the generated column def —
|
|
3505
|
+
* without it, `FormulaEngine.syncFromSource` cannot detect this column
|
|
3506
|
+
* and any baked-in `=…` value is rendered as a raw string.
|
|
3507
|
+
*/
|
|
3508
|
+
readonly allowFormula: _angular_core.InputSignal<boolean>;
|
|
3102
3509
|
readonly pinned: _angular_core.InputSignal<"start" | "end" | null>;
|
|
3103
3510
|
readonly cellEditor: _angular_core.InputSignal<CellEditorType | undefined>;
|
|
3104
3511
|
readonly cellEditorOptions: _angular_core.InputSignal<MozSelectOption[] | undefined>;
|
|
@@ -3111,7 +3518,7 @@ declare class MozGridColumnDef<T = unknown> {
|
|
|
3111
3518
|
readonly filterTemplateContent: _angular_core.Signal<TemplateRef<unknown> | undefined>;
|
|
3112
3519
|
toColumnDef(): ColumnDef<T>;
|
|
3113
3520
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MozGridColumnDef<any>, never>;
|
|
3114
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MozGridColumnDef<any>, "moz-grid-column-def", never, { "field": { "alias": "field"; "required": true; "isSignal": true; }; "headerName": { "alias": "headerName"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "flex": { "alias": "flex"; "required": false; "isSignal": true; }; "sortable": { "alias": "sortable"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "reorderable": { "alias": "reorderable"; "required": false; "isSignal": true; }; "groupable": { "alias": "groupable"; "required": false; "isSignal": true; }; "filterable": { "alias": "filterable"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "hideable": { "alias": "hideable"; "required": false; "isSignal": true; }; "freezable": { "alias": "freezable"; "required": false; "isSignal": true; }; "headerMenuDisabled": { "alias": "headerMenuDisabled"; "required": false; "isSignal": true; }; "pinned": { "alias": "pinned"; "required": false; "isSignal": true; }; "cellEditor": { "alias": "cellEditor"; "required": false; "isSignal": true; }; "cellEditorOptions": { "alias": "cellEditorOptions"; "required": false; "isSignal": true; }; "cellValidator": { "alias": "cellValidator"; "required": false; "isSignal": true; }; "cellTemplateInput": { "alias": "cellTemplate"; "required": false; "isSignal": true; }; "editTemplateInput": { "alias": "editTemplate"; "required": false; "isSignal": true; }; "filterTemplateInput": { "alias": "filterTemplate"; "required": false; "isSignal": true; }; }, {}, ["cellTemplateContent", "editTemplateContent", "filterTemplateContent"], never, true, never>;
|
|
3521
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<MozGridColumnDef<any>, "moz-grid-column-def", never, { "field": { "alias": "field"; "required": true; "isSignal": true; }; "headerName": { "alias": "headerName"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "maxWidth": { "alias": "maxWidth"; "required": false; "isSignal": true; }; "flex": { "alias": "flex"; "required": false; "isSignal": true; }; "sortable": { "alias": "sortable"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "reorderable": { "alias": "reorderable"; "required": false; "isSignal": true; }; "groupable": { "alias": "groupable"; "required": false; "isSignal": true; }; "filterable": { "alias": "filterable"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "hideable": { "alias": "hideable"; "required": false; "isSignal": true; }; "freezable": { "alias": "freezable"; "required": false; "isSignal": true; }; "headerMenuDisabled": { "alias": "headerMenuDisabled"; "required": false; "isSignal": true; }; "allowFormula": { "alias": "allowFormula"; "required": false; "isSignal": true; }; "pinned": { "alias": "pinned"; "required": false; "isSignal": true; }; "cellEditor": { "alias": "cellEditor"; "required": false; "isSignal": true; }; "cellEditorOptions": { "alias": "cellEditorOptions"; "required": false; "isSignal": true; }; "cellValidator": { "alias": "cellValidator"; "required": false; "isSignal": true; }; "cellTemplateInput": { "alias": "cellTemplate"; "required": false; "isSignal": true; }; "editTemplateInput": { "alias": "editTemplate"; "required": false; "isSignal": true; }; "filterTemplateInput": { "alias": "filterTemplate"; "required": false; "isSignal": true; }; }, {}, ["cellTemplateContent", "editTemplateContent", "filterTemplateContent"], never, true, never>;
|
|
3115
3522
|
}
|
|
3116
3523
|
|
|
3117
3524
|
declare class GridEngine<T = unknown> {
|
|
@@ -3190,6 +3597,7 @@ declare class InlineEditEngine<T = unknown> {
|
|
|
3190
3597
|
private readonly state;
|
|
3191
3598
|
private readonly history;
|
|
3192
3599
|
private readonly gridEngine;
|
|
3600
|
+
private readonly formulaEngine;
|
|
3193
3601
|
startEdit(rowIndex: number, field: string): void;
|
|
3194
3602
|
/**
|
|
3195
3603
|
* Excel-style "typing-to-edit": starts the editor with the cell value replaced
|
|
@@ -3202,7 +3610,22 @@ declare class InlineEditEngine<T = unknown> {
|
|
|
3202
3610
|
commitEdit(): CellEditEvent<T> | null;
|
|
3203
3611
|
cancelEdit(): CellEditCancelEvent | null;
|
|
3204
3612
|
isEditing(rowIndex: number, colIndex: number): boolean;
|
|
3613
|
+
/**
|
|
3614
|
+
* Convert an A1-surface formula draft to REF long-form storage. Strings
|
|
3615
|
+
* that do not start with `=` are returned untouched — callers should
|
|
3616
|
+
* only invoke this on values they already know to be formulas.
|
|
3617
|
+
*/
|
|
3618
|
+
private a1DraftToStorage;
|
|
3205
3619
|
resolveEditorType(field: string, value: unknown): CellEditorType;
|
|
3620
|
+
/**
|
|
3621
|
+
* Route a cell-edit commit through the formula engine when appropriate:
|
|
3622
|
+
* - `allowFormula` column + new value starts with `=` → register formula.
|
|
3623
|
+
* - `allowFormula` column + old value was a formula but new one isn't
|
|
3624
|
+
* → remove the stored formula (reverts to a plain literal).
|
|
3625
|
+
* - Any cell change → invalidate dependents so their cached value
|
|
3626
|
+
* refreshes (no-op when the engine has zero dependents on this cell).
|
|
3627
|
+
*/
|
|
3628
|
+
private updateFormulaEngine;
|
|
3206
3629
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InlineEditEngine<any>, never>;
|
|
3207
3630
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<InlineEditEngine<any>>;
|
|
3208
3631
|
}
|
|
@@ -3378,8 +3801,13 @@ declare class FilterEngine<T = unknown> {
|
|
|
3378
3801
|
/** Returns the filter data type inferred for a column. */
|
|
3379
3802
|
getFilterType(field: string): FilterDataType;
|
|
3380
3803
|
/**
|
|
3381
|
-
* Builds the column descriptors consumed by the filter builder UI.
|
|
3382
|
-
*
|
|
3804
|
+
* Builds the column descriptors consumed by the filter builder UI.
|
|
3805
|
+
*
|
|
3806
|
+
* All `filterable` columns are included, even those that ship a custom
|
|
3807
|
+
* `filterTemplate`. The custom template drives the inline header filter
|
|
3808
|
+
* row (quick per-column UI), while the builder — rendered in the toolbar
|
|
3809
|
+
* drawer and in the column-menu overlay — always uses the generic editors.
|
|
3810
|
+
* The two mechanisms are complementary and can coexist on the same column.
|
|
3383
3811
|
*/
|
|
3384
3812
|
describeFilterableColumns(): FilterColumnDescriptor[];
|
|
3385
3813
|
describeColumn(def: ColumnDef<T>): FilterColumnDescriptor;
|
|
@@ -3555,6 +3983,27 @@ declare class InfiniteScrollEngine<T = unknown> {
|
|
|
3555
3983
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<InfiniteScrollEngine<any>>;
|
|
3556
3984
|
}
|
|
3557
3985
|
|
|
3986
|
+
/**
|
|
3987
|
+
* Default registry of formula functions (Phase 1 scope).
|
|
3988
|
+
*
|
|
3989
|
+
* Implementations are intentionally compact and reuse the coercion helpers
|
|
3990
|
+
* in `models/formula.model.ts`. Each entry is pure, side-effect free and
|
|
3991
|
+
* returns a `FormulaValue` — errors are data, never exceptions.
|
|
3992
|
+
*
|
|
3993
|
+
* Naming: keys are uppercase; the parser uppercases every identifier before
|
|
3994
|
+
* dispatch so consumers can write `sum(a, b)` or `SUM(a,b)` interchangeably.
|
|
3995
|
+
*/
|
|
3996
|
+
|
|
3997
|
+
/**
|
|
3998
|
+
* Default function registry. Consumers can spread this into their own
|
|
3999
|
+
* registry to extend it:
|
|
4000
|
+
*
|
|
4001
|
+
* ```
|
|
4002
|
+
* const registry = { ...DEFAULT_FORMULA_FUNCTIONS, TVA: myTvaFn };
|
|
4003
|
+
* ```
|
|
4004
|
+
*/
|
|
4005
|
+
declare const DEFAULT_FORMULA_FUNCTIONS: FormulaFunctionRegistry;
|
|
4006
|
+
|
|
3558
4007
|
declare function trackDisplayRow<T>(_index: number, row: DisplayRow<T>): string;
|
|
3559
4008
|
declare function trackByField(_index: number, col: {
|
|
3560
4009
|
field: string;
|
|
@@ -3628,6 +4077,8 @@ declare class MozGridFilterOverlayDirective implements OnDestroy {
|
|
|
3628
4077
|
declare class MozGridHeaderCellComponent<T = unknown> {
|
|
3629
4078
|
private readonly state;
|
|
3630
4079
|
private readonly filterEngine;
|
|
4080
|
+
/** Optional — only present when the grid provides `FormulaEngine`. */
|
|
4081
|
+
private readonly formulaEngine;
|
|
3631
4082
|
readonly columnState: _angular_core.InputSignal<ColumnStateEntry>;
|
|
3632
4083
|
readonly def: _angular_core.InputSignal<ColumnDef<T>>;
|
|
3633
4084
|
readonly isLast: _angular_core.InputSignal<boolean>;
|
|
@@ -3650,6 +4101,19 @@ declare class MozGridHeaderCellComponent<T = unknown> {
|
|
|
3650
4101
|
}>;
|
|
3651
4102
|
readonly resizeStart: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
3652
4103
|
readonly label: _angular_core.Signal<string>;
|
|
4104
|
+
/**
|
|
4105
|
+
* Spreadsheet-style column letter (`A`, `B`, …, `AA`, `AB`, …) matching
|
|
4106
|
+
* this column's position in the visible column order. Shown above each
|
|
4107
|
+
* header while a formula is being edited so the user sees exactly what
|
|
4108
|
+
* letter to type to reference a cell in this column.
|
|
4109
|
+
*/
|
|
4110
|
+
readonly columnLetter: _angular_core.Signal<string>;
|
|
4111
|
+
/**
|
|
4112
|
+
* `true` when the user is editing a formula-capable cell. The header
|
|
4113
|
+
* uses this to show the column-letter badge — a visual cue matching the
|
|
4114
|
+
* A1 references the user types in the formula bar.
|
|
4115
|
+
*/
|
|
4116
|
+
readonly showColumnLetter: _angular_core.Signal<boolean>;
|
|
3653
4117
|
readonly menuItems: _angular_core.Signal<MozActionListItem[]>;
|
|
3654
4118
|
onHeaderClick(event: MouseEvent): void;
|
|
3655
4119
|
onMenuItemClick(item: MozActionListItem): void;
|
|
@@ -3731,6 +4195,9 @@ declare class MozGridCellComponent<T = unknown> {
|
|
|
3731
4195
|
private readonly validationEngine;
|
|
3732
4196
|
private readonly clipboard;
|
|
3733
4197
|
private readonly gridEngine;
|
|
4198
|
+
/** Optional: present only when the grid provides `FormulaEngine`. */
|
|
4199
|
+
private readonly formulaEngine;
|
|
4200
|
+
private readonly refHighlight;
|
|
3734
4201
|
private readonly elRef;
|
|
3735
4202
|
private preEditWidth;
|
|
3736
4203
|
constructor();
|
|
@@ -3747,12 +4214,37 @@ declare class MozGridCellComponent<T = unknown> {
|
|
|
3747
4214
|
readonly resolvedMinWidth: _angular_core.Signal<number>;
|
|
3748
4215
|
readonly commitEdit: _angular_core.OutputEmitterRef<void>;
|
|
3749
4216
|
readonly cancelEdit: _angular_core.OutputEmitterRef<void>;
|
|
4217
|
+
onFormulaCancel(): void;
|
|
3750
4218
|
readonly cellTemplate: _angular_core.Signal<_angular_core.TemplateRef<unknown> | null>;
|
|
3751
4219
|
readonly editTemplate: _angular_core.Signal<_angular_core.TemplateRef<unknown> | null>;
|
|
3752
4220
|
readonly updateDraftFn: (value: unknown) => void;
|
|
3753
4221
|
readonly commitEditFn: () => void;
|
|
4222
|
+
/**
|
|
4223
|
+
* Stable cell address for the formula engine. `null` when the column
|
|
4224
|
+
* isn't formula-enabled or the row lacks a stable id (e.g. headers).
|
|
4225
|
+
*/
|
|
4226
|
+
private readonly formulaAddr;
|
|
4227
|
+
/**
|
|
4228
|
+
* Last-evaluated `FormulaValue` for this cell, or `null` when the cell
|
|
4229
|
+
* holds no formula. Reactivity is driven by `formulaEngine.values`.
|
|
4230
|
+
*/
|
|
4231
|
+
readonly formulaValue: _angular_core.Signal<FormulaValue | null>;
|
|
3754
4232
|
readonly value: _angular_core.Signal<unknown>;
|
|
3755
4233
|
readonly displayValue: _angular_core.Signal<string>;
|
|
4234
|
+
/** `true` when the current cell value is a formula error (e.g. `#DIV/0!`). */
|
|
4235
|
+
readonly hasFormulaError: _angular_core.Signal<boolean>;
|
|
4236
|
+
/**
|
|
4237
|
+
* Currently editing and the draft is a formula (starts with `=`).
|
|
4238
|
+
* Drives the switch to `MozGridFormulaEditorComponent` instead of the
|
|
4239
|
+
* default text input.
|
|
4240
|
+
*/
|
|
4241
|
+
readonly isFormulaEditing: _angular_core.Signal<boolean>;
|
|
4242
|
+
/**
|
|
4243
|
+
* Palette CSS var for the coloured border shown when this cell is
|
|
4244
|
+
* currently referenced by the formula being edited elsewhere. `null`
|
|
4245
|
+
* when no editor is active or this cell is not referenced.
|
|
4246
|
+
*/
|
|
4247
|
+
readonly refHighlightColor: _angular_core.Signal<string | null>;
|
|
3756
4248
|
readonly editState: _angular_core.Signal<_mozaic_ds_angular.CellEditState>;
|
|
3757
4249
|
readonly isEditing: _angular_core.Signal<boolean>;
|
|
3758
4250
|
readonly editorType: _angular_core.Signal<CellEditorType>;
|
|
@@ -4269,8 +4761,10 @@ declare class MozTreeComponent<T = unknown> {
|
|
|
4269
4761
|
readonly selectedIds: _angular_core.InputSignal<Set<string | number>>;
|
|
4270
4762
|
readonly loadChildren: _angular_core.InputSignal<LoadChildrenFn<T> | null>;
|
|
4271
4763
|
readonly indentSize: _angular_core.InputSignal<number>;
|
|
4764
|
+
readonly virtualScroll: _angular_core.InputSignal<boolean | "auto">;
|
|
4272
4765
|
readonly virtualScrollThreshold: _angular_core.InputSignal<number>;
|
|
4273
4766
|
readonly rowHeight: _angular_core.InputSignal<number>;
|
|
4767
|
+
readonly viewportHeight: _angular_core.InputSignal<string>;
|
|
4274
4768
|
readonly _defaultTemplate: _angular_core.Signal<MozTreeNodeTemplateDirective | undefined>;
|
|
4275
4769
|
readonly _typedTemplates: _angular_core.Signal<readonly MozTreeNodeTemplateDirective[]>;
|
|
4276
4770
|
readonly nodeTemplate: _angular_core.Signal<TemplateRef<TreeNodeContext<T>> | null>;
|
|
@@ -4291,7 +4785,7 @@ declare class MozTreeComponent<T = unknown> {
|
|
|
4291
4785
|
trackNode(_index: number, node: TreeNode<T>): string | number;
|
|
4292
4786
|
trackFlatNode(_index: number, flat: FlatNode<T>): string | number;
|
|
4293
4787
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<MozTreeComponent<any>, never>;
|
|
4294
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MozTreeComponent<any>, "moz-tree", never, { "nodes": { "alias": "nodes"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "expandedIds": { "alias": "expandedIds"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "loadChildren": { "alias": "loadChildren"; "required": false; "isSignal": true; }; "indentSize": { "alias": "indentSize"; "required": false; "isSignal": true; }; "virtualScrollThreshold": { "alias": "virtualScrollThreshold"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; }, { "expandedIdsChange": "expandedIdsChange"; "selectionChange": "selectionChange"; }, ["_defaultTemplate", "_typedTemplates"], never, true, never>;
|
|
4788
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MozTreeComponent<any>, "moz-tree", never, { "nodes": { "alias": "nodes"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "expandedIds": { "alias": "expandedIds"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "loadChildren": { "alias": "loadChildren"; "required": false; "isSignal": true; }; "indentSize": { "alias": "indentSize"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "virtualScrollThreshold": { "alias": "virtualScrollThreshold"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "viewportHeight": { "alias": "viewportHeight"; "required": false; "isSignal": true; }; }, { "expandedIdsChange": "expandedIdsChange"; "selectionChange": "selectionChange"; }, ["_defaultTemplate", "_typedTemplates"], never, true, never>;
|
|
4295
4789
|
}
|
|
4296
4790
|
|
|
4297
4791
|
declare class MozTreeNodeComponent<T = unknown> {
|
|
@@ -4332,5 +4826,5 @@ declare class MozTreeNodeComponent<T = unknown> {
|
|
|
4332
4826
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<MozTreeNodeComponent<any>, "moz-tree-node", never, { "node": { "alias": "node"; "required": true; "isSignal": true; }; "depth": { "alias": "depth"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "indentSize": { "alias": "indentSize"; "required": false; "isSignal": true; }; "nodeTemplate": { "alias": "nodeTemplate"; "required": false; "isSignal": true; }; "nodeTemplates": { "alias": "nodeTemplates"; "required": false; "isSignal": true; }; "loadChildren": { "alias": "loadChildren"; "required": false; "isSignal": true; }; "ancestors": { "alias": "ancestors"; "required": false; "isSignal": true; }; "flat": { "alias": "flat"; "required": false; "isSignal": true; }; "noResultText": { "alias": "noResultText"; "required": false; "isSignal": true; }; }, { "expandChange": "expandChange"; "selectionChange": "selectionChange"; }, never, never, true, never>;
|
|
4333
4827
|
}
|
|
4334
4828
|
|
|
4335
|
-
export { ACTION_LISTBOX_CONFIG, ActionListboxContainerComponent, ActionListboxRef, BuiltInMenuComponent, CellSelectionEngine, CellValidationEngine, ColumnReorderEngine, ColumnResizeEngine, DEFAULT_ACTION_LISTBOX_CONFIG, DEFAULT_GRID_OPTIONS, DEFAULT_MODAL_CONFIG, DEFAULT_TOASTER_CONFIG, DRAWER_CONFIG, DRAWER_DATA, DrawerContainerComponent, ExpandableRowEngine, ExportEngine, FilterEngine, GridEngine, GridGroupDrawerComponent, GridSettingsDrawerComponent, GridStateManager, GroupEngine, HorizontalVirtualScrollEngine, InfiniteScrollEngine, InlineEditEngine, KeyboardEngine, MODAL_CONFIG, MODAL_DATA, MozAccordionComponent, MozAccordionContentComponent, MozAccordionHeaderComponent, MozAccordionPanelComponent, MozActionBottomBarComponent, MozActionListboxComponent, MozActionListboxTriggerDirective, MozAvatarComponent, MozBreadcrumbComponent, MozButtonComponent, MozCalloutComponent, MozCarouselComponent, MozCheckListMenuComponent, MozCheckboxComponent, MozCheckboxGroupComponent, MozCircularProgressBarComponent, MozComboboxComponent, MozComboboxHarness, MozComboboxOptionHarness, MozDatepickerComponent, MozDividerComponent, MozDrawerComponent, MozDrawerFooterDirective, MozDrawerRef, MozDrawerService, MozFieldComponent, MozFieldGroupComponent, MozFileUploaderComponent, MozFileUploaderItemComponent, MozFlagComponent, MozGridBodyComponent, MozGridCellComponent, MozGridColumnDef, MozGridColumnVisibilityPanelComponent, MozGridComponent, MozGridDetailRowComponent, MozGridEmptyDef, MozGridFooterComponent, MozGridGroupRowComponent, MozGridHeaderCellComponent, MozGridHeaderComponent, MozGridHeaderMenuComponent, MozGridLoadingIndicatorComponent, MozGridRowComponent, MozGridToolbarDef, MozIconButtonComponent, MozKpiComponent, MozLinearProgressBarBufferComponent, MozLinearProgressBarPercentageComponent, MozLinkComponent, MozLoaderComponent, MozLoadingOverlayComponent, MozModalComponent, MozModalFooterDirective, MozModalRef, MozModalService, MozNavigationIndicatorComponent, MozNumberBadgeComponent, MozOverlayComponent, MozPageHeaderComponent, MozPaginationComponent, MozPasswordInputDirective, MozPhoneNumberComponent, MozPincodeInputComponent, MozPopoverComponent, MozPopoverFooterDirective, MozPopoverTriggerDirective, MozQuantitySelectorComponent, MozRadioComponent, MozRadioGroupComponent, MozSegmentedControlComponent, MozSelectComponent, MozSidebarComponent, MozStarRatingComponent, MozStatusBadgeComponent, MozStatusDotComponent, MozStatusMessageComponent, MozStatusNotificationComponent, MozStepperBottomBarComponent, MozStepperCompactComponent, MozStepperInlineComponent, MozStepperStackedComponent, MozTabComponent, MozTabsComponent, MozTagComponent, MozTextInput, MozTextarea, MozTileComponent, MozTileExpandableComponent, MozTileSelectableComponent, MozToasterComponent, MozToasterRef, MozToasterService, MozToggleComponent, MozTooltipComponent, MozTooltipDirective, MozTreeComponent, MozTreeNodeComponent, MozTreeNodeTemplateDirective, POPOVER_CONFIG, POPOVER_DATA, PaginationEngine, PopoverContainerComponent, PopoverRef, PopoverService, RowSelectionEngine, SortEngine, StatePersistenceEngine, TOASTER_CONFIG, TreeEngine, TreeKeyboardService, TreeSelectionService, TreeStateService, isSection, trackByField, trackDisplayRow };
|
|
4336
|
-
export type { ActionListboxConfig, ActionListboxPosition, ActiveFilter, BulkCopyEvent, BulkDeleteEvent, BulkEditEvent, BulkPasteEvent, CellCoord, CellEditCancelEvent, CellEditEvent, CellEditState, CellEditorType, CellError, CellRange, CellSelectionEvent, ColumnDef, ColumnFreezeEvent, ColumnReorderEvent, ColumnResizeEvent, ColumnSearchToggleEvent, ColumnStateEntry, ColumnVisibilityEvent, DisplayRow, ExportOptions, FillDownEvent, FilterEvent, FlatNode, GridDensity, GridEmptyContext, GridEmptyKind, GridEventMap, GridEventType, GridOptions, GridPlugin, GridSettingsData, GridSettingsResult, GridToolbarSlot, GroupDrawerData, GroupDrawerResult, GroupEntry, GroupEvent, GroupRow, HeaderMenuActionId, HeaderMenuConfig, KeyboardActions, LoadChildrenFn, LoadMoreEvent, LoadingStrategy, MozActionListItem, MozActionListItemAppearance, MozAvatarSize, MozBreadcrumbAppearance, MozBreadcrumbLink, MozBuiltInMenuItem, MozBuiltInMenuItemTarget, MozButtonAppearance, MozButtonIconPosition, MozButtonSize, MozButtonType, MozCalloutVariant, MozCheckListMenuItem, MozCircularProgessBarSize, MozComboboxItem, MozComboboxOption, MozComboboxSection, MozComboboxSize, MozDatepickerSize, MozDividerAppearance, MozDividerOrientation, MozDividerSize, MozDrawerConfig, MozDrawerPosition, MozFileUploaderFormat, MozFileUploaderItemFormat, MozFlagType, MozIconButtonAppearance, MozIconButtonSize, MozIconButtonType, MozKpiSize, MozKpiStatus, MozKpiTrend, MozLinearProgressBarBufferSize, MozLinkAppearance, MozLinkIconPosition, MozLinkSize, MozLoaderAppearance, MozLoaderSize, MozNavigationIndicatorAction, MozNumberBadgeAppearance, MozNumberBadgeSize, MozPageHeaderScope, MozPhoneNumberCountry, MozPhoneNumberSize, MozPhoneNumberValue, MozPincodeLength, MozPopoverAppearance, MozPopoverPosition, MozPopoverSize, MozQuantitySelectorSize, MozSegmentedControlSize, MozSegmentedItem, MozSelectOption, MozSelectSize, MozSelectValue, MozSidebarItem, MozSidebarSubItem, MozStarRatingAppearance, MozStarRatingSize, MozStatusBadgeStatus, MozStatusDotSize, MozStatusDotStatus, MozStatusMessageStatus, MozStatusNotificationStatus, MozStepperBottomBarStep, MozStepperInlineStep, MozStepperStackedStep, MozTabItem, MozTagSize, MozTagType, MozTextInputSize, MozTileAppearance, MozTileExpandableTrigger, MozTileInputPosition, MozTileInputVerticalPosition, MozTileSelectableAppearance, MozTileSelectableType, MozToasterPosition, MozToasterRole, MozToasterStatus, MozToggleSize, MozTooltipPosition, PageEvent, PaginationState, PersistedGridState, PopoverConfig, PopoverTriggerMode, RowSelectionEvent, SelectAllMode, SortDef, SortDirection, SortEvent, TreeDisplayRow, TreeNode, TreeNodeConfig, TreeNodeContext, TreeSelectionMode };
|
|
4829
|
+
export { ACTION_LISTBOX_CONFIG, ActionListboxContainerComponent, ActionListboxRef, BuiltInMenuComponent, CellSelectionEngine, CellValidationEngine, ColumnReorderEngine, ColumnResizeEngine, DEFAULT_ACTION_LISTBOX_CONFIG, DEFAULT_FORMULA_FUNCTIONS, DEFAULT_GRID_OPTIONS, DEFAULT_MODAL_CONFIG, DEFAULT_TOASTER_CONFIG, DRAWER_CONFIG, DRAWER_DATA, DrawerContainerComponent, ExpandableRowEngine, ExportEngine, FilterEngine, FormulaEngine, FormulaValues, GridEngine, GridGroupDrawerComponent, GridSettingsDrawerComponent, GridStateManager, GroupEngine, HorizontalVirtualScrollEngine, InfiniteScrollEngine, InlineEditEngine, KeyboardEngine, MODAL_CONFIG, MODAL_DATA, MozAccordionComponent, MozAccordionContentComponent, MozAccordionHeaderComponent, MozAccordionPanelComponent, MozActionBottomBarComponent, MozActionListboxComponent, MozActionListboxTriggerDirective, MozAvatarComponent, MozBreadcrumbComponent, MozButtonComponent, MozCalloutComponent, MozCarouselComponent, MozCheckListMenuComponent, MozCheckboxComponent, MozCheckboxGroupComponent, MozCircularProgressBarComponent, MozComboboxComponent, MozComboboxHarness, MozComboboxOptionHarness, MozDatepickerComponent, MozDividerComponent, MozDrawerComponent, MozDrawerFooterDirective, MozDrawerRef, MozDrawerService, MozFieldComponent, MozFieldGroupComponent, MozFileUploaderComponent, MozFileUploaderItemComponent, MozFlagComponent, MozGridBodyComponent, MozGridCellComponent, MozGridColumnDef, MozGridColumnVisibilityPanelComponent, MozGridComponent, MozGridDetailRowComponent, MozGridEmptyDef, MozGridFooterComponent, MozGridGroupRowComponent, MozGridHeaderCellComponent, MozGridHeaderComponent, MozGridHeaderMenuComponent, MozGridLoadingIndicatorComponent, MozGridRowComponent, MozGridToolbarDef, MozIconButtonComponent, MozKpiComponent, MozLinearProgressBarBufferComponent, MozLinearProgressBarPercentageComponent, MozLinkComponent, MozLoaderComponent, MozLoadingOverlayComponent, MozModalComponent, MozModalFooterDirective, MozModalRef, MozModalService, MozNavigationIndicatorComponent, MozNumberBadgeComponent, MozOverlayComponent, MozPageHeaderComponent, MozPaginationComponent, MozPasswordInputDirective, MozPhoneNumberComponent, MozPincodeInputComponent, MozPopoverComponent, MozPopoverFooterDirective, MozPopoverTriggerDirective, MozQuantitySelectorComponent, MozRadioComponent, MozRadioGroupComponent, MozSegmentedControlComponent, MozSelectComponent, MozSidebarComponent, MozStarRatingComponent, MozStatusBadgeComponent, MozStatusDotComponent, MozStatusMessageComponent, MozStatusNotificationComponent, MozStepperBottomBarComponent, MozStepperCompactComponent, MozStepperInlineComponent, MozStepperStackedComponent, MozTabComponent, MozTabsComponent, MozTagComponent, MozTextInput, MozTextarea, MozTileComponent, MozTileExpandableComponent, MozTileSelectableComponent, MozToasterComponent, MozToasterRef, MozToasterService, MozToggleComponent, MozTooltipComponent, MozTooltipDirective, MozTreeComponent, MozTreeNodeComponent, MozTreeNodeTemplateDirective, POPOVER_CONFIG, POPOVER_DATA, PaginationEngine, PopoverContainerComponent, PopoverRef, PopoverService, RowSelectionEngine, SortEngine, StatePersistenceEngine, TOASTER_CONFIG, TreeEngine, TreeKeyboardService, TreeSelectionService, TreeStateService, addressToA1, firstError, isSection, toBoolean, toNumber, toStringValue, trackByField, trackDisplayRow };
|
|
4830
|
+
export type { ActionListboxConfig, ActionListboxPosition, ActiveFilter, BulkCellChange, BulkCopyEvent, BulkDeleteEvent, BulkEditEvent, BulkPasteEvent, CellAddress, CellCoord, CellEditCancelEvent, CellEditEvent, CellEditState, CellEditorType, CellError, CellRange, CellSelectionEvent, ColumnDef, ColumnFreezeEvent, ColumnReorderEvent, ColumnResizeEvent, ColumnSearchToggleEvent, ColumnStateEntry, ColumnVisibilityEvent, DisplayRow, ExportOptions, FillDownEvent, FilterEvent, FlatNode, FormulaArity, FormulaChangeEvent, FormulaDataSource, FormulaError, FormulaErrorEvent, FormulaEvalContext, FormulaFunctionDocs, FormulaFunctionImpl, FormulaFunctionRegistry, FormulaValue, GridDensity, GridEmptyContext, GridEmptyKind, GridEventMap, GridEventType, GridOptions, GridPlugin, GridSettingsData, GridSettingsResult, GridToolbarSlot, GroupDrawerData, GroupDrawerResult, GroupEntry, GroupEvent, GroupRow, HeaderMenuActionId, HeaderMenuConfig, KeyboardActions, LoadChildrenFn, LoadMoreEvent, LoadingStrategy, MozActionListItem, MozActionListItemAppearance, MozAvatarSize, MozBreadcrumbAppearance, MozBreadcrumbLink, MozBuiltInMenuItem, MozBuiltInMenuItemTarget, MozButtonAppearance, MozButtonIconPosition, MozButtonSize, MozButtonType, MozCalloutVariant, MozCheckListMenuItem, MozCircularProgessBarSize, MozComboboxItem, MozComboboxOption, MozComboboxSection, MozComboboxSize, MozDatepickerSize, MozDividerAppearance, MozDividerOrientation, MozDividerSize, MozDrawerConfig, MozDrawerPosition, MozFileUploaderFormat, MozFileUploaderItemFormat, MozFlagType, MozIconButtonAppearance, MozIconButtonSize, MozIconButtonType, MozKpiSize, MozKpiStatus, MozKpiTrend, MozLinearProgressBarBufferSize, MozLinkAppearance, MozLinkIconPosition, MozLinkSize, MozLoaderAppearance, MozLoaderSize, MozNavigationIndicatorAction, MozNumberBadgeAppearance, MozNumberBadgeSize, MozPageHeaderScope, MozPhoneNumberCountry, MozPhoneNumberSize, MozPhoneNumberValue, MozPincodeLength, MozPopoverAppearance, MozPopoverPosition, MozPopoverSize, MozQuantitySelectorSize, MozSegmentedControlSize, MozSegmentedItem, MozSelectOption, MozSelectSize, MozSelectValue, MozSidebarItem, MozSidebarSubItem, MozStarRatingAppearance, MozStarRatingSize, MozStatusBadgeStatus, MozStatusDotSize, MozStatusDotStatus, MozStatusMessageStatus, MozStatusNotificationStatus, MozStepperBottomBarStep, MozStepperInlineStep, MozStepperStackedStep, MozTabItem, MozTagSize, MozTagType, MozTextInputSize, MozTileAppearance, MozTileExpandableTrigger, MozTileInputPosition, MozTileInputVerticalPosition, MozTileSelectableAppearance, MozTileSelectableType, MozToasterPosition, MozToasterRole, MozToasterStatus, MozToggleSize, MozTooltipPosition, PageEvent, PaginationState, PersistedGridState, PopoverConfig, PopoverTriggerMode, RowSelectionEvent, SelectAllMode, SortDef, SortDirection, SortEvent, TreeDisplayRow, TreeNode, TreeNodeConfig, TreeNodeContext, TreeSelectionMode };
|