* Register list of suggestions for a class
(classRoot: string, defns: () => SuggestionDefinition[])
| 298 | * Register list of suggestions for a class |
| 299 | */ |
| 300 | function suggest(classRoot: string, defns: () => SuggestionDefinition[]) { |
| 301 | function* resolve(themeKeys: ThemeKey[]) { |
| 302 | for (let value of theme.keysInNamespaces(themeKeys)) { |
| 303 | yield value.replace(LEGACY_NUMERIC_KEY, (_, a, b) => { |
| 304 | return `${a}.${b}` |
| 305 | }) |
| 306 | } |
| 307 | } |
| 308 | |
| 309 | let suggestedFractions = [ |
| 310 | '1/2', |
| 311 | '1/3', |
| 312 | '2/3', |
| 313 | '1/4', |
| 314 | '2/4', |
| 315 | '3/4', |
| 316 | '1/5', |
| 317 | '2/5', |
| 318 | '3/5', |
| 319 | '4/5', |
| 320 | '1/6', |
| 321 | '2/6', |
| 322 | '3/6', |
| 323 | '4/6', |
| 324 | '5/6', |
| 325 | '1/12', |
| 326 | '2/12', |
| 327 | '3/12', |
| 328 | '4/12', |
| 329 | '5/12', |
| 330 | '6/12', |
| 331 | '7/12', |
| 332 | '8/12', |
| 333 | '9/12', |
| 334 | '10/12', |
| 335 | '11/12', |
| 336 | ] |
| 337 | |
| 338 | utilities.suggest(classRoot, () => { |
| 339 | let groups: SuggestionGroup[] = [] |
| 340 | |
| 341 | for (let defn of defns()) { |
| 342 | if (typeof defn === 'string') { |
| 343 | groups.push({ values: [defn], modifiers: [] }) |
| 344 | continue |
| 345 | } |
| 346 | |
| 347 | let values: (string | null)[] = [ |
| 348 | ...(defn.values ?? []), |
| 349 | ...resolve(defn.valueThemeKeys ?? []), |
| 350 | ] |
| 351 | |
| 352 | let modifiers = [...(defn.modifiers ?? []), ...resolve(defn.modifierThemeKeys ?? [])] |
| 353 | |
| 354 | if (defn.supportsFractions) { |
| 355 | values.push(...suggestedFractions) |
| 356 | } |
| 357 |
no test coverage detected