Composants de recherche
Là où les tables déclarent ce qui est cherchable et où les moteurs déclarent comment une requête s'exécute (voir search-overview), les composants sont l'endroit où la recherche apparaît sur la page. Sovrium fournit quatre pièces complémentaires : un searchInput qui pilote une requête, une list qui affiche les résultats, un pageSearch qui indexe le contenu des pages statiques, et la recherche de barre d'outils intégrée aux composants de données.
| Composant | Objectif |
|---|---|
searchInput |
Champ de recherche autonome qui pilote un autre composant via dataSource.bindTo. |
list |
Affichage de résultats orienté recherche avec modèles d'élément, surlignage et pagination. |
pageSearch |
Recherche statique à l'échelle du site sur le contenu des pages publiques (index au build/démarrage). |
| recherche de barre d'outils | Barre de recherche intégrée au composant sur data-table, kanban, calendrier, etc. |
searchInput
Un champ de recherche autonome. Seul, il affiche une saisie accessible ; lié à une source de données, il devient le pilote de requête pour un composant frère. Associez-le à une list (ou data-table) dont la source de données définit bindTo sur le props.id de la saisie.
| Propriété | Description |
|---|---|
props.id |
Identifiant que les autres composants référencent via dataSource.bindTo. |
visibility |
Contrôles de visibilité standard (partagés entre composants). |
i18n |
Champs d'internationalisation standard (libellé/placeholder traduisibles). |
components:
# 1. The input drives the query
- type: searchInput
props: { id: product-query }
# 2. The list consumes it via bindTo
- type: list
dataSource:
table: products
mode: search
searchFields: [name, description]
searchEngine: hybrid
debounceMs: 300
bindTo: product-query
listDisplay:
itemTemplate:
title: '$record.name'
subtitle: '$record.description'
highlight: truedebounceMs réside sur la source de données du composant consommateur, pas sur searchInput — la saisie émet les frappes et la source de données liée les anti-rebondit avant d'interroger. Voir search-overview.
list — affichage de résultats
Le composant list est conçu comme un affichage orienté recherche : le compagnon naturel de searchInput. Il affiche chaque enregistrement via un modèle d'élément avec surlignage optionnel, séparateurs et pagination « charger plus ».
| Propriété | Description |
|---|---|
itemTemplate.title |
Texte principal via une référence $record.* (par ex. $record.name). |
itemTemplate.subtitle |
Texte secondaire (par ex. $record.description). |
itemTemplate.image |
URL d'image (par ex. $record.thumbnail). |
itemTemplate.badge |
Texte de badge (par ex. $record.category). |
itemTemplate.metadata |
Tableau de { field, format } affiché dans le pied de l'élément (currency, relative-date, badge, text, short-date). |
emptyMessage |
Message affiché lorsqu'aucun résultat ne correspond. |
loadMore |
button (bouton Charger plus) ou infinite (charger au défilement). |
highlight |
Booléen. Surligne les termes de recherche correspondants dans le texte de l'élément (par défaut false). |
divider |
Booléen. Affiche des séparateurs visuels entre les éléments (par défaut false). |
maxItems |
Nombre maximal d'éléments à afficher (entier ≥ 1). |
- type: list
dataSource:
table: products
mode: search
searchFields: [name, description]
bindTo: product-query
listDisplay:
itemTemplate:
title: '$record.name'
subtitle: '$record.description'
image: '$record.thumbnail'
badge: '$record.category'
metadata:
- field: price
format: currency
emptyMessage: No products found
loadMore: infinite
highlight: true
divider: true
maxItems: 50pageSearch — index de pages statiques
Un composant de recherche à l'échelle du site qui indexe les pages publiques (access absent ou access: 'all') au moment de sovrium build et au démarrage de sovrium start. L'index est un fichier JSON plus un minuscule runtime client sous <outputDir>/sovrium-search/, servi par la route de répertoire public. C'est une couche différente de la recherche d'enregistrements — il recherche le contenu des pages, pas les lignes de table.
| Propriété | Description |
|---|---|
placeholder |
Texte indicatif affiché dans la saisie de recherche. |
maxResults |
Nombre maximal de résultats à afficher (entier positif). |
visibility |
Contrôles de visibilité standard. |
i18n |
Champs d'internationalisation standard. |
pages:
- id: home
name: home
path: /
components:
- type: pageSearch
placeholder: Search the site...
maxResults: 10pageSearch est auto-activant : dès qu'un composant type: 'pageSearch' apparaît n'importe où dans app.pages[].components[], sovrium build et sovrium start émettent l'index de recherche statique. Pas de variable d'environnement, pas de configuration app.search de premier niveau. L'indexeur n'explore que les pages publiques — les pages avec access: 'authenticated', des tableaux de rôles, ou un accès basé sur require sont exclues de l'index.
Recherche de barre d'outils
Les composants de données exposent une barre de recherche intégrée au composant via leur barre d'outils. Sur un data-table, définissez toolbar.search: true pour afficher une saisie de recherche globale sur les lignes liées — un filtre rapide sans searchInput distinct.
| Indicateur de barre d'outils | Description |
|---|---|
search |
Affiche la saisie de recherche globale. |
filters |
Affiche le constructeur de filtres. |
sort |
Affiche le constructeur de tri. |
- type: data-table
dataSource:
table: orders
mode: search
searchFields: [customer, reference]
toolbar:
search: true
filters: true
sort: trueLes composants kanban et calendrier partagent une configuration search pour leur propre barre de recherche intégrée via le même modèle.
Surlignage et anti-rebond
- Surlignage — définissez
highlight: truesurlist(listDisplay.highlight) pour entourer les termes correspondants dans le texte des résultats. Désactivé par défaut. - Anti-rebond — définissez
debounceMssur la source de données (par ex.300) afin que la requête ne se déclenche qu'après une pause de saisie de l'utilisateur, évitant une requête par frappe.
Ces fonctionnalités fonctionnent ensemble : un searchInput émet des frappes, la source de données liée anti-rebondit et interroge, et la list surligne les correspondances dans les résultats affichés.
Associé
- Présentation de la recherche — les moteurs et le mode de source de données
search. - Recherche plein texte —
indexedetfullTextSearchau niveau du champ. - Composants de données —
data-table, kanban, calendrier et leurs barres d'outils. - Composants de contenu — texte, média et contenu de page structurel.
- Enregistrements : filtrage et tri — filtrage et ordonnancement de listes hors recherche.
Dernière mise à jour 11 août 2026
Cette documentation a été rédigée avec de l'IA : des erreurs ou du contenu obsolète sont donc possibles. Sovrium est en bêta. Les contributions et corrections sont les bienvenues.