yuri-ui
v0.0.4
Published
Une bibliothèque de composants Angular personnalisables et faciles à utiliser pour vos applications web modernes.
Downloads
13
Readme
Yuri UI Components
Une bibliothèque de composants Angular personnalisables et faciles à utiliser pour vos applications web modernes.
Installation
npm install yuri-ui --saveComposants disponibles
Autocomplete
Un composant d'autocomplétion flexible et personnalisable avec support pour le regroupement et les templates personnalisés.
Fonctionnalités
- Recherche en temps réel
- Regroupement des résultats
- Templates personnalisables pour les éléments, groupes et messages "aucun résultat"
- Navigation au clavier
- Mise en surbrillance des termes recherchés
- Support pour le nettoyage de la recherche
Utilisation
Autocomplete - Utilisation basique
import { Component } from '@angular/core';
import { AutocompleteComponent } from 'yuri-ui';
@Component({
selector: 'app-demo',
standalone: true,
imports: [AutocompleteComponent],
template: `
<yuri-autocomplete
[data]="items"
placeholder="Rechercher..."
(select)="onItemSelect($event)"
></yuri-autocomplete>
`
})
export class DemoComponent {
items = [
{ id: 1, name: 'Campaign Name Fintory', group: 'Campaigns' },
{ id: 2, name: 'Fintory Campaign Name', group: 'Campaigns' },
{ id: 3, name: 'Product Name Fintory', group: 'Products' },
{ id: 4, name: 'Fintory Product Name', group: 'Products' }
];
onItemSelect(item: any) {
console.log('Item sélectionné:', item);
}
}Autocomplete - Avec templates personnalisés
import { Component } from '@angular/core';
import { CommonModule } from '@angular/common';
import { AutocompleteComponent } from 'yuri-ui';
@Component({
selector: 'app-custom-demo',
standalone: true,
imports: [CommonModule, AutocompleteComponent],
template: `
<yuri-autocomplete
[data]="items"
[customItemTemplate]="customItem"
[customGroupTemplate]="customGroup"
[customNoResultsTemplate]="noResults"
(select)="onItemSelect($event)"
></yuri-autocomplete>
<!-- Template pour les éléments -->
<ng-template #customItem let-item let-searchText="searchText">
<div style="display: flex; align-items: center;">
<div *ngIf="item.group === 'Campaigns'" style="margin-right: 12px; color: #6366F1;">
<!-- Icône de campagne ici -->
</div>
<div>
<div [innerHTML]="highlightText(item.name, searchText)"></div>
<div style="font-size: 12px; color: #6B7280;">ID: {{ item.id }}</div>
</div>
</div>
</ng-template>
<!-- Autres templates... -->
`
})
export class CustomDemoComponent {
// ...
}Options de configuration
Autocomplete Component
| Propriété | Type | Description | Valeur par défaut |
|-----------|------|-------------|------------------|
| data | any[] | Les données à afficher dans la liste déroulante | [] |
| displayField | string | Le champ à utiliser pour afficher le texte | 'name' |
| valueField | string | Le champ à utiliser comme valeur | 'id' |
| groupField | string | Le champ à utiliser pour le regroupement | 'group' |
| minChars | number | Nombre minimum de caractères pour déclencher la recherche | 1 |
| maxResults | number | Nombre maximum de résultats à afficher | 10 |
| clearable | boolean | Afficher ou non le bouton d'effacement | true |
| placeholder | string | Texte d'instruction dans le champ de recherche | 'Search' |
| customItemTemplate | TemplateRef | Template personnalisé pour les éléments | null |
| customGroupTemplate | TemplateRef | Template personnalisé pour les en-têtes de groupe | null |
| customNoResultsTemplate | TemplateRef | Template personnalisé pour le message "aucun résultat" | null |
Événements
| Événement | Description | Paramètres |
|-----------|-------------|------------|
| select | Déclenché lorsqu'un élément est sélectionné | L'élément sélectionné |
| search | Déclenché lorsque le texte de recherche change | Le texte de recherche |
| clear | Déclenché lorsque la recherche est effacée | Aucun |
Développement
Cloner le projet
git clone https://github.com/votre-username/yuri-ui.git
cd yuri-ui
npm installConstruire la bibliothèque
ng build yuri-uiDémarrer l'application de démonstration
ng serve demo-appContribution
Les contributions sont les bienvenues ! N'hésitez pas à soumettre des pull requests, à signaler des bugs ou à proposer de nouvelles fonctionnalités.
Licence
MIT# yuri-ui
