( group: CanonicalGroup, values: Record<string, unknown>, overrides?: CanonicalModeOverrides )
| 152 | * Determine the active mode for a canonical group. |
| 153 | */ |
| 154 | export function resolveCanonicalMode( |
| 155 | group: CanonicalGroup, |
| 156 | values: Record<string, unknown>, |
| 157 | overrides?: CanonicalModeOverrides |
| 158 | ): CanonicalMode { |
| 159 | const override = overrides?.[group.canonicalId] |
| 160 | if (override === 'advanced' && group.advancedIds.length > 0) return 'advanced' |
| 161 | if (override === 'basic' && group.basicId) return 'basic' |
| 162 | |
| 163 | const { basicValue, advancedValue } = getCanonicalValues(group, values) |
| 164 | const hasBasic = isNonEmptyValue(basicValue) |
| 165 | const hasAdvanced = isNonEmptyValue(advancedValue) |
| 166 | |
| 167 | if (!group.basicId) return 'advanced' |
| 168 | if (!hasBasic && hasAdvanced) return 'advanced' |
| 169 | return 'basic' |
| 170 | } |
| 171 | |
| 172 | /** |
| 173 | * Evaluate a subblock condition against a map of raw values. |
no test coverage detected