@ng-forge/dynamic-forms 1.0.0-rc.4 → 1.1.0-next.1
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/LICENSE +21 -0
- package/README.md +25 -32
- package/fesm2022/{ng-forge-dynamic-forms-array-field.component-DZWGHZjj.mjs → ng-forge-dynamic-forms-array-field.component-CIheZh11.mjs} +5 -5
- package/fesm2022/{ng-forge-dynamic-forms-array-field.component-DZWGHZjj.mjs.map → ng-forge-dynamic-forms-array-field.component-CIheZh11.mjs.map} +1 -1
- package/fesm2022/{ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-ueIHE70C.mjs → ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-C9aVachF.mjs} +2 -2
- package/fesm2022/{ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-ueIHE70C.mjs.map → ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-C9aVachF.mjs.map} +1 -1
- package/fesm2022/{ng-forge-dynamic-forms-container-field.component-Dt5yfGQ7.mjs → ng-forge-dynamic-forms-container-field.component-DNafCSO8.mjs} +5 -5
- package/fesm2022/{ng-forge-dynamic-forms-container-field.component-Dt5yfGQ7.mjs.map → ng-forge-dynamic-forms-container-field.component-DNafCSO8.mjs.map} +1 -1
- package/fesm2022/{ng-forge-dynamic-forms-css-wrapper.component-AScQAJTQ.mjs → ng-forge-dynamic-forms-css-wrapper.component-BmHGlmES.mjs} +4 -4
- package/fesm2022/{ng-forge-dynamic-forms-css-wrapper.component-AScQAJTQ.mjs.map → ng-forge-dynamic-forms-css-wrapper.component-BmHGlmES.mjs.map} +1 -1
- package/fesm2022/{ng-forge-dynamic-forms-group-field.component-BgoDlVYp.mjs → ng-forge-dynamic-forms-group-field.component-CKVIw2K5.mjs} +5 -5
- package/fesm2022/{ng-forge-dynamic-forms-group-field.component-BgoDlVYp.mjs.map → ng-forge-dynamic-forms-group-field.component-CKVIw2K5.mjs.map} +1 -1
- package/fesm2022/ng-forge-dynamic-forms-integration.mjs +70 -51
- package/fesm2022/ng-forge-dynamic-forms-integration.mjs.map +1 -1
- package/fesm2022/ng-forge-dynamic-forms-internal.mjs +1430 -1408
- package/fesm2022/ng-forge-dynamic-forms-internal.mjs.map +1 -1
- package/fesm2022/{ng-forge-dynamic-forms-ng-forge-dynamic-forms-CRCXs4f8.mjs → ng-forge-dynamic-forms-ng-forge-dynamic-forms-CBawLbtp.mjs} +70 -57
- package/fesm2022/ng-forge-dynamic-forms-ng-forge-dynamic-forms-CBawLbtp.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-page-field.component-W9f5VyQJ.mjs → ng-forge-dynamic-forms-page-field.component-BRixkgyS.mjs} +5 -5
- package/fesm2022/{ng-forge-dynamic-forms-page-field.component-W9f5VyQJ.mjs.map → ng-forge-dynamic-forms-page-field.component-BRixkgyS.mjs.map} +1 -1
- package/fesm2022/{ng-forge-dynamic-forms-row-wrapper.component-BlVa801t.mjs → ng-forge-dynamic-forms-row-wrapper.component-BBWmqQA_.mjs} +4 -4
- package/fesm2022/{ng-forge-dynamic-forms-row-wrapper.component-BlVa801t.mjs.map → ng-forge-dynamic-forms-row-wrapper.component-BBWmqQA_.mjs.map} +1 -1
- package/fesm2022/{ng-forge-dynamic-forms-text-field.component-CNCpmf5_.mjs → ng-forge-dynamic-forms-text-field.component-C-f80sbk.mjs} +4 -4
- package/fesm2022/{ng-forge-dynamic-forms-text-field.component-CNCpmf5_.mjs.map → ng-forge-dynamic-forms-text-field.component-C-f80sbk.mjs.map} +1 -1
- package/fesm2022/ng-forge-dynamic-forms.mjs +1 -1
- package/package.json +5 -5
- package/types/ng-forge-dynamic-forms-integration.d.ts +29 -3
- package/types/ng-forge-dynamic-forms-internal.d.ts +50 -201
- package/fesm2022/ng-forge-dynamic-forms-ng-forge-dynamic-forms-CRCXs4f8.mjs.map +0 -1
|
@@ -249,7 +249,7 @@ type FormFieldStateMap = Record<string, FieldStateInfo | undefined>;
|
|
|
249
249
|
/** Field state context for the current field being evaluated. */
|
|
250
250
|
type FieldStateContext = FieldStateInfo;
|
|
251
251
|
|
|
252
|
-
interface EvaluationContext<TValue = unknown, TFormValue extends Record<string, unknown> =
|
|
252
|
+
interface EvaluationContext<TValue = unknown, TFormValue extends Record<string, unknown> = Record<string, unknown>> {
|
|
253
253
|
/** Current field value */
|
|
254
254
|
fieldValue: TValue;
|
|
255
255
|
/** Form value for the current evaluation scope. */
|
|
@@ -302,12 +302,12 @@ interface CustomFunctionOptions {
|
|
|
302
302
|
scope?: CustomFunctionScope;
|
|
303
303
|
}
|
|
304
304
|
/** Custom function signature for conditional expressions */
|
|
305
|
-
type CustomFunction<TFormValue extends Record<string, unknown> =
|
|
305
|
+
type CustomFunction<TFormValue extends Record<string, unknown> = Record<string, unknown>> = (context: EvaluationContext<unknown, TFormValue>) => unknown;
|
|
306
306
|
|
|
307
307
|
/** Async function for derivations — returns any value. */
|
|
308
|
-
type AsyncDerivationFunction<TFormValue extends Record<string, unknown> =
|
|
308
|
+
type AsyncDerivationFunction<TFormValue extends Record<string, unknown> = Record<string, unknown>> = (context: EvaluationContext<unknown, TFormValue>) => Promise<unknown> | Observable<unknown>;
|
|
309
309
|
/** Async function for conditions — returns boolean. */
|
|
310
|
-
type AsyncConditionFunction<TFormValue extends Record<string, unknown> =
|
|
310
|
+
type AsyncConditionFunction<TFormValue extends Record<string, unknown> = Record<string, unknown>> = (context: EvaluationContext<unknown, TFormValue>) => Promise<boolean> | Observable<boolean>;
|
|
311
311
|
|
|
312
312
|
/** Configuration for an HTTP request used by declarative HTTP validators, derivations, and conditions. */
|
|
313
313
|
interface HttpRequestConfig {
|
|
@@ -846,7 +846,7 @@ type ProcessField<T, D extends number = 5> = [D] extends [never] ? Record<string
|
|
|
846
846
|
} : never : T extends {
|
|
847
847
|
type: 'text';
|
|
848
848
|
} ? never : T extends {
|
|
849
|
-
type: 'submit' | 'button' | 'next' | 'previous' | 'addArrayItem' | 'removeArrayItem';
|
|
849
|
+
type: 'submit' | 'button' | 'next' | 'previous' | 'addArrayItem' | 'add-array-item' | 'prependArrayItem' | 'prepend-array-item' | 'insertArrayItem' | 'insert-array-item' | 'removeArrayItem' | 'remove-array-item' | 'popArrayItem' | 'pop-array-item' | 'shiftArrayItem' | 'shift-array-item';
|
|
850
850
|
} ? never : T extends {
|
|
851
851
|
key: infer K;
|
|
852
852
|
value: infer V;
|
|
@@ -1652,6 +1652,13 @@ interface ButtonLogicContext {
|
|
|
1652
1652
|
currentPageValid?: Signal<boolean>;
|
|
1653
1653
|
/** Current form value for evaluating conditional expressions */
|
|
1654
1654
|
formValue?: unknown;
|
|
1655
|
+
/**
|
|
1656
|
+
* Optional factory returning the full evaluation context (including `externalData`
|
|
1657
|
+
* and `customFunctions`) used to evaluate `ConditionalExpression` conditions.
|
|
1658
|
+
* Invoked lazily during evaluation so external-data signal reads stay reactive.
|
|
1659
|
+
* When omitted, a minimal context (form value only) is used.
|
|
1660
|
+
*/
|
|
1661
|
+
evaluationContext?: () => EvaluationContext;
|
|
1655
1662
|
/** Optional logger for diagnostic output. Falls back to no-op logger if not provided. */
|
|
1656
1663
|
logger?: Logger;
|
|
1657
1664
|
}
|
|
@@ -1681,6 +1688,13 @@ interface NonFieldLogicContext {
|
|
|
1681
1688
|
explicitValue?: boolean;
|
|
1682
1689
|
/** Current form value for evaluating conditional expressions */
|
|
1683
1690
|
formValue?: unknown;
|
|
1691
|
+
/**
|
|
1692
|
+
* Optional factory returning the full evaluation context (including `externalData`
|
|
1693
|
+
* and `customFunctions`) used to evaluate `ConditionalExpression` conditions.
|
|
1694
|
+
* Invoked lazily during evaluation so external-data signal reads stay reactive.
|
|
1695
|
+
* When omitted, a minimal context (form value only) is used.
|
|
1696
|
+
*/
|
|
1697
|
+
evaluationContext?: () => EvaluationContext;
|
|
1684
1698
|
/** Optional logger for diagnostic output. Falls back to no-op logger if not provided. */
|
|
1685
1699
|
logger?: Logger;
|
|
1686
1700
|
}
|
|
@@ -1726,6 +1740,18 @@ declare function evaluateNonFieldDisabled(ctx: NonFieldLogicContext): boolean;
|
|
|
1726
1740
|
* @returns A computed signal that returns true when the element should be disabled
|
|
1727
1741
|
*/
|
|
1728
1742
|
declare function resolveNonFieldDisabled(ctx: NonFieldLogicContext): Signal<boolean>;
|
|
1743
|
+
/**
|
|
1744
|
+
* Builds a lazy full evaluation-context factory (with `externalData` and `customFunctions`)
|
|
1745
|
+
* for a non-form-bound element. Call from a mapper factory body (injection context); the
|
|
1746
|
+
* returned thunk is invoked lazily inside the mapper/resolver computed so external-data
|
|
1747
|
+
* signal reads stay reactive. Single source for that factory, shared by the container/text
|
|
1748
|
+
* mappers (via `applyHiddenLogic`) and the button mappers.
|
|
1749
|
+
*/
|
|
1750
|
+
declare function injectNonFieldEvaluationContext(fieldDef: {
|
|
1751
|
+
key?: string;
|
|
1752
|
+
}, options?: {
|
|
1753
|
+
scopeToArrayItem?: boolean;
|
|
1754
|
+
}): () => EvaluationContext;
|
|
1729
1755
|
|
|
1730
1756
|
/** Text element type for rendering different HTML text elements */
|
|
1731
1757
|
type TextElementType = 'p' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'span';
|
|
@@ -1967,11 +1993,12 @@ declare const ADDON_TYPE_REGISTRY: InjectionToken<Map<string, AddonTypeDefinitio
|
|
|
1967
1993
|
declare const ADDON_TYPE_COMPONENT_CACHE: InjectionToken<Map<string, Type<unknown>>>;
|
|
1968
1994
|
|
|
1969
1995
|
/**
|
|
1970
|
-
* Multi-provider token used by `withCustomAddon(...)` features
|
|
1971
|
-
* addon type definitions. `provideDynamicForm` aggregates all
|
|
1972
|
-
* the form-scoped `ADDON_TYPE_REGISTRY` map.
|
|
1996
|
+
* Multi-provider token used by `withCustomAddon(...)` features and UI adapters
|
|
1997
|
+
* to contribute addon type definitions. `provideDynamicForm` aggregates all
|
|
1998
|
+
* values into the form-scoped `ADDON_TYPE_REGISTRY` map.
|
|
1973
1999
|
*
|
|
1974
|
-
*
|
|
2000
|
+
* Part of the `/integration` adapter contract: each UI adapter registers its
|
|
2001
|
+
* addon kinds against this token in its provider.
|
|
1975
2002
|
*/
|
|
1976
2003
|
declare const ADDON_TYPE_DEFINITIONS: InjectionToken<readonly AddonTypeDefinition<_ng_forge_dynamic_forms_internal.BaseAddon<_ng_forge_dynamic_forms_internal.AddonSlot>>[]>;
|
|
1977
2004
|
|
|
@@ -2363,80 +2390,18 @@ declare class AsyncConditionFunctionCacheService {
|
|
|
2363
2390
|
readonly asyncConditionFunctionCache: Map<string, LogicFn<unknown, boolean>>;
|
|
2364
2391
|
}
|
|
2365
2392
|
|
|
2366
|
-
/** Creates a logic function for an async condition. */
|
|
2367
|
-
declare function createAsyncConditionLogicFunction<TValue>(condition: AsyncCondition): LogicFn<TValue, boolean>;
|
|
2368
|
-
|
|
2369
2393
|
/**
|
|
2370
2394
|
* Evaluate conditional expression
|
|
2371
2395
|
* Uses secure AST-based parsing for JavaScript expressions
|
|
2372
2396
|
*/
|
|
2373
2397
|
declare function evaluateCondition(expression: ConditionalExpression, context: EvaluationContext): boolean;
|
|
2374
2398
|
|
|
2375
|
-
/**
|
|
2376
|
-
* Trigger value carried through the debounced reactive pipeline.
|
|
2377
|
-
*
|
|
2378
|
-
* @internal
|
|
2379
|
-
*/
|
|
2380
|
-
interface Trigger<TPayload> {
|
|
2381
|
-
key: string;
|
|
2382
|
-
payload: TPayload;
|
|
2383
|
-
}
|
|
2384
|
-
/**
|
|
2385
|
-
* Configuration passed to {@link createDebouncedResourceLogicFn}.
|
|
2386
|
-
*
|
|
2387
|
-
* @internal
|
|
2388
|
-
*/
|
|
2389
|
-
interface DebouncedResourceLogicFnConfig<TValue, TPayload, TResult> {
|
|
2390
|
-
/** Default value returned by the resource while loading / pending. */
|
|
2391
|
-
pendingValue: TResult;
|
|
2392
|
-
/** Debounce window (ms) applied to the trigger signal before the resource sees it. */
|
|
2393
|
-
debounceMs: number;
|
|
2394
|
-
injector: Injector;
|
|
2395
|
-
/**
|
|
2396
|
-
* Builds the per-emission inner observable. Called every time the debounced
|
|
2397
|
-
* trigger key changes; the resource swaps to the new stream automatically.
|
|
2398
|
-
*/
|
|
2399
|
-
buildStream: (payload: TPayload) => Observable<TResult>;
|
|
2400
|
-
/**
|
|
2401
|
-
* Called per LogicFn invocation. Returns one of:
|
|
2402
|
-
* - `{ kind: 'trigger', key, payload }` — set the trigger to this and
|
|
2403
|
-
* return the (potentially still-loading) resource value.
|
|
2404
|
-
* - `{ kind: 'returnEarly', value }` — bypass the resource and return
|
|
2405
|
-
* this value directly (used by HTTP for response-cache hits — the
|
|
2406
|
-
* cached value is authoritative and overrides any sticky resource value).
|
|
2407
|
-
* - `{ kind: 'holdPrevious' }` — bypass the resource update but return
|
|
2408
|
-
* the resource's current sticky value (its last resolved value via
|
|
2409
|
-
* `withPreviousValue`, or `pendingValue` if it never resolved). Used
|
|
2410
|
-
* by HTTP when the request template is temporarily unresolvable so
|
|
2411
|
-
* the UI doesn't flicker back to `pendingValue`.
|
|
2412
|
-
*/
|
|
2413
|
-
resolve: (ctx: FieldContext<TValue>) => {
|
|
2414
|
-
kind: 'trigger';
|
|
2415
|
-
key: string;
|
|
2416
|
-
payload: TPayload;
|
|
2417
|
-
} | {
|
|
2418
|
-
kind: 'returnEarly';
|
|
2419
|
-
value: TResult;
|
|
2420
|
-
} | {
|
|
2421
|
-
kind: 'holdPrevious';
|
|
2422
|
-
};
|
|
2423
|
-
}
|
|
2424
|
-
/**
|
|
2425
|
-
* Shared scaffolding for both async-function and HTTP condition LogicFns.
|
|
2426
|
-
*
|
|
2427
|
-
* @internal
|
|
2428
|
-
*/
|
|
2429
|
-
declare function createDebouncedResourceLogicFn<TValue, TPayload, TResult>(config: DebouncedResourceLogicFnConfig<TValue, TPayload, TResult>): LogicFn<TValue, TResult>;
|
|
2430
|
-
|
|
2431
2399
|
/** DI-scoped cache for HTTP condition logic functions. */
|
|
2432
2400
|
declare class HttpConditionFunctionCacheService {
|
|
2433
2401
|
/** Cache for HTTP condition logic functions, keyed by serialized condition. */
|
|
2434
2402
|
readonly httpConditionFunctionCache: Map<string, LogicFn<unknown, boolean>>;
|
|
2435
2403
|
}
|
|
2436
2404
|
|
|
2437
|
-
/** Creates a logic function for an HTTP condition. */
|
|
2438
|
-
declare function createHttpConditionLogicFunction<TValue>(condition: HttpCondition): LogicFn<TValue, boolean>;
|
|
2439
|
-
|
|
2440
2405
|
/**
|
|
2441
2406
|
* Create a logic function from a conditional expression.
|
|
2442
2407
|
*
|
|
@@ -2619,24 +2584,6 @@ declare class ExpressionParserError extends DynamicFormError {
|
|
|
2619
2584
|
interface EvaluationScope {
|
|
2620
2585
|
[key: string]: unknown;
|
|
2621
2586
|
}
|
|
2622
|
-
/** Safely evaluates an AST node with a given context */
|
|
2623
|
-
declare class Evaluator {
|
|
2624
|
-
private readonly scope;
|
|
2625
|
-
private readonly expression;
|
|
2626
|
-
constructor(scope: EvaluationScope, expression: string);
|
|
2627
|
-
/** Evaluate an AST node */
|
|
2628
|
-
evaluate(node: ASTNode): unknown;
|
|
2629
|
-
private evaluateIdentifier;
|
|
2630
|
-
private evaluateMemberAccess;
|
|
2631
|
-
private evaluateComputedMemberAccess;
|
|
2632
|
-
private evaluateBinaryOp;
|
|
2633
|
-
private evaluateUnaryOp;
|
|
2634
|
-
private evaluateCallExpression;
|
|
2635
|
-
private evaluateArrayLiteral;
|
|
2636
|
-
private evaluateObjectLiteral;
|
|
2637
|
-
private evaluateArrowFunction;
|
|
2638
|
-
private isMethodSafe;
|
|
2639
|
-
}
|
|
2640
2587
|
|
|
2641
2588
|
/** Secure expression parser that uses AST-based evaluation */
|
|
2642
2589
|
declare class ExpressionParser {
|
|
@@ -2656,66 +2603,6 @@ declare class ExpressionParser {
|
|
|
2656
2603
|
};
|
|
2657
2604
|
}
|
|
2658
2605
|
|
|
2659
|
-
/**
|
|
2660
|
-
* Parses tokens into an Abstract Syntax Tree (AST)
|
|
2661
|
-
* Uses recursive descent parsing with operator precedence
|
|
2662
|
-
*/
|
|
2663
|
-
declare class Parser {
|
|
2664
|
-
private tokens;
|
|
2665
|
-
private current;
|
|
2666
|
-
private readonly expression;
|
|
2667
|
-
constructor(expression: string);
|
|
2668
|
-
/** Parse the expression into an AST */
|
|
2669
|
-
parse(): ASTNode;
|
|
2670
|
-
private parseExpression;
|
|
2671
|
-
/**
|
|
2672
|
-
* Ternary `test ? consequent : alternate` — right-associative, sits between
|
|
2673
|
-
* the arrow-function check and logical-or in precedence.
|
|
2674
|
-
*/
|
|
2675
|
-
private parseConditional;
|
|
2676
|
-
/**
|
|
2677
|
-
* Attempts to parse an arrow function. Returns null and leaves position
|
|
2678
|
-
* unchanged if the next tokens don't form an arrow function head.
|
|
2679
|
-
*/
|
|
2680
|
-
private tryParseArrowFunction;
|
|
2681
|
-
private checkAt;
|
|
2682
|
-
private parseLogicalOr;
|
|
2683
|
-
private parseLogicalAnd;
|
|
2684
|
-
private parseEquality;
|
|
2685
|
-
private parseComparison;
|
|
2686
|
-
private parseAddition;
|
|
2687
|
-
private parseMultiplication;
|
|
2688
|
-
private parseUnary;
|
|
2689
|
-
private parsePostfix;
|
|
2690
|
-
private parsePrimary;
|
|
2691
|
-
private parseArgumentList;
|
|
2692
|
-
private parseArrayElements;
|
|
2693
|
-
private parseObjectProperties;
|
|
2694
|
-
private match;
|
|
2695
|
-
private check;
|
|
2696
|
-
private advance;
|
|
2697
|
-
private isAtEnd;
|
|
2698
|
-
private peek;
|
|
2699
|
-
private previous;
|
|
2700
|
-
private consume;
|
|
2701
|
-
}
|
|
2702
|
-
|
|
2703
|
-
/** Tokenizes an expression string into tokens */
|
|
2704
|
-
declare class Tokenizer {
|
|
2705
|
-
private position;
|
|
2706
|
-
private readonly expression;
|
|
2707
|
-
constructor(expression: string);
|
|
2708
|
-
/** Tokenize the entire expression */
|
|
2709
|
-
tokenize(): Token[];
|
|
2710
|
-
private skipWhitespace;
|
|
2711
|
-
private nextToken;
|
|
2712
|
-
private readString;
|
|
2713
|
-
private readNumber;
|
|
2714
|
-
private readIdentifierOrKeyword;
|
|
2715
|
-
private getKeywordType;
|
|
2716
|
-
private readOperatorOrPunctuation;
|
|
2717
|
-
}
|
|
2718
|
-
|
|
2719
2606
|
/** TTL cache for HTTP condition responses with max entries eviction. */
|
|
2720
2607
|
declare class HttpConditionCache {
|
|
2721
2608
|
private readonly cache;
|
|
@@ -2734,9 +2621,6 @@ declare const HTTP_CONDITION_CACHE: InjectionToken<HttpConditionCache>;
|
|
|
2734
2621
|
*/
|
|
2735
2622
|
declare function resolveHttpRequest(config: HttpRequestConfig, context: EvaluationContext): HttpResourceRequest | null;
|
|
2736
2623
|
|
|
2737
|
-
/** Evaluates an HTTP response against a `HttpValidationResponseMapping` to produce a validation result. */
|
|
2738
|
-
declare function evaluateHttpValidationResponse(response: unknown, mapping: HttpValidationResponseMapping, logger: Logger): ValidationError$1 | null;
|
|
2739
|
-
|
|
2740
2624
|
/**
|
|
2741
2625
|
* Service that provides field evaluation context by combining
|
|
2742
2626
|
* field context with root form registry information.
|
|
@@ -2774,8 +2658,14 @@ declare class FieldContextRegistryService {
|
|
|
2774
2658
|
*
|
|
2775
2659
|
* @param fieldPath - The key/path of the display-only component
|
|
2776
2660
|
* @param customFunctions - Optional custom functions for expression evaluation
|
|
2777
|
-
|
|
2778
|
-
|
|
2661
|
+
* @param arrayScope - When the element lives inside an array item, scopes `formValue`
|
|
2662
|
+
* to that item so conditions resolve against sibling fields, matching leaf fields.
|
|
2663
|
+
*/
|
|
2664
|
+
createDisplayOnlyContext(fieldPath: string, customFunctions?: Record<string, (context: EvaluationContext) => unknown>, arrayScope?: {
|
|
2665
|
+
arrayKey: string;
|
|
2666
|
+
index: number;
|
|
2667
|
+
localKey: string;
|
|
2668
|
+
}): EvaluationContext;
|
|
2779
2669
|
static ɵfac: i0.ɵɵFactoryDeclaration<FieldContextRegistryService, never>;
|
|
2780
2670
|
static ɵprov: i0.ɵɵInjectableDeclaration<FieldContextRegistryService>;
|
|
2781
2671
|
}
|
|
@@ -2797,7 +2687,7 @@ declare class FunctionRegistryService {
|
|
|
2797
2687
|
* @param fn - Function that receives EvaluationContext and returns any value
|
|
2798
2688
|
* @param options - Optional configuration for the function
|
|
2799
2689
|
*/
|
|
2800
|
-
registerCustomFunction(name: string, fn: CustomFunction
|
|
2690
|
+
registerCustomFunction<TFormValue extends Record<string, unknown> = Record<string, unknown>>(name: string, fn: CustomFunction<TFormValue>, options?: CustomFunctionOptions): void;
|
|
2801
2691
|
/**
|
|
2802
2692
|
* Get the scope of a registered custom function.
|
|
2803
2693
|
*
|
|
@@ -2833,7 +2723,7 @@ declare class FunctionRegistryService {
|
|
|
2833
2723
|
*
|
|
2834
2724
|
* @param derivations - Object mapping function names to derivation functions
|
|
2835
2725
|
*/
|
|
2836
|
-
setDerivationFunctions(derivations: Record<string, CustomFunction
|
|
2726
|
+
setDerivationFunctions<TFormValue extends Record<string, unknown> = Record<string, unknown>>(derivations: Record<string, CustomFunction<TFormValue>> | undefined): void;
|
|
2837
2727
|
/** Clear all derivation functions */
|
|
2838
2728
|
clearDerivationFunctions(): void;
|
|
2839
2729
|
/**
|
|
@@ -2853,7 +2743,7 @@ declare class FunctionRegistryService {
|
|
|
2853
2743
|
*
|
|
2854
2744
|
* @param fns - Object mapping function names to async derivation functions
|
|
2855
2745
|
*/
|
|
2856
|
-
setAsyncDerivationFunctions(fns: Record<string, AsyncDerivationFunction
|
|
2746
|
+
setAsyncDerivationFunctions<TFormValue extends Record<string, unknown> = Record<string, unknown>>(fns: Record<string, AsyncDerivationFunction<TFormValue>> | undefined): void;
|
|
2857
2747
|
/** Clear all async derivation functions */
|
|
2858
2748
|
clearAsyncDerivationFunctions(): void;
|
|
2859
2749
|
/**
|
|
@@ -2873,7 +2763,7 @@ declare class FunctionRegistryService {
|
|
|
2873
2763
|
*
|
|
2874
2764
|
* @param fns - Object mapping function names to async condition functions
|
|
2875
2765
|
*/
|
|
2876
|
-
setAsyncConditionFunctions(fns: Record<string, AsyncConditionFunction
|
|
2766
|
+
setAsyncConditionFunctions<TFormValue extends Record<string, unknown> = Record<string, unknown>>(fns: Record<string, AsyncConditionFunction<TFormValue>> | undefined): void;
|
|
2877
2767
|
/** Clear all async condition functions */
|
|
2878
2768
|
clearAsyncConditionFunctions(): void;
|
|
2879
2769
|
/**
|
|
@@ -3139,19 +3029,6 @@ interface TokenContext {
|
|
|
3139
3029
|
*/
|
|
3140
3030
|
declare function resolveTokens(args: readonly (string | number | boolean | null | undefined)[], context: TokenContext): (string | number | boolean | null | undefined | unknown)[];
|
|
3141
3031
|
|
|
3142
|
-
interface FieldWithHiddenLogic {
|
|
3143
|
-
hidden?: boolean;
|
|
3144
|
-
logic?: readonly (ContainerLogicConfig | LogicConfig)[];
|
|
3145
|
-
}
|
|
3146
|
-
/**
|
|
3147
|
-
* Applies hidden logic to a mapper's input record.
|
|
3148
|
-
*
|
|
3149
|
-
* @param inputs The mutable input record to potentially add `hidden` to
|
|
3150
|
-
* @param fieldDef The field definition containing `hidden` and `logic`
|
|
3151
|
-
* @param rootFormRegistry The root form registry for accessing form state
|
|
3152
|
-
*/
|
|
3153
|
-
declare function applyHiddenLogic(inputs: Record<string, unknown>, fieldDef: FieldWithHiddenLogic, rootFormRegistry: RootFormRegistryService): void;
|
|
3154
|
-
|
|
3155
3032
|
/**
|
|
3156
3033
|
* Maps an array field definition to component inputs.
|
|
3157
3034
|
*
|
|
@@ -3563,21 +3440,6 @@ declare function dynamicTextToObservable(value: DynamicText | undefined, injecto
|
|
|
3563
3440
|
/** Normalises a {@link DynamicValue} into a `Signal<T>`. */
|
|
3564
3441
|
declare function resolveDynamicValue<T>(value: DynamicValue<T> | undefined, fallback: T, injector?: Injector): Signal<T>;
|
|
3565
3442
|
|
|
3566
|
-
/**
|
|
3567
|
-
* Generates CSS class string for responsive grid layout based on field column configuration.
|
|
3568
|
-
*
|
|
3569
|
-
* @param fieldDef - Field definition containing column configuration
|
|
3570
|
-
* @returns CSS class string for grid layout, empty if no valid column configuration
|
|
3571
|
-
*/
|
|
3572
|
-
declare function getGridClassString(fieldDef: FieldDef<unknown>): string;
|
|
3573
|
-
/**
|
|
3574
|
-
* Builds a combined className string from a field definition.
|
|
3575
|
-
*
|
|
3576
|
-
* @param fieldDef - Field definition containing className and col properties
|
|
3577
|
-
* @returns Combined class string, or undefined if no classes
|
|
3578
|
-
*/
|
|
3579
|
-
declare function buildClassName(fieldDef: FieldDef<unknown>): string | undefined;
|
|
3580
|
-
|
|
3581
3443
|
/**
|
|
3582
3444
|
* Injection token for configuring the initialization timeout in milliseconds.
|
|
3583
3445
|
* Defaults to 10 seconds. When the timeout is reached, a warning is logged
|
|
@@ -3696,18 +3558,5 @@ declare function assertNever(value: never): never;
|
|
|
3696
3558
|
*/
|
|
3697
3559
|
declare function withPreviousValue<T>(input: Resource<T>): Resource<T>;
|
|
3698
3560
|
|
|
3699
|
-
|
|
3700
|
-
|
|
3701
|
-
* Returns an empty array if `pathKeys` is not available (e.g., in tests or older Angular versions).
|
|
3702
|
-
*/
|
|
3703
|
-
declare function safeReadPathKeys(fieldContext: FieldContext<unknown>): readonly string[];
|
|
3704
|
-
|
|
3705
|
-
/**
|
|
3706
|
-
* Serializes a value to a deterministic string for cache key generation.
|
|
3707
|
-
* Unlike JSON.stringify, this sorts object keys to ensure consistent output
|
|
3708
|
-
* regardless of property insertion order.
|
|
3709
|
-
*/
|
|
3710
|
-
declare function stableStringify(value: unknown): string;
|
|
3711
|
-
|
|
3712
|
-
export { ADDON_ACTION_HANDLERS, ADDON_ACTION_REGISTRY, ADDON_TYPE_COMPONENT_CACHE, ADDON_TYPE_DEFINITIONS, ADDON_TYPE_REGISTRY, ARRAY_CONTEXT, AsyncConditionFunctionCacheService, ComponentInitializedEvent, DEFAULT_PROPS, DEFAULT_VALIDATION_MESSAGES, DEFAULT_WRAPPERS, DEPRECATION_WARNING_TRACKER, DF_FIELD_TEMPLATES, DfAddonSlot, DynamicFormError, DynamicFormLogger, DynamicTextPipe, DynamicValueFunctionCacheService, EMIT_FORM_VALUE_ON_EVENTS, EXTERNAL_DATA, Evaluator, EventBus, ExpressionParser, ExpressionParserError, FIELD_REGISTRY, FIELD_SIGNAL_CONTEXT, FORM_ID_PREFIX, FORM_OPTIONS, FieldContextRegistryService, FunctionRegistryService, GROUP_CONTEXT, HTTP_CONDITION_CACHE, HttpConditionCache, HttpConditionFunctionCacheService, INITIALIZATION_TIMEOUT_MS, LogicFunctionCacheService, NoopLogger, Parser, READONLY_FIELD_TREE_CACHE, RootFormRegistryService, TokenType, Tokenizer, WRAPPER_AUTO_ASSOCIATIONS, WRAPPER_COMPONENT_CACHE, WRAPPER_REGISTRY, applyHiddenLogic, applyMetaToElement, applyValidator, applyValidators, arrayFieldMapper, assertNever, baseFieldMapper, buildBaseInputs, buildClassName, compareValues, containerFieldMapper, createAddonActionRegistry, createAsyncConditionLogicFunction, createDebouncedLogicFunction, createDebouncedResourceLogicFn, createDefaultDerivationLogConfig, createDynamicValueFunction, createFormFieldStateMap, createHttpConditionLogicFunction, createInitializationTracker, createLogicFunction, createWarningTracker, deepMergeDefaults, derivedFromDeferred, detectFormMode, dynamicTextToObservable, evaluateCondition, evaluateHttpValidationResponse, evaluateNonFieldDisabled, evaluateNonFieldHidden, extractExpressionDependencies, extractStringDependencies, getArrayLength, getChangedKeys, getFieldValueHandling, getGridClassString, getNestedValue, groupFieldMapper, hasChildFields, hasCrossFieldWhenCondition, hasFormValue, hasNestedProperty, hasTargetProperty, injectAddonTypeRegistry, injectFieldSignalContext, injectFieldsSupportingAddons, interpolateParams, isArrayField, isCheckedField, isContainerField, isCrossFieldBuiltInValidator, isCrossFieldExpression, isCrossFieldSchema, isCrossFieldStateLogic, isCrossFieldValidator, isDerivationLogicConfig, isDisplayOnlyField, isEqual, isFieldBoundContext, isFormStateCondition, isFunctionHttpValidator, isGenericContainerField, isGroupField, isHiddenField, isLeafField, isNonPagedForm, isPageField, isPagedForm, isResourceBasedValidator, isRowField, isSimplifiedArrayField, isStateLogicConfig, isValidNonPagedForm, isValidPagedForm, isValueBearingField, isValueField, isWrapperTypeDefinition, keyBy, mapValues, memoize, normalizeFieldsArray, omit, pageFieldMapper, readFieldStateInfo, resolveDynamicValue, resolveHttpRequest, resolveNextButtonDisabled, resolveNonFieldDisabled, resolveNonFieldHidden, resolveSubmitButtonDisabled, resolveTokens, rowFieldMapper, runPresetAction, safeReadPathKeys, setupInitializationTracking, shouldLog, stableStringify, textFieldMapper, toReadonlyFieldTree, toReadonlyFieldTreeCached, validatePageNesting, withPreviousValue, writeToFieldValue };
|
|
3713
|
-
export type { ASTNode, AddonActionContext, AddonActionHandler, AddonActionPreset, AddonShapeValidator, AddonSlot, AddonTypeDefinition, AddonTypeRegistryRef, AddonTypeSchema, AndCondition, AnyAddon, ArrayAllowedChildren, ArrayButtonConfig, ArrayComponent, ArrayContext, ArrayField, ArrayFieldTree, ArrayItemDefinition, ArrayItemTemplate, ArrayLiteralNode, ArrowFunctionNode, AsyncCondition, AsyncConditionFunction, AsyncCustomValidator, AsyncDerivationFunction, AsyncValidatorConfig, AvailableFieldTypes, BaseAddon, BaseCheckedField, BaseValidatorConfig, BaseValueField, BinaryOpNode, BuiltInValidatorConfig, ButtonLogicContext, CallExpressionNode, CheckedFieldComponent, CommonAddonActionPreset, CommonAddonSlot, ComparisonOperator, ComponentAddon, ComputedMemberAccessNode, ConditionalExpression, ConditionalNode, ContainerAllowedChildren, ContainerComponent, ContainerField, ContainerFieldTypes, ContainerLogicConfig, CrossFieldDetectionContext, CssWrapper, CustomCondition, CustomFnConfig, CustomFunction, CustomFunctionOptions, CustomFunctionScope, CustomValidator, CustomValidatorConfig, DebouncedResourceLogicFnConfig, DeclarativeHttpValidatorConfig, DerivationLogConfig, DerivationLogLevel, DerivationLogicConfig, DerivedFromDeferredOptions, DynamicFormActionRegistry, DynamicFormAddonActionPresetRegistry, DynamicFormAddonRegistry, DynamicFormAddonSlotRegistry, DynamicFormFieldRegistry, DynamicText, DynamicValue, EvaluationContext, EvaluationScope, ExtractField, FieldAddonSupport, FieldAddonSupportEntry, FieldBoundAddonActionContext, FieldComponent, FieldDef, FieldMeta, FieldOption, FieldPathAccess, FieldRegistryContainers, FieldRegistryLeaves, FieldRegistryWrappers, FieldScope, FieldSignalContext, FieldStateContext, FieldStateInfo, FieldTreeRecord, FieldTypeDefinition, FieldValueCondition, FieldWithValidation, FieldWrapper, FormConfig, FormEvent, FormEventConstructor, FormFieldStateMap, FormMode, FormModeDetectionResult, FormOptions, FormStateCondition, FunctionHttpValidatorConfig, GroupAllowedChildren, GroupComponent, GroupContext, GroupField, HiddenField, HiddenScalar, HiddenValue, HttpCondition, HttpCustomValidator, HttpRequestConfig, HttpResourceRequest, HttpValidationResponseMapping, IdentifierNode, InferFormModel, InferFormValue, InitializationTrackingOptions, JavascriptCondition, LazyComponentLoader, LeafFieldTypes, LiteralNode, Logger, LogicConfig, LogicTrigger, MapperFn, MemberAccessNode, MemoizeOptions, NarrowField, NarrowFields, NextButtonOptions, NonFieldLogicConfig, NonFieldLogicContext, NonFieldLogicType, ObjectLiteralNode, OrCondition, OrphanAddonActionContext, PageAllowedChildren, PageField, PresetCollaborators, Prettify, ReadonlyFieldTree, RegisteredActionRef, RegisteredFieldTypes, RegisteredWrapperTypes, RenderReadyInput, ResolvedValidationExecutionConfig, ResolvedValueExclusionConfig, RowAllowedChildren, RowComponent, RowField, RowWrapper, SchemaApplicationConfig, SchemaDefinition, SimplifiedArrayField, StateLogicConfig, StateLogicType, SubmissionActionResult, SubmissionConfig, SubmitButtonOptions, TemplateAddon, TextAddon, TextElementType, TextField, TextProps, Token, TokenContext, Trigger, UnaryOpNode, ValidationError, ValidationExecutionConfig, ValidationMessages, ValidatorConfig, ValueExclusionConfig, ValueFieldComponent, ValueHandlingMode, ValueType, WarningTracker, WithInputSignals, WrapperAutoAssociations, WrapperConfig, WrapperFieldInputs, WrapperTypeDefinition };
|
|
3561
|
+
export { ADDON_ACTION_HANDLERS, ADDON_ACTION_REGISTRY, ADDON_TYPE_COMPONENT_CACHE, ADDON_TYPE_DEFINITIONS, ADDON_TYPE_REGISTRY, ARRAY_CONTEXT, AsyncConditionFunctionCacheService, ComponentInitializedEvent, DEFAULT_PROPS, DEFAULT_VALIDATION_MESSAGES, DEFAULT_WRAPPERS, DEPRECATION_WARNING_TRACKER, DF_FIELD_TEMPLATES, DfAddonSlot, DynamicFormError, DynamicFormLogger, DynamicTextPipe, DynamicValueFunctionCacheService, EMIT_FORM_VALUE_ON_EVENTS, EXTERNAL_DATA, EventBus, ExpressionParser, ExpressionParserError, FIELD_REGISTRY, FIELD_SIGNAL_CONTEXT, FORM_ID_PREFIX, FORM_OPTIONS, FieldContextRegistryService, FunctionRegistryService, GROUP_CONTEXT, HTTP_CONDITION_CACHE, HttpConditionCache, HttpConditionFunctionCacheService, INITIALIZATION_TIMEOUT_MS, LogicFunctionCacheService, NoopLogger, READONLY_FIELD_TREE_CACHE, RootFormRegistryService, TokenType, WRAPPER_AUTO_ASSOCIATIONS, WRAPPER_COMPONENT_CACHE, WRAPPER_REGISTRY, applyMetaToElement, applyValidator, applyValidators, arrayFieldMapper, assertNever, baseFieldMapper, buildBaseInputs, compareValues, containerFieldMapper, createAddonActionRegistry, createDebouncedLogicFunction, createDefaultDerivationLogConfig, createDynamicValueFunction, createFormFieldStateMap, createInitializationTracker, createLogicFunction, createWarningTracker, deepMergeDefaults, derivedFromDeferred, detectFormMode, dynamicTextToObservable, evaluateCondition, evaluateNonFieldDisabled, evaluateNonFieldHidden, extractExpressionDependencies, extractStringDependencies, getArrayLength, getChangedKeys, getFieldValueHandling, getNestedValue, groupFieldMapper, hasChildFields, hasCrossFieldWhenCondition, hasFormValue, hasNestedProperty, hasTargetProperty, injectAddonTypeRegistry, injectFieldSignalContext, injectFieldsSupportingAddons, injectNonFieldEvaluationContext, interpolateParams, isArrayField, isCheckedField, isContainerField, isCrossFieldBuiltInValidator, isCrossFieldExpression, isCrossFieldSchema, isCrossFieldStateLogic, isCrossFieldValidator, isDerivationLogicConfig, isDisplayOnlyField, isEqual, isFieldBoundContext, isFormStateCondition, isFunctionHttpValidator, isGenericContainerField, isGroupField, isHiddenField, isLeafField, isNonPagedForm, isPageField, isPagedForm, isResourceBasedValidator, isRowField, isSimplifiedArrayField, isStateLogicConfig, isValidNonPagedForm, isValidPagedForm, isValueBearingField, isValueField, isWrapperTypeDefinition, keyBy, mapValues, memoize, normalizeFieldsArray, omit, pageFieldMapper, readFieldStateInfo, resolveDynamicValue, resolveHttpRequest, resolveNextButtonDisabled, resolveNonFieldDisabled, resolveNonFieldHidden, resolveSubmitButtonDisabled, resolveTokens, rowFieldMapper, runPresetAction, setupInitializationTracking, shouldLog, textFieldMapper, toReadonlyFieldTree, toReadonlyFieldTreeCached, validatePageNesting, withPreviousValue, writeToFieldValue };
|
|
3562
|
+
export type { ASTNode, AddonActionContext, AddonActionHandler, AddonActionPreset, AddonShapeValidator, AddonSlot, AddonTypeDefinition, AddonTypeRegistryRef, AddonTypeSchema, AndCondition, AnyAddon, ArrayAllowedChildren, ArrayButtonConfig, ArrayComponent, ArrayContext, ArrayField, ArrayFieldTree, ArrayItemDefinition, ArrayItemTemplate, ArrayLiteralNode, ArrowFunctionNode, AsyncCondition, AsyncConditionFunction, AsyncCustomValidator, AsyncDerivationFunction, AsyncValidatorConfig, AvailableFieldTypes, BaseAddon, BaseCheckedField, BaseValidatorConfig, BaseValueField, BinaryOpNode, BuiltInValidatorConfig, ButtonLogicContext, CallExpressionNode, CheckedFieldComponent, CommonAddonActionPreset, CommonAddonSlot, ComparisonOperator, ComponentAddon, ComputedMemberAccessNode, ConditionalExpression, ConditionalNode, ContainerAllowedChildren, ContainerComponent, ContainerField, ContainerFieldTypes, ContainerLogicConfig, CrossFieldDetectionContext, CssWrapper, CustomCondition, CustomFnConfig, CustomFunction, CustomFunctionOptions, CustomFunctionScope, CustomValidator, CustomValidatorConfig, DeclarativeHttpValidatorConfig, DerivationLogConfig, DerivationLogLevel, DerivationLogicConfig, DerivedFromDeferredOptions, DynamicFormActionRegistry, DynamicFormAddonActionPresetRegistry, DynamicFormAddonRegistry, DynamicFormAddonSlotRegistry, DynamicFormFieldRegistry, DynamicText, DynamicValue, EvaluationContext, ExtractField, FieldAddonSupport, FieldAddonSupportEntry, FieldBoundAddonActionContext, FieldComponent, FieldDef, FieldMeta, FieldOption, FieldPathAccess, FieldRegistryContainers, FieldRegistryLeaves, FieldRegistryWrappers, FieldScope, FieldSignalContext, FieldStateContext, FieldStateInfo, FieldTreeRecord, FieldTypeDefinition, FieldValueCondition, FieldWithValidation, FieldWrapper, FormConfig, FormEvent, FormEventConstructor, FormFieldStateMap, FormMode, FormModeDetectionResult, FormOptions, FormStateCondition, FunctionHttpValidatorConfig, GroupAllowedChildren, GroupComponent, GroupContext, GroupField, HiddenField, HiddenScalar, HiddenValue, HttpCondition, HttpCustomValidator, HttpRequestConfig, HttpResourceRequest, HttpValidationResponseMapping, IdentifierNode, InferFormModel, InferFormValue, InitializationTrackingOptions, JavascriptCondition, LazyComponentLoader, LeafFieldTypes, LiteralNode, Logger, LogicConfig, LogicTrigger, MapperFn, MemberAccessNode, MemoizeOptions, NarrowField, NarrowFields, NextButtonOptions, NonFieldLogicConfig, NonFieldLogicContext, NonFieldLogicType, ObjectLiteralNode, OrCondition, OrphanAddonActionContext, PageAllowedChildren, PageField, PresetCollaborators, Prettify, ReadonlyFieldTree, RegisteredActionRef, RegisteredFieldTypes, RegisteredWrapperTypes, RenderReadyInput, ResolvedValidationExecutionConfig, ResolvedValueExclusionConfig, RowAllowedChildren, RowComponent, RowField, RowWrapper, SchemaApplicationConfig, SchemaDefinition, SimplifiedArrayField, StateLogicConfig, StateLogicType, SubmissionActionResult, SubmissionConfig, SubmitButtonOptions, TemplateAddon, TextAddon, TextElementType, TextField, TextProps, Token, TokenContext, UnaryOpNode, ValidationError, ValidationExecutionConfig, ValidationMessages, ValidatorConfig, ValueExclusionConfig, ValueFieldComponent, ValueHandlingMode, ValueType, WarningTracker, WithInputSignals, WrapperAutoAssociations, WrapperConfig, WrapperFieldInputs, WrapperTypeDefinition };
|