angular / angular/components

Refactor SVG inlining from md-icon into cdk-svg

Ouverte
#5,188 9 commentaires 6 réactions 0 personnes assignées Voir sur GitHub
area: material/icon P3 refactoring
Langage dominant
TypeScript
Étoiles
25k
Forks
6.8k
Merge moyen
1 j 8 h
PR mergées (30 j)
91

Description

The SVG inlining features of md-icon are more generally useful than for just displaying icons. We should refactor the code such that:
* The SVG portions of `MdIconRegistry` are moved to `IconRegistry` in the cdk, with `MdIconRegistry` then extending `IconRegistry`
* The SVG inlining code in `md-icon` is moved into `cdk-svg` with `md-icon` then consuming `cdk-svg`.

This will enable us to add additional APIs to `cdk-svg` around customizing `viewBox` and `preserveAspectRatio` (see https://css-tricks.com/scale-svg)

Notes:
* Part of this should be moving SVG parsing (i.e. `string` -> `SVGElement`) into its own utility that can be mocked. This will be useful when ensuring that parsing only happens when expected (since it can have performance impacts if overdone).

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Localisez les parties SVG actuelles de MdIconRegistry ainsi que le code d’intégration des SVG utilisé par md-icon, puis comparez-les avec cdk IconRegistry et les points d’entrée de cdk-svg. La refactorisation est terminée lorsque le comportement du registre SVG et l’intégration sont fournis par le CDK, que MdIconRegistry étend IconRegistry, que md-icon utilise cdk-svg et que l’analyse des SVG est isolée dans un utilitaire pouvant être mocké.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
angular, typescript
Domaine
frontend
Type d'issue
Refactorisation
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.