Le contenu est géré sur plusieurs layers. Les layers sont statiques et comportent trois niveaux :
Toute la zone de contenu se trouve dans .chatbot__box__content.
Au niveau du code, chaque level est imbriqué dans l'autre :
Le wrapping de chaque level suit la convention de nommage suivante :
.chatbot__box__content--level-0.chatbot__box__content--level-1.chatbot__box__content--level-2.chatbot__box__content--level-3À partir du level 1, il est possible de revenir au layer précédent grâce à .chatbot__return--level-X.
Cette div contient une icône de retour.
Chaque layer est composé d'items avec leur nom et le nombre d'items que l'on retrouvera dans le layer suivant si l'on clique dessus.
Ce nombre d'items est récupéré en JavaScript grâce à item0.children.length.
Tout le contenu des layers est généré dynamiquement en JavaScript grâce au fichier contentChatBot.json, situé dans src/app/public.
Le chemin des icônes est généré dans le constructeur, ce qui permet d'utiliser this.imgDir.
Le dernier layer est particulier, car il n'affiche que du contenu WYSIWYG.
Il suit une structure standard : titre, date, puis contenu WYSIWYG.
Le contenu est stocké dans la div .wysiwyg-content.
Pour le dernier layer, vous pouvez ajouter tout le contenu HTML que vous souhaitez. Cependant, il y a une particularité concernant les balises <a> : si vous voulez les inclure dans un texte, vous devez les entourer d'une balise <p>. En effet, chaque élément ajouté au DOM est, par défaut, interprété comme un bloc distinct et provoque un retour à la ligne.
Le level 3 possède également une fonctionnalité permettant d'agrandir la fenêtre du chatbot pour améliorer la visibilité.
De plus, le header disparaît complètement à ce niveau, puis réapparaît lorsqu'on revient aux niveaux précédents.
L'agrandissement de la fenêtre se fait grâce au lien <a href> avec la classe .moresize.