name: lucca-front-deprecated-resolver description: 'Skill de migration des APIs dépréciées de Lucca Front (@lucca-front/ng). Charge ce skill pour identifier et migrer automatiquement les éléments marqués @deprecated : NgModules (LuApiModule, LuDateModule, LuDropdownModule, LuSelectModule, LuSidepanelModule, LuDepartmentModule, LuEstablishmentModule, LuUserModule, LuOptionModule, LuTreeOptionModule, LuModalModule, LuInputModule, LuTooltipModule, LuTitleModule, LuToastsModule, LuNumberModule, LuScrollModule, LuSafeContentModule, LuFormlyModule, LuPopoverModule, LuPopupModule), composants dépréciés (LuSelectInputComponent, LuDepartmentSelectInputComponent, LuEstablishmentSelectInputComponent, LuUserSelectInputComponent, LuDropdownPanelComponent), inputs dépréciés (withRole, delete→critical, fullpage→fullPage, icon→illustration), modèles dépréciés (ILuTranslation, sidepanel model), services dépréciés (LuSidepanel, LuDepartmentV3Service, LuTitleService), tokens dépréciés (USER_POPOVER_IS_ACTIVATED, APP_TITLE). Use when migrating deprecated lucca-front APIs.'
lucca-front-deprecated-resolver
Ce skill guide la migration automatique de tous les éléments marqués @deprecated dans @lucca-front/ng et @lucca-front/prisme.
Étape 1 — Analyse
Scanner le code source du projet à migrer :
- Chercher les imports depuis
@lucca-front/ng/*et@lucca-front/prisme/*. - Identifier les NgModules, composants, directives, services, tokens et types dépréciés présents.
- Chercher les attributs HTML dépréciés dans les templates (
.htmlet templates inline). - Associer chaque élément trouvé à son fichier de référence dans ce skill.
Éléments à détecter
NgModules dépréciés → remplacer par imports standalone
| Détecté | Référence |
|---|---|
LuApiModule, LuApiSelectModule, LuApiSelectInputModule, LuApiSearcherModule |
LuApiModule.md |
LuDateModule, LuDatePickerModule, LuDateSelectInputModule, LuDateAdapterModule |
LuDateModule.md |
LuDropdownModule, LuDropdownPanelModule, LuDropdownItemModule, LuDropdownTriggerModule |
LuDropdownModule.md |
LuSelectModule, LuSelectInputModule |
LuSelectModule.md |
LuSidepanelModule |
LuSidepanelModule.md |
LuDepartmentModule, LuDepartmentSelectModule, LuDepartmentSelectInputModule |
LuDepartmentModule.md |
LuEstablishmentModule, LuEstablishmentSelectModule, LuEstablishmentSelectInputModule |
LuEstablishmentModule.md |
LuUserModule, LuUserSelectModule, LuUserSelectInputModule, LuUserDisplayModule, LuUserPictureModule, LuUserTileModule, LuUserMeOptionModule, LuUserSearcherModule |
LuUserModule.md |
LuOptionModule, LuOptionItemModule, LuOptionPickerModule, LuOptionFeederModule, LuOptionPagerModule, LuOptionSearcherModule, LuOptionSelectAllModule, LuForOptionsModule |
LuOptionModule.md |
LuTreeOptionModule, LuTreeOptionItemModule, LuTreeOptionPickerModule, LuTreeOptionFeederModule, LuForTreeOptionsModule, LuTreeOptionSearcherModule, LuTreeOptionOperatorModule |
LuOptionModule.md |
LuModalModule |
LuModalModule.md |
LuPopupModule |
LuModalModule.md |
LuPopoverModule, LuPopoverPanelModule |
LuModalModule.md |
LuTooltipModule, LuTooltipTriggerModule |
LuTooltipModule.md |
LuInputModule, LuInputClearerModule, LuInputDisplayerModule |
LuInputModule.md |
LuTitleModule |
LuTitleModule.md |
LuToastsModule, LuNumberModule, LuScrollModule, LuSafeContentModule, LuFormlyModule |
NgModulesSimples.md |
Composants dépréciés → migration HTML + TS
| Détecté | Référence |
|---|---|
lu-select / LuSelectInputComponent |
LuSelectModule.md |
lu-department-select / LuDepartmentSelectInputComponent |
LuDepartmentModule.md |
lu-establishment-select / LuEstablishmentSelectInputComponent |
LuEstablishmentModule.md |
lu-user-select / LuUserSelectInputComponent |
LuUserModule.md |
lu-input-clearer / LuInputClearerComponent |
LuInputModule.md |
Inputs/Outputs dépréciés
| Élément | Input déprécié | Référence |
|---|---|---|
lu-divider |
withRole |
DividerComponent.md |
[luButton] / button[luButton] |
delete |
ButtonComponent.md |
lu-loading |
type="fullpage" |
LoadingComponent.md |
lu-empty-state-section |
icon |
EmptyStateSectionComponent.md |
lu-single-file-upload, lu-multi-file-upload |
illustration="paper" |
BaseFileUploadComponent.md |
lu-highlight-data |
icon="manifying-glass" |
HighlightDataComponent.md |
| Composants select (core-select) | .grouping / .grouping = |
CoreSelectInputComponent.md |
Services, tokens et types dépréciés
| Détecté | Référence |
|---|---|
LuSidepanel (service), LU_SIDEPANEL_DATA, ILuSidepanelRef, ALuSidepanelRef |
LuSidepanelModule.md |
LuDepartmentV3Service |
LuDepartmentModule.md |
LuTitleService, LuTitleStrategy, APP_TITLE |
LuTitleModule.md |
USER_POPOVER_IS_ACTIVATED, provideLuUserPopover |
UserPopoverProviders.md |
ILuTranslation |
TranslationModel.md |
LuSimpleSelectApiV4Directive, ALuSimpleSelectApiDirective (depuis simple-select) |
SimpleSelectApiAliases.md |
defaultOnClosedFn<C>() (version générique) |
DialogRoutingComponent.md |
Étape 2 — Lecture de la référence
Pour chaque élément déprécié identifié :
- Ouvrir le fichier de référence correspondant (voir table ci-dessus).
- Lire les règles de migration.
- Déterminer si la migration est automatique ou nécessite une intervention humaine.
Étape 3 — Migration
Appliquer les transformations selon les règles de chaque fichier de référence :
- NgModules : remplacer le module dans les
importspar la liste de composants standalone. Mettre à jour les imports TypeScript. - Composants : remplacer le sélecteur HTML et adapter le template. Mettre à jour les imports TypeScript.
- Inputs/Outputs : renommer, supprimer ou transformer les attributs HTML.
- Services/Tokens : remplacer les injections, providers et imports.
- Types/Interfaces : renommer les types et mettre à jour les imports.
Règle générale pour les NgModules
La plupart des NgModules dépréciés sont de simples wrappers standalone. La migration consiste à :
- Supprimer le module de
importsdans@NgModuleou@Component. - Ajouter directement les composants/directives/pipes standalone dans
imports. - Mettre à jour l'import TypeScript vers le bon chemin.
Étape 4 — Annotation
Uniquement pour les migrations de composants (changements potentiellement breaking), ajouter une annotation à proximité du code modifié.
Annotation dans un fichier TypeScript
/*
** IA lucca-front-deprecated-resolver
** try to migrate ${NomDuComposantDéprécié}
*/
Annotation dans un fichier HTML
<!--
IA lucca-front-deprecated-resolver
try to migrate ${NomDuComposantDéprécié}
-->
Composants nécessitant une annotation :
LuSelectInputComponent(lu-select)LuDepartmentSelectInputComponent(lu-department-select)LuEstablishmentSelectInputComponent(lu-establishment-select)LuUserSelectInputComponent(lu-user-select)LuSidepanelModule/LuSidepanelLuDropdownPanelComponent(lu-dropdown)
Pas d'annotation nécessaire pour :
- Remplacement de NgModules simples (non breaking)
- Renommage d'inputs simples
- Suppression de tokens/providers obsolètes
Étape 5 — Validation
Après migration :
- Vérifier les imports TypeScript : s'assurer que tous les imports sont cohérents avec les nouveaux packages.
- Vérifier la compilation : lancer
ng buildoutsc --noEmitpour vérifier l'absence d'erreurs. - Vérifier les nouvelles APIs : confirmer que les nouveaux composants/directives sont correctement utilisés.
- Signaler les migrations impossibles : noter les cas nécessitant une intervention humaine.
Cas nécessitant une intervention humaine
- Migration de
lu-selectverslu-simple-selectoulu-multi-selectavec des options complexes - Migration de
lu-department-select,lu-establishment-select,lu-user-selectavec des configurations avancées - Migration de
lu-dropdown(ancienne architecture) vers la nouvelle approche menu Prisme - Migration de
LuSidepanelsi la logique de callback est complexe - Migration de
LuTitleServicesi des observables sont utilisés pour le titre
Étape 6 — Reporting
Produire un rapport structuré contenant :
Migrations réalisées automatiquement
- Liste des éléments migrés
- Fichiers modifiés
- Références utilisées
Migrations partiellement réalisées
- Éléments partiellement migrés
- Ce qui a été fait
- Ce qui reste à faire manuellement
Migrations impossibles à automatiser
- Éléments nécessitant une intervention humaine
- Raison
- Guidance pour la migration manuelle
Récapitulatif
- Nombre total d'éléments dépréciés détectés
- Nombre de migrations automatiques
- Nombre de migrations manuelles requises
- Fichiers modifiés