# core/selectors/concept.selector.ts

> 5 lines of code and 1 definition.

Tree: GovLab Quality
Language: typescript
Layer: application
Canonical: https://banes-lab.com/anatomy/quality#file-quality-core-selectors-concept-selector-ts
Source text: https://banes-lab.com/source/quality/core/selectors/concept.selector.ts.txt

Listed in [core/selectors](https://banes-lab.com/api/source/quality/core/selectors.md), after [core/selectors/catalog.selector.ts](https://banes-lab.com/source/quality/core/selectors/catalog.selector.ts.md) and before [core/selectors/config.selector.ts](https://banes-lab.com/source/quality/core/selectors/config.selector.ts.md).

## Definitions

- `validConcepts` (lexical_declaration, line 4, exported)

## Contained in

- [core/selectors](https://banes-lab.com/anatomy/quality/folder-quality-core-selectors.md)

## Uses

- [core/loaders/quality.loader.ts](https://banes-lab.com/source/quality/core/loaders/quality.loader.ts.md)

## Used by

- [core/validators/concern.validator.ts](https://banes-lab.com/source/quality/core/validators/concern.validator.ts.md)

## Linked from

- [core/loaders](https://banes-lab.com/anatomy/quality/folder-quality-core-loaders.md)
- [core/validators](https://banes-lab.com/anatomy/quality/folder-quality-core-validators.md)

## Source

```typescript
import type { QualityData } from "#types/catalog.types";
import { loadQualityData } from "#core/loaders/quality.loader";

export const validConcepts = function validConcepts(data: QualityData = loadQualityData()): Set<string> {
    return new Set(data.rules.flatMap((rule) => rule.canonical ?? []));
};
```
