Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
@gip-recia/js-tree
Advanced tools
Js-Tree est un webcomponent s'appuyant sur la librairie Lit pour afficher une arborescence dépliable.
npm install @gip-recia/js-tree
Dans un module JavaScript :
import '@gip-recia/js-tree';
Dans une page HTML :
<script type="module">
import './path/to/js-tree.js'
</script>
Ou directement la verion minifiée :
<script src="./path/to/js-tree.bundle.min.js"></script>
const tree = document.createElement('esup-js-tree');
tree.datas = [...];
tree.config = {...};
tree.onSelection = (data) => ...;
document.body.appendChild(tree);
Le webcomponent Js-Tree accepte les paramètres suvants :
datas
- Liste contenant l'ensemble des éléments de l'arborescence a afficher.Propriétés de chaque élément :
Nom | Type | Obligatoire | Description |
---|---|---|---|
id | String | Oui | Identifiant unique de l'élément |
text | String | Oui | Libellé de l'élément |
children | Boolean | Oui | Indique si l'élément a des enfants |
getChildren | Array/Function | Oui | Tableau des enfants de l'élément ou fonction retournant une promise permettant de récupérer les enfants de l'élément |
iconIndex | Number | Non | Index (entre 0 et 10) de l'icône affiché pour cette élément |
config
- Objet contenant la configuration de l'arbre.Propriétés disponibles :
Nom | Type | Obligatoire | Description |
---|---|---|---|
identifier | String | Non | Identifiant html de l'arbre |
showCheckbox | Boolean | Non | Permet d'afficher ou non une case à cocher sur chaque branche de l'arbre. Par défaut: false. |
isMultipleSelection | Boolean | Non | Permet la sélection multiple sur l'arborescence (avec ou sans case à cocher). Par défaut: false. |
allowDeselection | Boolean | Non | Permet dautoriser ou non la désélection dans l'arboresence. Par défaut: true. |
sort | Boolean | Non | Permet de trier les branches de l'arbre par ordre alphabétique. Par défaut: false. |
onSelection
- Fonction appelée lors de la sélection d'un élément de l'arbre.Plusieurs fonctions sont disponibles pour manipuler l'arborescence :
selectNode
- Permet de sélectionner un élément.Paramètres :
Nom | Type | Obligatoire | Description |
---|---|---|---|
id | String | Oui | Identifiant unique de l'élément |
deselectAllNodes
- Permet de désélectionner tous les éléments.
addNode
- Permet d'ajouter un élément dans l'arborescence.
Paramètres :
Nom | Type | Obligatoire | Description |
---|---|---|---|
idParent | String | Oui | Identifiant unique de l'élément parent |
properties | Object | Oui | Propriétés du nouvel élément (cf. tableau ci-dessus des propriétés des éléments) |
deleteNode
- Permet de supprimer un élément dans l'arborescence.Paramètres :
Nom | Type | Obligatoire | Description |
---|---|---|---|
id | String | Oui | Identifiant unique de l'élément |
refreshNode
- Permet de rafraichir les données d'un élément dans l'arborescence.Paramètres :
Nom | Type | Obligatoire | Description |
---|---|---|---|
id | String | Oui | Identifiant unique de l'élément |
properties | Object | Oui | Propriétés à mettre à jour de l'élément (cf. tableau ci-dessus des propriétés des éléments) |
refreshChildren | Boolean | Non | Indique s'il faut recharger les enfants de l'élément (par défaut : false) |
Plusieurs variables CSS peuvent être définis pour personnaliser l'arbre :
Nom | Description |
---|---|
--hover-text-color | Permet de modifier la couleur au survol du texte des éléments de l'arborescence |
--selected-background-color | Permet de modifier la couleur de fond des éléments sélectionnés dans l'arborescence |
--selected-text-color | Permet de modifier la couleur du texte des éléments sélectionnés de l'arborescence |
--min-clickable-dimension | Permet de modifier la hauteur/largeur minimum des éléments cliquables de l'arborescence |
Par défaut le webcomponent Js-Tree s'appuie sur les fonts Font-Awesome pour afficher des icônes (via des pseudo-elements). Il est cependant possible de personnaliser les icônes affichées via les propriétés suivantes :
Nom | Description |
---|---|
--icon-fold-font-family | Permet de configurer la famille de police de caractères de l'icône de replie |
--icon-fold-font-weight | Permet de configurer poids de la police de caractères de l'icône de replie |
--icon-fold-content | Caractère unicode dans la famille de police de caractères utilisée pour l'icône de replie |
--icon-unfold-font-family | Permet de configurer la famille de police de caractères de l'icône de déplie |
--icon-unfold-font-weight | Permet de configurer poids de la police de caractères de l'icône de déplie |
--icon-unfold-content | Caractère unicode dans la famille de police de caractères utilisée pour l'icône de déplie |
Il est possible de configurer jusqu'à 11 icônes pour les éléments de l'arborescence. Les variables à configurer pour définir une icône sont les suivantes (avec x entre 0 et 10) :
Nom | Description |
---|---|
--icon-{x}-font-family | Permet de configurer la famille de police de caractères de l'icône 'x' |
--icon-{x}-font-weight | Permet de configurer poids de la police de caractères de l'icône 'x' |
--icon-{x}-content | Caractère unicode dans la famille de police de caractères utilisée pour l'icône 'x' |
Exemple de configuration des variables css dans un fichier de style :
esup-js-tree {
--selected-background-color: #25b2f3;
--text-color: #25b2f3;
--selected-text-color: #fff;
--icon-0-font-family: 'Font Awesome 5 Free';
--icon-0-font-weight: 900;
--icon-0-content: '\f015';
}
Pour tester le webcomponent, exécuter la commande suivante :
npm start
Une page avec le webcomponent est alors disponible à l'adresse http://localhost:8000.
FAQs
Js Tree
The npm package @gip-recia/js-tree receives a total of 34 weekly downloads. As such, @gip-recia/js-tree popularity was classified as not popular.
We found that @gip-recia/js-tree demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.