---
title: "Dynamic Fields Inline Filter Inventory"
slug: "dynamic-fields-inline-filter-inventory"
description: "Inventario runtime-first dos componentes inline usados pela trilha de filtro dinamico, com controlType canonico, paths e shape de valor."
doc_type: "reference"
document_kind: "host-guide"
component: "dynamic-fields"
category: "components"
audience:
  - "frontend"
  - "host"
  - "architect"
  - "platform-team"
level: "advanced"
status: "active"
owner: "praxis-ui"
tags:
  - "dynamic-fields"
  - "dynamic-filter"
  - "inline"
  - "inventory"
  - "runtime"
order: 41
icon: "inventory_2"
toc: true
sidebar: true
search_boost: 1.14
reading_time: 18
estimated_setup_time: 20
version: "1.0"
related_docs:
  - "dynamic-fields-inline-components-guide"
  - "dynamic-fields-inline-filter-catalog"
  - "dynamic-fields-inline-filter-runtime-contract"
  - "dynamic-inline-filter-catalog"
  - "dynamic-filter-payload-contract"
keywords:
  - "inlineSelect"
  - "inlinePhone"
  - "INLINE_FILTER_CONTROL_TYPES"
  - "ComponentRegistryService"
  - "praxis-filter"
source_of_truth:
  - "projects/praxis-core/src/lib/utils/inline-filter-controls.util.ts"
  - "projects/praxis-dynamic-fields/src/lib/services/component-registry/component-registry.service.ts"
  - "projects/praxis-table/src/lib/components/praxis-filter/praxis-filter.component.ts"
  - "projects/praxis-table/src/lib/filter-settings/filter-settings.component.ts"
last_updated: "2026-05-26"
---

# Dynamic Fields Inline Filter Inventory

## Objetivo

Inventariar os inline filter components reais do runtime, sem misturar com o catalogo geral de fields do formulario.

## Pre-requisitos

- Leitura basica de `PraxisFilter` e `@praxisui/dynamic-fields`
- Familiaridade com `controlType`, `ComponentRegistryService` e metadata de campo

## Fonte de verdade usada

Este inventario foi derivado de quatro camadas reais:

1. `INLINE_FILTER_CONTROL_TYPES` no `@praxisui/core`
2. registro explicito no `ComponentRegistryService`
3. promocao de controls genericos para inline no `PraxisFilter`
4. configuracao canonica publicada no editor de settings do filtro

## Runtime inventory vs host consumption

Este documento continua sendo a auditoria `runtime-first` da trilha inline.

Para consumo por landing page, playground e outros hosts oficiais, a superficie publicada deve ser o catalogo exportado por `@praxisui/dynamic-fields`, que organiza os mesmos `controlType` em uma trilha `inline-filter` governada e pronta para descoberta.

Nesse catalogo exportado, a trilha inline tambem publica:

- `family`, para agrupar a natureza funcional do filtro;
- `interactionPattern`, para resumir o padrao dominante de decisao ou captura;
- `icon.key` + `icon.tone`, para identidade visual canonica em menus, vitrines e playgrounds;
- `dataSourceKind`, para explicitar custo e natureza da integracao.

Regra de uso:

- `inventory`: comprova disponibilidade real e contratos de ativacao;
- `catalog`: organiza descoberta, estados, `interactionPattern`, `icon` e snippets para hosts;
- `docs`: explicam jornada e governanca, mas nao substituem o registry nem o catalogo exportado.

Regra para hosts:

- derive navegacao, cues e iconografia do catalogo exportado da lib;
- nao use este inventario como tabela editorial para menu, cards ou vitrine.

## Regras de leitura

- `controlType canonico`: nome a ser salvo em contratos novos.
- `promocao por flag`: quando o `praxis-filter` converte um `controlType` generico para inline.
- `dependencia backend`: quando o componente depende de `resourcePath`, lookup remoto ou shape que precisa bater com `GenericFilterDTO`.

## Resumo executivo

Existem **28 controlTypes inline canonicamente publicados** no runtime:

- 28 estao definidos em `INLINE_FILTER_CONTROL_TYPES`
- 28 estao registrados em `ComponentRegistryService`
- nem todos aparecem automaticamente na toolbar
- parte deles so entra na jornada inline por `controlType` explicito
- parte deles depende de feature flags do `praxis-filter`

## Mapa de ativacao no runtime

### Inline explicito por `controlType`

Sempre entram inline quando o schema usa o `controlType` canonico:

- `inlineEntityLookup`
- `inlineTime`
- `inlineTimeRange`
- `inlineTreeSelect`
- `inlineRating`
- `inlineDistanceRadius`
- `inlinePipelineStatus`
- `inlineScorePriority`
- `inlineRelativePeriod`
- `inlineSentiment`
- `inlineColorLabel`

### Promocao de control generico para inline por flag do `praxis-filter`

Dependem do schema/base control + flags da trilha de filtro:

- `select` -> `inlineSelect`
- `multiSelect` -> `inlineMultiSelect`
- `input`/`searchInput` -> `inlineInput`
- `phone`/`tel` -> `inlinePhone`
- `numericTextBox` -> `inlineNumber`
- `currency` -> `inlineCurrency`
- `priceRange` -> `inlineCurrencyRange`
- `toggle` -> `inlineToggle`
- `rangeSlider` -> `inlineRange`
- `date`/`dateInput`/`datepicker` -> `inlineDate`
- `dateRange` -> `inlineDateRange`
- `searchable-select` -> `inlineSearchableSelect`
- `async-select` -> `inlineAsyncSelect`
- `autocomplete` -> `inlineAutocomplete`

