Стилизация дерева Angular PrimeNG

Опубликовано: 26 Декабря, 2022

Angular PrimeNG — это фреймворк с открытым исходным кодом с богатым набором собственных компонентов пользовательского интерфейса Angular, которые используются для отличного стиля, и этот фреймворк используется для очень легкого создания адаптивных веб-сайтов. Он предоставляет множество шаблонов, компонентов, дизайн тем, обширную библиотеку иконок и многое другое. В этой статье мы собираемся изучить Angular PrimeNG Tree Styling .

Angular PrimeNG Tree используется для отображения иерархических данных в виде дерева. Классы стилей позволяют модифицировать стиль дерева. Стили позволяют получить доступ к каждому элементу.

Styling : Вот классы стилей компонента дерева:

  • p-tree: это основной элемент контейнера.
  • p-tree-horizontal: это основной элемент контейнера в горизонтальном режиме.
  • p-tree-container: это контейнер узлов дерева.
  • p-treenode: это одиночный элемент treenode.
  • p-treenode-content: это содержимое узла дерева.
  • p-treenode-toggler: это значок переключения для отображения/скрытия контента.
  • p-treenode-icon: это значок узла дерева.
  • p-treenode-label: это метка узла дерева.
  • p-treenode-children: это элемент-контейнер для дочерних узлов.

Синтаксис: Примените пользовательский CSS к классам.

:host ::ng-deep .p-treenode {
  // CSS Styles
}

Создание приложения Angular и установка модуля:

Шаг 1: Создайте приложение Angular, используя следующую команду.

ng new geeks_angular

Шаг 2: После создания папки вашего проекта, например, geeks_angular, перейдите к ней с помощью следующей команды.

cd geeks_angular

Шаг 3: Установите PrimeNG в указанный вами каталог.

npm install primeng --save
npm install primeicons --save

Структура проекта: Структура проекта будет выглядеть следующим образом.

Запустите приложение, используя приведенную ниже команду

ng serve --open

Пример 1: В следующем примере у нас есть простые TreeNodes с полужирным шрифтом.

app.component.html




<h1 style="color:green;text-align:center;">
    GeeksforGeeks
</h1>
<h3>Angular PrimeNG Tree Styling</h3>
<h5>Basic</h5>
  
<p-tree 
    [value]="files1" 
    selectionMode="single">
</p-tree>

app.component.css




:host ::ng-deep .p-treenode {
    font-weight: 900;
}

app.component.ts




import { Component } from "@angular/core";
import { TreeNode } from "primeng/api";
  
@Component({
    selector: "app-root",
    templateUrl: "./app.component.html",
    styleUrls: ["./app.component.css"],
})
export class AppComponent {
    files1: TreeNode[] = [];
  
    files2: TreeNode[] = [];
  
    ngOnInit() {
        this.files1 = [
            {
                label: "Data Structures",
                icon: "pi pi-folder",
  
                children: [
                    {
                        label: "List",
                        icon: "pi pi-folder",
  
                        children: [
                            {
                                label: "Singly List",
                                icon: "pi pi-code",
                            },
                            {
                                label: "Doubly List",
                                icon: "pi pi-code",
                            },
                            {
                                label: "Circularly List",
                                icon: "pi pi-code",
                            },
                        ],
                    },
                    {
                        label: "Queue",
                        icon: "pi pi-folder",
  
                        children: [
                            {
                                label: "Simple Queue",
                                icon: "pi pi-code",
                            },
                            {
                                label: "Doubly ended Queue",
                                icon: "pi pi-code",
                            },
                        ],
                    },
                ],
            },
            {
                label: "Algorithms",
                icon: "pi pi-folder",
  
                children: [
                    {
                        label: "Greedy ",
                        icon: "pi pi-code",
                    },
                    {
                        label: "BFS ",
                        icon: "pi pi-code",
                    },
                    {
                        label: "Dynamic Programming",
                        icon: "pi pi-code",
                    },
                ],
            },
        ];
        this.files2 = this.files1;
    }
}

app.module.ts




import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { HttpClientModule } from "@angular/common/http";
import { BrowserAnimationsModule } 
from "@angular/platform-browser/animations";
import { RouterModule } from "@angular/router";
import { AppComponent } from "./app.component";
  
import { FormsModule } from "@angular/forms";
import { TreeModule } from "primeng/tree";
import { ButtonModule } from "primeng/button";
  
@NgModule({
    imports: [
        BrowserModule,
        BrowserAnimationsModule,
        TreeModule,
        ButtonModule,
        HttpClientModule,
        FormsModule,
        RouterModule.forRoot
            ([{ path: "", component: AppComponent }]),
    ],
    declarations: [AppComponent],
    bootstrap: [AppComponent]
})
export class AppModule { }

Выход:

Пример 2: В следующем примере у нас будут значки с зеленой рамкой.

app.component.html




<h1 style="color:green;text-align:center;">
    GeeksforGeeks
</h1>
<h3>Angular PrimeNG Tree Styling</h3>
<h5>Basic</h5>
  
<p-tree 
    [value]="files1" 
    selectionMode="single">
</p-tree>

app.component.css




:host ::ng-deep .p-treenode-icon {
    border-width: 2px;
    border-color: green;
    border-style: solid;
}

app.component.ts




import { Component } from "@angular/core";
import { TreeNode } from "primeng/api";
  
@Component({
    selector: "app-root",
    templateUrl: "./app.component.html",
    styleUrls: ["./app.component.css"],
})
export class AppComponent {
    files1: TreeNode[] = [];
    files2: TreeNode[] = [];
  
    ngOnInit() {
        this.files1 = [
            {
                label: "Data Structures",
                icon: "pi pi-folder",
  
                children: [
                    {
                        label: "List",
                        icon: "pi pi-folder",
  
                        children: [
                            {
                                label: "Singly List",
                                icon: "pi pi-code",
                            },
                            {
                                label: "Doubly List",
                                icon: "pi pi-code",
                            },
                            {
                                label: "Circularly List",
                                icon: "pi pi-code",
                            },
                        ],
                    },
                    {
                        label: "Queue",
                        icon: "pi pi-folder",
  
                        children: [
                            {
                                label: "Simple Queue",
                                icon: "pi pi-code",
                            },
                            {
                                label: "Doubly ended Queue",
                                icon: "pi pi-code",
                            },
                        ],
                    },
                ],
            },
            {
                label: "Algorithms",
                icon: "pi pi-folder",
  
                children: [
                    {
                        label: "Greedy ",
                        icon: "pi pi-code",
                    },
                    {
                        label: "BFS ",
                        icon: "pi pi-code",
                    },
                    {
                        label: "Dynamic Programming",
                        icon: "pi pi-code",
                    },
                ],
            },
        ];
        this.files2 = this.files1;
    }
}

<