UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

50 lines 2.33 kB
//#region src/libs/collection/custom-fields/conditions/index.d.ts /** * Field condition config and evaluator. * * This module must stay dependency free. The admin SPA bundles it directly * via the `@field-conditions` alias so the admin and the backend share the * same deterministic evaluation logic. */ declare const fieldConditionOperators: readonly ["equals", "notEquals", "isEmpty", "isNotEmpty", "contains", "notContains"]; type FieldConditionOperator = (typeof fieldConditionOperators)[number]; declare const fieldConditionTranslationScopes: readonly ["same", "default", "any"]; type FieldConditionTranslationScope = (typeof fieldConditionTranslationScopes)[number]; type FieldConditionRuleValue = string | number | boolean | null; type FieldConditionRule = { field: string; operator: FieldConditionOperator; value?: FieldConditionRuleValue; }; type FieldConditionAction = "show" | "hide"; type FieldConditionConfig = { action?: FieldConditionAction; translationScope?: FieldConditionTranslationScope; /** Outer array is OR'd, inner rule arrays are AND'd. */ groups: FieldConditionRule[][]; }; type FieldConditionTargetResolution = { resolved: true; value: unknown; } | { resolved: true; match: "any"; values: unknown[]; } | { resolved: false; }; type FieldConditionTargetResolver = (fieldKey: string) => FieldConditionTargetResolution; /** * Evaluates a single condition rule against a resolved target value. */ declare const evaluateConditionRule: (rule: FieldConditionRule, value: unknown) => boolean; /** * Evaluates a field condition and returns whether the field is visible. * * - Groups are OR'd, rules within a group are AND'd. * - Rules that reference an unresolvable target fail their group. * - Conditions without any non-empty rule group leave the field visible. */ declare const evaluateFieldCondition: (condition: FieldConditionConfig | undefined, resolveTarget: FieldConditionTargetResolver) => boolean; //#endregion export { FieldConditionAction, FieldConditionConfig, FieldConditionOperator, FieldConditionRule, FieldConditionRuleValue, FieldConditionTargetResolution, FieldConditionTargetResolver, FieldConditionTranslationScope, evaluateConditionRule, evaluateFieldCondition, fieldConditionOperators, fieldConditionTranslationScopes }; //# sourceMappingURL=index.d.mts.map