@ng-forge/dynamic-forms 1.3.0-next.3 → 1.3.0
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/ng-forge-dynamic-forms-active-page-initialized.event-bnrwNw7Y.mjs +156 -0
- package/fesm2022/ng-forge-dynamic-forms-active-page-initialized.event-bnrwNw7Y.mjs.map +1 -0
- package/fesm2022/{ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-EuYCbquo.mjs → ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-DJinfAnV.mjs} +2 -2
- package/fesm2022/{ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-EuYCbquo.mjs.map → ng-forge-dynamic-forms-bootstrap-derivation-orchestrator-DJinfAnV.mjs.map} +1 -1
- package/fesm2022/{ng-forge-dynamic-forms-bootstrap-web-mcp-2wQK_wPp.mjs → ng-forge-dynamic-forms-bootstrap-web-mcp-Ce93FPLR.mjs} +2 -2
- package/fesm2022/{ng-forge-dynamic-forms-bootstrap-web-mcp-2wQK_wPp.mjs.map → ng-forge-dynamic-forms-bootstrap-web-mcp-Ce93FPLR.mjs.map} +1 -1
- package/fesm2022/{ng-forge-dynamic-forms-form-state-manager-DcOXRFRL.mjs → ng-forge-dynamic-forms-form-state-manager-3Ng7d_U2.mjs} +9 -3
- package/fesm2022/ng-forge-dynamic-forms-form-state-manager-3Ng7d_U2.mjs.map +1 -0
- package/fesm2022/ng-forge-dynamic-forms-internal.mjs +145 -14
- package/fesm2022/ng-forge-dynamic-forms-internal.mjs.map +1 -1
- package/fesm2022/{ng-forge-dynamic-forms-page-field.component-BRjQmWC9.mjs → ng-forge-dynamic-forms-page-field.component-Bsd8YpzL.mjs} +37 -5
- package/fesm2022/ng-forge-dynamic-forms-page-field.component-Bsd8YpzL.mjs.map +1 -0
- package/fesm2022/ng-forge-dynamic-forms.mjs +85 -26
- package/fesm2022/ng-forge-dynamic-forms.mjs.map +1 -1
- package/internal/src/lib/core/expressions/parser/evaluator.d.ts +26 -0
- package/internal/src/lib/core/expressions/parser/evaluator.d.ts.map +1 -0
- package/internal/src/lib/core/expressions/parser/expression-parser.d.ts +20 -0
- package/internal/src/lib/core/expressions/parser/expression-parser.d.ts.map +1 -0
- package/internal/src/lib/core/expressions/parser/parser.d.ts +51 -0
- package/internal/src/lib/core/expressions/parser/parser.d.ts.map +1 -0
- package/internal/src/lib/core/expressions/parser/static-check.d.ts +25 -0
- package/internal/src/lib/core/expressions/parser/static-check.d.ts.map +1 -0
- package/internal/src/lib/core/expressions/parser/tokenizer.d.ts +19 -0
- package/internal/src/lib/core/expressions/parser/tokenizer.d.ts.map +1 -0
- package/internal/src/lib/core/expressions/parser/types.d.ts +117 -0
- package/internal/src/lib/core/expressions/parser/types.d.ts.map +1 -0
- package/internal/src/lib/errors/dynamic-form-error.d.ts +6 -0
- package/internal/src/lib/errors/dynamic-form-error.d.ts.map +1 -0
- package/package.json +1 -1
- package/types/ng-forge-dynamic-forms-integration.d.ts +10 -2
- package/types/ng-forge-dynamic-forms-internal.d.ts +71 -3
- package/types/ng-forge-dynamic-forms.d.ts +63 -2
- package/fesm2022/ng-forge-dynamic-forms-active-page-initialized.event-CiKN-mcc.mjs +0 -12
- package/fesm2022/ng-forge-dynamic-forms-active-page-initialized.event-CiKN-mcc.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-form-state-manager-DcOXRFRL.mjs.map +0 -1
- package/fesm2022/ng-forge-dynamic-forms-page-field.component-BRjQmWC9.mjs.map +0 -1
|
@@ -490,18 +490,19 @@ var AsyncConditionFunctionCacheService = class {
|
|
|
490
490
|
asyncConditionFunctionCache = /* @__PURE__ */ new Map();
|
|
491
491
|
};
|
|
492
492
|
function compareValues(actual, expected, operator) {
|
|
493
|
+
const empty = actual === null || actual === void 0 || actual === "";
|
|
493
494
|
switch (operator) {
|
|
494
495
|
case "equals": return actual === expected;
|
|
495
496
|
case "notEquals": return actual !== expected;
|
|
496
|
-
case "greater": return Number(actual) > Number(expected);
|
|
497
|
-
case "less": return Number(actual) < Number(expected);
|
|
498
|
-
case "greaterOrEqual": return Number(actual) >= Number(expected);
|
|
499
|
-
case "lessOrEqual": return Number(actual) <= Number(expected);
|
|
500
|
-
case "contains": return String(actual).includes(String(expected));
|
|
501
|
-
case "startsWith": return String(actual).startsWith(String(expected));
|
|
502
|
-
case "endsWith": return String(actual).endsWith(String(expected));
|
|
497
|
+
case "greater": return !empty && Number(actual) > Number(expected);
|
|
498
|
+
case "less": return !empty && Number(actual) < Number(expected);
|
|
499
|
+
case "greaterOrEqual": return !empty && Number(actual) >= Number(expected);
|
|
500
|
+
case "lessOrEqual": return !empty && Number(actual) <= Number(expected);
|
|
501
|
+
case "contains": return !empty && String(actual).includes(String(expected));
|
|
502
|
+
case "startsWith": return !empty && String(actual).startsWith(String(expected));
|
|
503
|
+
case "endsWith": return !empty && String(actual).endsWith(String(expected));
|
|
503
504
|
case "matches": try {
|
|
504
|
-
return toRegExp(String(expected)).test(String(actual));
|
|
505
|
+
return toRegExp(String(expected)).test(empty ? "" : String(actual));
|
|
505
506
|
} catch {
|
|
506
507
|
return false;
|
|
507
508
|
}
|
|
@@ -549,6 +550,7 @@ var TokenType;
|
|
|
549
550
|
TokenType["LESS_EQUAL"] = "LESS_EQUAL";
|
|
550
551
|
TokenType["AND"] = "AND";
|
|
551
552
|
TokenType["OR"] = "OR";
|
|
553
|
+
TokenType["NULLISH"] = "NULLISH";
|
|
552
554
|
TokenType["NOT"] = "NOT";
|
|
553
555
|
TokenType["DOT"] = "DOT";
|
|
554
556
|
TokenType["COMMA"] = "COMMA";
|
|
@@ -764,6 +766,13 @@ var Tokenizer = class {
|
|
|
764
766
|
value: "=>",
|
|
765
767
|
position: start
|
|
766
768
|
};
|
|
769
|
+
case "??":
|
|
770
|
+
this.position += 2;
|
|
771
|
+
return {
|
|
772
|
+
type: TokenType.NULLISH,
|
|
773
|
+
value: "??",
|
|
774
|
+
position: start
|
|
775
|
+
};
|
|
767
776
|
case "?.":
|
|
768
777
|
this.position += 2;
|
|
769
778
|
return {
|
|
@@ -893,7 +902,7 @@ var Parser = class {
|
|
|
893
902
|
return this.parseConditional();
|
|
894
903
|
}
|
|
895
904
|
parseConditional() {
|
|
896
|
-
const test = this.
|
|
905
|
+
const test = this.parseShortCircuit();
|
|
897
906
|
if (!this.match(TokenType.QUESTION)) return test;
|
|
898
907
|
const consequent = this.parseExpression();
|
|
899
908
|
this.consume(TokenType.COLON, "Expected \":\" between ternary branches");
|
|
@@ -956,8 +965,28 @@ var Parser = class {
|
|
|
956
965
|
if (index < 0 || index >= this.tokens.length) return false;
|
|
957
966
|
return this.tokens[index].type === type;
|
|
958
967
|
}
|
|
959
|
-
|
|
960
|
-
|
|
968
|
+
parseShortCircuit() {
|
|
969
|
+
const first = this.parseEquality();
|
|
970
|
+
if (!this.check(TokenType.NULLISH)) {
|
|
971
|
+
const node = this.parseLogicalOr(first);
|
|
972
|
+
if (this.check(TokenType.NULLISH)) this.throwMixedNullish();
|
|
973
|
+
return node;
|
|
974
|
+
}
|
|
975
|
+
let node = first;
|
|
976
|
+
while (this.match(TokenType.NULLISH)) node = {
|
|
977
|
+
type: "BinaryOp",
|
|
978
|
+
operator: "??",
|
|
979
|
+
left: node,
|
|
980
|
+
right: this.parseEquality()
|
|
981
|
+
};
|
|
982
|
+
if (this.check(TokenType.AND) || this.check(TokenType.OR)) this.throwMixedNullish();
|
|
983
|
+
return node;
|
|
984
|
+
}
|
|
985
|
+
throwMixedNullish() {
|
|
986
|
+
throw new ExpressionParserError("Cannot mix \"??\" with \"&&\" or \"||\" without parentheses", this.peek().position, this.expression);
|
|
987
|
+
}
|
|
988
|
+
parseLogicalOr(first) {
|
|
989
|
+
let node = this.parseLogicalAnd(first);
|
|
961
990
|
while (this.match(TokenType.OR)) {
|
|
962
991
|
const operator = this.previous().value;
|
|
963
992
|
const right = this.parseLogicalAnd();
|
|
@@ -970,8 +999,8 @@ var Parser = class {
|
|
|
970
999
|
}
|
|
971
1000
|
return node;
|
|
972
1001
|
}
|
|
973
|
-
parseLogicalAnd() {
|
|
974
|
-
let node = this.parseEquality();
|
|
1002
|
+
parseLogicalAnd(first) {
|
|
1003
|
+
let node = first ?? this.parseEquality();
|
|
975
1004
|
while (this.match(TokenType.AND)) {
|
|
976
1005
|
const operator = this.previous().value;
|
|
977
1006
|
const right = this.parseEquality();
|
|
@@ -1298,6 +1327,7 @@ const SAFE_METHODS = {
|
|
|
1298
1327
|
"toUTCString"
|
|
1299
1328
|
])
|
|
1300
1329
|
};
|
|
1330
|
+
const ALLOWED_METHOD_NAMES = new Set(Object.values(SAFE_METHODS).flatMap((methods) => [...methods]));
|
|
1301
1331
|
const BLOCKED_PROPERTIES = /* @__PURE__ */ new Set([
|
|
1302
1332
|
"constructor",
|
|
1303
1333
|
"__proto__",
|
|
@@ -1357,6 +1387,7 @@ var Evaluator = class Evaluator {
|
|
|
1357
1387
|
const left = this.evaluate(node.left);
|
|
1358
1388
|
return left ? left : this.evaluate(node.right);
|
|
1359
1389
|
}
|
|
1390
|
+
if (node.operator === "??") return this.evaluate(node.left) ?? this.evaluate(node.right);
|
|
1360
1391
|
const left = this.evaluate(node.left);
|
|
1361
1392
|
const right = this.evaluate(node.right);
|
|
1362
1393
|
switch (node.operator) {
|
|
@@ -2412,6 +2443,106 @@ function createDebouncedLogicFunction(expression, debounceMs) {
|
|
|
2412
2443
|
if (cacheable) cacheService.debouncedLogicFunctionCache.set(cacheKey, fn);
|
|
2413
2444
|
return fn;
|
|
2414
2445
|
}
|
|
2446
|
+
const CONDITION_SCOPE_VARIABLES = /* @__PURE__ */ new Set([
|
|
2447
|
+
"fieldValue",
|
|
2448
|
+
"formValue",
|
|
2449
|
+
"fieldPath",
|
|
2450
|
+
"customFunctions",
|
|
2451
|
+
"groupValue",
|
|
2452
|
+
"rootFormValue",
|
|
2453
|
+
"arrayIndex",
|
|
2454
|
+
"arrayPath",
|
|
2455
|
+
"externalData",
|
|
2456
|
+
"fieldState",
|
|
2457
|
+
"formFieldState"
|
|
2458
|
+
]);
|
|
2459
|
+
function findStaticExpressionProblems(ast, scope) {
|
|
2460
|
+
const problems = /* @__PURE__ */ new Set();
|
|
2461
|
+
const visit = (node, locals) => {
|
|
2462
|
+
switch (node.type) {
|
|
2463
|
+
case "Identifier":
|
|
2464
|
+
if (!scope.has(node.name) && !locals.has(node.name)) problems.add(`'${node.name}' is not available in expressions`);
|
|
2465
|
+
return;
|
|
2466
|
+
case "MemberAccess":
|
|
2467
|
+
visit(node.object, locals);
|
|
2468
|
+
return;
|
|
2469
|
+
case "ComputedMemberAccess":
|
|
2470
|
+
visit(node.object, locals);
|
|
2471
|
+
visit(node.property, locals);
|
|
2472
|
+
return;
|
|
2473
|
+
case "CallExpression":
|
|
2474
|
+
if (node.callee.type === "MemberAccess") {
|
|
2475
|
+
if (!ALLOWED_METHOD_NAMES.has(node.callee.property)) problems.add(`method '${node.callee.property}' is not allowed`);
|
|
2476
|
+
} else problems.add(`'${describeCallee(node.callee)}(...)' is a direct function call; only allowed methods can be called`);
|
|
2477
|
+
visit(node.callee.type === "MemberAccess" ? node.callee.object : node.callee, locals);
|
|
2478
|
+
node.arguments.forEach((arg) => visit(arg, locals));
|
|
2479
|
+
return;
|
|
2480
|
+
case "BinaryOp":
|
|
2481
|
+
visit(node.left, locals);
|
|
2482
|
+
visit(node.right, locals);
|
|
2483
|
+
return;
|
|
2484
|
+
case "UnaryOp":
|
|
2485
|
+
visit(node.operand, locals);
|
|
2486
|
+
return;
|
|
2487
|
+
case "Conditional":
|
|
2488
|
+
visit(node.test, locals);
|
|
2489
|
+
visit(node.consequent, locals);
|
|
2490
|
+
visit(node.alternate, locals);
|
|
2491
|
+
return;
|
|
2492
|
+
case "ArrayLiteral":
|
|
2493
|
+
node.elements.forEach((element) => visit(element, locals));
|
|
2494
|
+
return;
|
|
2495
|
+
case "ObjectLiteral":
|
|
2496
|
+
node.properties.forEach((property) => visit(property.value, locals));
|
|
2497
|
+
return;
|
|
2498
|
+
case "ArrowFunction":
|
|
2499
|
+
visit(node.body, /* @__PURE__ */ new Set([...locals, ...node.params]));
|
|
2500
|
+
return;
|
|
2501
|
+
case "Literal": return;
|
|
2502
|
+
}
|
|
2503
|
+
};
|
|
2504
|
+
visit(ast, /* @__PURE__ */ new Set());
|
|
2505
|
+
return [...problems];
|
|
2506
|
+
}
|
|
2507
|
+
function describeCallee(node) {
|
|
2508
|
+
return node.type === "Identifier" ? node.name : "expression";
|
|
2509
|
+
}
|
|
2510
|
+
function findFieldExpressionProblems(field) {
|
|
2511
|
+
const found = [];
|
|
2512
|
+
const seen = /* @__PURE__ */ new WeakSet();
|
|
2513
|
+
const check = (expression, path) => {
|
|
2514
|
+
let problems;
|
|
2515
|
+
try {
|
|
2516
|
+
problems = findStaticExpressionProblems(ExpressionParser.parse(expression), CONDITION_SCOPE_VARIABLES);
|
|
2517
|
+
} catch (e) {
|
|
2518
|
+
problems = [e instanceof Error ? e.message : String(e)];
|
|
2519
|
+
}
|
|
2520
|
+
if (problems.length > 0) found.push({
|
|
2521
|
+
path,
|
|
2522
|
+
expression,
|
|
2523
|
+
message: problems.join("; ")
|
|
2524
|
+
});
|
|
2525
|
+
};
|
|
2526
|
+
const visit = (node, path) => {
|
|
2527
|
+
if (node === null || typeof node !== "object" || seen.has(node)) return;
|
|
2528
|
+
seen.add(node);
|
|
2529
|
+
if (Array.isArray(node)) {
|
|
2530
|
+
node.forEach((item, i) => visit(item, `${path}[${i}]`));
|
|
2531
|
+
return;
|
|
2532
|
+
}
|
|
2533
|
+
const record = node;
|
|
2534
|
+
const type = record["type"];
|
|
2535
|
+
if ((type === "javascript" || type === "derivation") && typeof record["expression"] === "string") check(record["expression"], path);
|
|
2536
|
+
if ((type === "and" || type === "or") && Array.isArray(record["conditions"]) && record["conditions"].length === 0) found.push({
|
|
2537
|
+
path,
|
|
2538
|
+
message: `an empty '${type}' group never fires`
|
|
2539
|
+
});
|
|
2540
|
+
for (const [key, value] of Object.entries(record)) if (key !== "fields") visit(value, path ? `${path}.${key}` : key);
|
|
2541
|
+
};
|
|
2542
|
+
if (field !== null && typeof field === "object" && typeof field["derivation"] === "string") check(field["derivation"], "derivation");
|
|
2543
|
+
visit(field, "");
|
|
2544
|
+
return found;
|
|
2545
|
+
}
|
|
2415
2546
|
function getArrayLength(arrayFieldTree) {
|
|
2416
2547
|
const value = arrayFieldTree().value();
|
|
2417
2548
|
return Array.isArray(value) ? value.length : 0;
|
|
@@ -3667,6 +3798,6 @@ function provideFieldErrorDisplay(wrapper) {
|
|
|
3667
3798
|
useExisting: forwardRef(wrapper)
|
|
3668
3799
|
};
|
|
3669
3800
|
}
|
|
3670
|
-
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_ERROR_DISPLAY, FIELD_REGISTRY, FIELD_SIGNAL_CONTEXT, FORM_ID_PREFIX, FORM_OPTIONS, FieldContextRegistryService, FieldErrorsWrapperBase, 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_COMPONENT_LOAD_CACHE, WRAPPER_REGISTRY, applyMetaToElement, applyValidator, applyValidators, arrayFieldMapper, assertNever, baseFieldMapper, buildBaseInputs, buildClassName, compareValues, containerFieldMapper, createAddonActionRegistry, createDebouncedLogicFunction, createDefaultDerivationLogConfig, createDynamicValueFunction, createFieldValueProxy, createFormFieldStateMap, createFormStateLogicFunction, createInitializationTracker, createLogicFunction, createResolvedErrorsSignal, createWarningTracker, deepMergeDefaults, derivedFromDeferred, detectFormMode, dynamicTextToObservable, evaluateCondition, evaluateNonFieldDisabled, evaluateNonFieldHidden, extractExpressionDependencies, extractStringDependencies, getArrayLength, getChangedKeys, getChangedKeysWithin, getFieldValueHandling, getGridClassString, getNestedValue, groupFieldMapper, hasChildFields, hasCrossFieldWhenCondition, hasFormValue, hasNestedProperty, hasTargetProperty, injectAddonTypeRegistry, injectFieldErrors, 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, provideFieldErrorDisplay, readFieldStateInfo, resolveDynamicValue, resolveHttpRequest, resolveNextButtonDisabled, resolveNonFieldDisabled, resolveNonFieldHidden, resolveSubmitButtonDisabled, resolveTokens, rowError, rowFieldMapper, runPresetAction, setupInitializationTracking, shouldLog, shouldShowErrors, textFieldMapper, toReadonlyFieldTree, toReadonlyFieldTreeCached, validatePageNesting, withPreviousValue, writeToFieldValue };
|
|
3801
|
+
export { ADDON_ACTION_HANDLERS, ADDON_ACTION_REGISTRY, ADDON_TYPE_COMPONENT_CACHE, ADDON_TYPE_DEFINITIONS, ADDON_TYPE_REGISTRY, ARRAY_CONTEXT, AsyncConditionFunctionCacheService, CONDITION_SCOPE_VARIABLES, 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_ERROR_DISPLAY, FIELD_REGISTRY, FIELD_SIGNAL_CONTEXT, FORM_ID_PREFIX, FORM_OPTIONS, FieldContextRegistryService, FieldErrorsWrapperBase, 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_COMPONENT_LOAD_CACHE, WRAPPER_REGISTRY, applyMetaToElement, applyValidator, applyValidators, arrayFieldMapper, assertNever, baseFieldMapper, buildBaseInputs, buildClassName, compareValues, containerFieldMapper, createAddonActionRegistry, createDebouncedLogicFunction, createDefaultDerivationLogConfig, createDynamicValueFunction, createFieldValueProxy, createFormFieldStateMap, createFormStateLogicFunction, createInitializationTracker, createLogicFunction, createResolvedErrorsSignal, createWarningTracker, deepMergeDefaults, derivedFromDeferred, detectFormMode, dynamicTextToObservable, evaluateCondition, evaluateNonFieldDisabled, evaluateNonFieldHidden, extractExpressionDependencies, extractStringDependencies, findFieldExpressionProblems, findStaticExpressionProblems, getArrayLength, getChangedKeys, getChangedKeysWithin, getFieldValueHandling, getGridClassString, getNestedValue, groupFieldMapper, hasChildFields, hasCrossFieldWhenCondition, hasFormValue, hasNestedProperty, hasTargetProperty, injectAddonTypeRegistry, injectFieldErrors, 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, provideFieldErrorDisplay, readFieldStateInfo, resolveDynamicValue, resolveHttpRequest, resolveNextButtonDisabled, resolveNonFieldDisabled, resolveNonFieldHidden, resolveSubmitButtonDisabled, resolveTokens, rowError, rowFieldMapper, runPresetAction, setupInitializationTracking, shouldLog, shouldShowErrors, textFieldMapper, toReadonlyFieldTree, toReadonlyFieldTreeCached, validatePageNesting, withPreviousValue, writeToFieldValue };
|
|
3671
3802
|
|
|
3672
3803
|
//# sourceMappingURL=ng-forge-dynamic-forms-internal.mjs.map
|