## Familias

As colunas de implementacao e metadata abaixo descrevem artefatos internos co-localizados ao `controlType`; caminhos fisicos e nomes historicos do workspace nao fazem parte do contrato recomendado.

### Texto

| ControlType canonico | implementacao Angular | Metadata | JSON API | Valor | Visual principal | Dependencia backend |
| --- | --- | --- | --- | --- | --- | --- |
| `inlineInput` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | `string` | pill compacta com busca/clear | opcional |
| `inlinePhone` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | `string` com digitos preservados | pill compacta com `type="tel"` e mascara telefonica | opcional |

### Selecao

| ControlType canonico | implementacao Angular | Metadata | JSON API | Valor | Visual principal | Dependencia backend |
| --- | --- | --- | --- | --- | --- | --- |
| `inlineSelect` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | valor simples | pill + popover Material | opcional |
| `inlineMultiSelect` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | `unknown[]` | tokens selecionados + overflow `+N` | opcional |
| `inlineSearchableSelect` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | valor simples ou option object | pill + busca/paginacao no painel | frequente |
| `inlineAsyncSelect` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | valor simples ou option object | carregamento remoto no painel | sim |

### Remoto / lookup

| ControlType canonico | implementacao Angular | Metadata | JSON API | Valor | Visual principal | Dependencia backend |
| --- | --- | --- | --- | --- | --- | --- |
| `inlineEntityLookup` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | objeto ou id conforme `optionValueKey` | lookup `id + descricao` com reset | sim |
| `inlineAutocomplete` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | valor simples ou option object | busca incremental compacta | frequente |

### Numero e moeda

| ControlType canonico | implementacao Angular | Metadata | JSON API | Valor | Visual principal | Dependencia backend |
| --- | --- | --- | --- | --- | --- | --- |
| `inlineNumber` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | `number` | pill numerica compacta | nao |
| `inlineCurrency` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | `number` | mascara monetaria inline | nao |

### Range

| ControlType canonico | implementacao Angular | Metadata | JSON API | Valor | Visual principal | Dependencia backend |
| --- | --- | --- | --- | --- | --- | --- |
| `inlineCurrencyRange` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | `{ minPrice?, maxPrice?, currency? }` | pill + slider/input monetario | sim |
| `inlineRange` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | `number` em modo simples; `{ start?, end? }` em `mode: "range"` | slider simples ou duplo | sim para ranges |
| `inlineRating` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | `{ start?, end? }` | rating semantico com bandas | sim para range/score |
| `inlineDistanceRadius` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | `number` em modo simples; `{ start?, end? }` em `mode: "range"` | raio/distancia com anel visual | sim |
| `inlineScorePriority` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | `number` em modo simples; `{ start?, end? }` em `mode: "range"` | faixa de score/prioridade | sim |

### Data e tempo

| ControlType canonico | implementacao Angular | Metadata | JSON API | Valor | Visual principal | Dependencia backend |
| --- | --- | --- | --- | --- | --- | --- |
| `inlineDate` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | `Date` no controle; host costuma serializar para data | datepicker compacto | sim na serializacao |
| `inlineDateRange` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | `{ startDate?, endDate? }` | pill de periodo com shortcuts | sim |
| `inlineTime` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | string `HH:mm` | seletor de horario compacto | sim |
| `inlineTimeRange` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | `{ start?, end? }` com strings `HH:mm` | faixa horaria com dois inputs e slider | sim |

### Arvore

| ControlType canonico | implementacao Angular | Metadata | JSON API | Valor | Visual principal | Dependencia backend |
| --- | --- | --- | --- | --- | --- | --- |
| `inlineTreeSelect` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | valor simples do no selecionado | arvore compacta com busca | frequente |

### Score / status / sentiment

| ControlType canonico | implementacao Angular | Metadata | JSON API | Valor | Visual principal | Dependencia backend |
| --- | --- | --- | --- | --- | --- | --- |
| `inlinePipelineStatus` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | valor simples ou `unknown[]` quando multiplo | cards/segmentos de status | opcional |
| `inlineRelativePeriod` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | `string` semantica (`today`, `last7` etc.) | presets de periodo relativo | sim |
| `inlineSentiment` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | `string` | escolha semantica por sentimento | opcional |
| `inlineColorLabel` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | valor simples ou `unknown[]` | badges coloridos | opcional |

### Toggle

| ControlType canonico | implementacao Angular | Metadata | JSON API | Valor | Visual principal | Dependencia backend |
| --- | --- | --- | --- | --- | --- | --- |
| `inlineToggle` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | `boolean | null` | toggle binario com estado neutro | nao |

## Observacoes de contrato

### Contrato publicado

Salve e documente sempre o `controlType` canônico `inline*`.

### Valor do componente nao e o payload HTTP final

O valor do controle participa da pipeline:

1. componente inline manipula um shape interno
2. `praxis-filter` agrega o form value
3. host envia o DTO
4. backend normaliza ranges quando necessario

Por isso:

- `Date` no front nao significa que o backend recebera `Date`
- ranges especializados precisam bater com a trilha descrita em `dynamic-filter-range-filters-guide.md`
- para operacoes Java de range, `number` isolado nao e payload HTTP valido

### Ligacao explicita com table

Estes componentes pertencem a `dynamic-fields`, mas a feature de filtro continua sendo documentada em `praxis-table`.

Regra editorial:

- `table` documenta a jornada do filtro
- `dynamic-fields` documenta os componentes inline que a jornada utiliza
