0.0.21 • Published 2 years ago

@slafon51/js-tree v0.0.21

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 years ago

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>

Ou directement la verion minifiée :

<script src="./path/to/js-tree.bundle.min.js"></script>
  1. Ajout du composant sur une page HTML :
const tree = document.createElement('esup-js-tree');
tree.datas = [...];
tree.config = {...};
tree.onSelection = (data) => ...;
document.body.appendChild(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.
sortBooleanNonPermet 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.

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.

0.0.21

2 years ago

0.0.20

2 years ago

0.0.19

2 years ago

0.0.18

2 years ago

0.0.17

2 years ago

0.0.16

2 years ago

0.0.15

2 years ago

0.0.14

2 years ago

0.0.13

2 years ago

0.0.12

2 years ago

0.0.11

2 years ago

0.0.10

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago