Overview
Tree
Archetype per rappresentazioni gerarchiche di dati.
Screenshot reference (manuale utente)
manual__tree__01.png: esempio rendering route tree con nodi padre/figlio espandibili.
Quando usarlo
- Classificazioni ad albero
- Strutture padre/figlio
- Navigazione nodi espandibili
Note operative
- Configurazione tramite
archetypes.tree - Supporta campi parent/label/icon/leaf
md_props_bag: archetypes.tree
{
"archetypes": {
"tree": {
"advancedFilter": false,
"parentField": "parent_id",
"labelField": "name",
"iconField": "icon",advancedFilter: quandotruemostra lawuic-filter-barper l'archetypetree(a livello data-repeater).parentField: campo relazione padre/figlio.labelField: campo testo label nodo.iconField: campo icona nodo.leafField: campo booleano foglia.labelFunction: callback JS label dinamica.itemTemplateString: template custom rendering nodo.
Contesto Template (itemTemplateString)
Nel template custom sono disponibili questi input:
record: alias del record nodo corrente.rowData: alias del record nodo corrente.metaInfo: metadati tabella/colonne della datasource.datasource: riferimento al componente datasource associato.
Contesto runtime usato dal framework:
inputs: { record: item, rowData: item, metaInfo: metaInfo, datasource: datasource }Eventi e subscriptions (host)
Eventi disponibili su wuic-tree-list:
onTreeDataBound: emesso quando l'albero viene popolato dal datasource.onTreeNodeExpand: emesso prima del caricamento lazy dei figli.onTreeNodeExpanded: emesso dopo il caricamento lazy figli.onTreeNodeSelect: relayp-tree onNodeSelect.onTreeNodeUnselect: relayp-tree onNodeUnselect.onTreeNodeCollapse: relayp-tree onNodeCollapse.
Esempio subscribe:
@ViewChild(TreeListComponent) tree?: TreeListComponent;
private readonly subs = new Subscription();
ngAfterViewInit(): void {
if (!this.tree) return;
this.subs.add(this.tree.onTreeDataBound.subscribe((e) => console.log(e)));
this.subs.add(this.tree.onTreeNodeExpand.subscribe((e) => console.log(e)));<!-- import-and-mount -->
Import e mount (componente Angular)
Importa TreeListComponent da 'wuic-framework-lib' e montalo col DataSource del framework:
import { DataSourceComponent, TreeListComponent } from 'wuic-framework-lib';
@Component({
selector: 'app-esempio',
imports: [DataSourceComponent, TreeListComponent],
template: `
<wuic-data-source #ds [hardcodedRoute]="'<route>'" [autoload]="true"></wuic-data-source>Nomi ESATTI (barrel wuic-framework-lib): classe TreeListComponent, selector <wuic-tree-list>. Importa quella classe, non altri nomi inventati (es. un prefisso Lazy dove non c'è, o viceversa) → altrimenti il build dà has no exported member.
Config metadata-driven: il tag accetta SOLO gli input standard [hardcodedRoute], [hardcodedDatasource], [autoload], [hideToolbar]. La configurazione specifica (qui: la gerarchia (campo parent)) NON è un input HTML ([groupField], [type], ecc. danno NG8002 not a known property) → va nei metadata (md_props_bag/archetipo) o in-code via metaInfo.