Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@gip-recia/js-tree

Package Overview
Dependencies
Maintainers
3
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@gip-recia/js-tree

Js Tree

  • 0.0.8
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
34
decreased by-73.02%
Maintainers
3
Weekly downloads
 
Created
Source

Esup Js-Tree

Js-Tree est un webcomponent s'appuyant sur la librairie Lit pour afficher une arborescence dépliable.

Installation

  1. Installation via npm :
npm install @gip-recia/js-tree
  1. Importation du composant :

Dans un module JavaScript :

import '@gip-recia/js-tree';

Dans une page HTML :

<script type="module">
  import './path/to/js-tree.js'
</script>
  1. Ajout du composant dans l'application/composant :
<esup-js-tree .datas="..." .config="..." .onSelection="..."></esup-js-tree>

Paramètres

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 :

NomTypeObligatoireDescription
idStringOuiIdentifiant unique de l'élément
textStringOuiLibellé de l'élément
childrenBooleanOuiIndique si l'élément a des enfants
getChildrenArray/FunctionOuiTableau des enfants de l'élément ou fonction retournant une promise permettant de récupérer les enfants de l'élément
iconIndexNumberNonIndex (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 :

NomTypeObligatoireDescription
identifierStringNonIdentifiant html de l'arbre
showCheckboxBooleanNonPermet d'afficher ou non une case à cocher sur chaque branche de l'arbre. Par défaut: false.
isMultipleSelectionBooleanNonPermet la sélection multiple sur l'arborescence (avec ou sans case à cocher). Par défaut: false.
allowDeselectionBooleanNonPermet dautoriser ou non la désélection dans l'arboresence. Par défaut: true.
  • onSelection - Fonction appelée lors de la sélection d'un élément de l'arbre.

Fonctions

Plusieurs fonctions sont disponibles pour manipuler l'arborescence :

  • selectNode - Permet de sélectionner un élément.

Paramètres :

NomTypeObligatoireDescription
idStringOuiIdentifiant 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 :

NomTypeObligatoireDescription
idParentStringOuiIdentifiant unique de l'élément parent
propertiesObjectOuiProprié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 :

NomTypeObligatoireDescription
idStringOuiIdentifiant unique de l'élément
  • refreshNode - Permet de rafraichir les données d'un élément dans l'arborescence.

Paramètres :

NomTypeObligatoireDescription
idStringOuiIdentifiant unique de l'élément
propertiesObjectOuiPropriétés à mettre à jour de l'élément (cf. tableau ci-dessus des propriétés des éléments)
refreshChildrenBooleanNonIndique s'il faut recharger les enfants de l'élément (par défaut : false)

Variables CSS

Modification de style

Plusieurs variables CSS peuvent être définis pour personnaliser l'arbre :

NomDescription
--hover-text-colorPermet de modifier la couleur au survol du texte des éléments de l'arborescence
--selected-background-colorPermet de modifier la couleur de fond des éléments sélectionnés dans l'arborescence
--selected-text-colorPermet de modifier la couleur du texte des éléments sélectionnés de l'arborescence
--min-clickable-dimensionPermet 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 :

NomDescription
--icon-fold-font-familyPermet de configurer la famille de police de caractères de l'icône de replie
--icon-fold-font-weightPermet de configurer poids de la police de caractères de l'icône de replie
--icon-fold-contentCaractère unicode dans la famille de police de caractères utilisée pour l'icône de replie
--icon-unfold-font-familyPermet de configurer la famille de police de caractères de l'icône de déplie
--icon-unfold-font-weightPermet de configurer poids de la police de caractères de l'icône de déplie
--icon-unfold-contentCaractère unicode dans la famille de police de caractères utilisée pour l'icône de déplie

Icônes des noeuds de l'arbre

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) :

NomDescription
--icon-{x}-font-familyPermet de configurer la famille de police de caractères de l'icône 'x'
--icon-{x}-font-weightPermet de configurer poids de la police de caractères de l'icône 'x'
--icon-{x}-contentCaractère unicode dans la famille de police de caractères utilisée pour l'icône 'x'

Utilisation

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';
}

Test du webcomponent

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

Package last updated on 14 Mar 2022

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc