### Basic Angular Toolbar Example
Source: https://primeng.org/llms/llms-full.txt
Demonstrates the basic usage of the Angular Toolbar component, including placing content in start, center, and end templates. Requires importing necessary PrimeNG modules.
```typescript
import { Component, OnInit } from '@angular/core';
import { ButtonModule } from 'primeng/button';
import { IconFieldModule } from 'primeng/iconfield';
import { InputIconModule } from 'primeng/inputicon';
import { SplitButtonModule } from 'primeng/splitbutton';
import { ToolbarModule } from 'primeng/toolbar';
import { InputTextModule } from 'primeng/inputtext';
import { MenuItem } from 'primeng/api';
@Component({
template: `
`,
standalone: true,
imports: [ButtonModule, IconFieldModule, InputIconModule, SplitButtonModule, ToolbarModule, InputTextModule]
})
export class ToolbarBasicDemo implements OnInit {
items: MenuItem[] | undefined;
ngOnInit() {
this.items = [
{
label: 'Update',
icon: 'pi pi-refresh'
},
{
label: 'Delete',
icon: 'pi pi-times'
}
];
}
}
```
--------------------------------
### Basic PrimeNG Menu Setup
Source: https://primeng.org/llms/llms-full.txt
Demonstrates the basic setup of the PrimeNG Menu component by defining a collection of menu items. Ensure MenuModule is imported.
```typescript
import { Component, OnInit } from '@angular/core';
import { MenuModule } from 'primeng/menu';
import { MenuItem } from 'primeng/api';
@Component({
template: `
`,
standalone: true,
imports: [MenuModule]
})
export class MenuBasicDemo implements OnInit {
items: MenuItem[] | undefined;
ngOnInit() {
this.items = [
{ label: 'New', icon: 'pi pi-plus' },
{ label: 'Search', icon: 'pi pi-search' }
];
}
}
```
--------------------------------
### PrimeNG InputGroup with Buttons Example
Source: https://primeng.org/llms/llms-full.txt
Shows how to place buttons at the start, end, or both sides of an input field within a PrimeNG InputGroup. Includes examples for search, voting, and menu triggers.
```typescript
import { Component, OnInit } from '@angular/core';
import { ButtonModule } from 'primeng/button';
import { InputGroupModule } from 'primeng/inputgroup';
import { MenuModule } from 'primeng/menu';
import { InputTextModule } from 'primeng/inputtext';
import { MenuItem } from 'primeng/api';
@Component({
template: `
`,
standalone: true,
imports: [ButtonModule, InputGroupModule, MenuModule, InputTextModule]
})
export class InputgroupButtonDemo implements OnInit {
items: MenuItem[] | undefined;
ngOnInit() {
this.items = [{ label: 'Web Search' }, { label: 'AI Assistant' }, { label: 'History' }];
}
}
```
--------------------------------
### Basic Organization Chart Setup
Source: https://primeng.org/llms/llms-full.txt
Demonstrates the basic setup of an Organization Chart component by providing a collection of TreeNode instances to its 'value' property. Ensure TreeNode is imported from 'primeng/api'.
```typescript
import { Component } from '@angular/core';
import { TreeNode } from 'primeng/api';
@Component({
template: `
`,
standalone: true,
imports: []
})
export class OrganizationchartBasicDemo {
data: TreeNode[];
}
```
--------------------------------
### Basic Breadcrumb Setup
Source: https://primeng.org/llms/llms-full.txt
Demonstrates the basic setup of the PrimeNG Breadcrumb component. Import BreadcrumbModule and define menu items and a home configuration.
```typescript
import { Component, OnInit } from '@angular/core';
import { BreadcrumbModule } from 'primeng/breadcrumb';
import { MenuItem } from 'primeng/api';
@Component({
template: `
`,
standalone: true,
imports: [BreadcrumbModule]
})
export class BreadcrumbBasicDemo implements OnInit {
items: MenuItem[] | undefined;
home: MenuItem | undefined;
ngOnInit() {
this.items = [{ label: 'Electronics' }, { label: 'Computer' }, { label: 'Accessories' }, { label: 'Keyboard' }, { label: 'Wireless' }];
this.home = { icon: 'pi pi-home' };
}
}
```
--------------------------------
### Row Expansion Table Example
Source: https://primeng.org/llms/llms-full.txt
Demonstrates a PrimeNG table with row expansion enabled. Includes setup for data keys, expanded row templates, and toggler buttons. Requires Product and Customer domain models and ProductService.
```typescript
import { Component, OnInit, inject } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { ButtonModule } from 'primeng/button';
import { RatingModule } from 'primeng/rating';
import { TableModule } from 'primeng/table';
import { TagModule } from 'primeng/tag';
import { ToastModule } from 'primeng/toast';
import { RippleModule } from 'primeng/ripple';
import { ProductService } from '@/service/productservice';
import { MessageService } from 'primeng/api';
import { Product } from '@/domain/product';
import { Customer } from '@/domain/customer';
@Component({
template: `
Name
Image
Price
Category
Reviews
Status
{{ product.name }}
{{ product.price | currency: 'USD' }}
{{ product.category }}
Orders for {{ product.name }}
Id
```
--------------------------------
### Chart Component Methods
Source: https://primeng.org/llms/llms-full.txt
Demonstrates the structure of a component that might utilize chart methods like refresh, reinit, and generateLegend. This example shows the basic Angular component setup.
```typescript
import { Component } from '@angular/core';
@Component({
template: `
Name
Parameters
Description
refresh
-
Redraws the graph with new data.
reinit
-
Destroys the graph first and then creates it again.
generateLegend
-
Returns an HTML string of a legend for that chart. The legend is generated from the legendCallback in the options.
`,
standalone: true,
imports: []
})
export class ChartMethodsDemo {}
```
--------------------------------
### Basic Dialog Implementation
Source: https://primeng.org/llms/llms-full.txt
Demonstrates the basic setup for a PrimeNG Dialog component. Ensure ButtonModule and DialogModule are imported.
```typescript
import { Component } from '@angular/core';
import { ButtonModule } from 'primeng/button';
import { DialogModule } from 'primeng/dialog';
@Component({
template: `
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
`,
standalone: true,
imports: [ButtonModule, DialogModule]
})
export class DialogDemo {
visible: boolean = false;
showDialog() {
this.visible = true;
}
}
```
--------------------------------
### Cascadeselect with Fluid Prop
Source: https://primeng.org/llms/llms-full.txt
Use the 'fluid' prop on the p-cascadeselect component to enable full-width behavior. This example shows a typical setup with data binding and options.
```typescript
import { Component, OnInit } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { CascadeSelectModule } from 'primeng/cascadeselect';
@Component({
template: `
`,
standalone: true,
imports: [CascadeSelectModule, FormsModule]
})
export class CascadeselectFluidDemo implements OnInit {
countries: any[] | undefined;
selectedCity: any;
ngOnInit() {
this.countries = [
{
name: 'Australia',
code: 'AU',
states: [
{
name: 'New South Wales',
cities: [
{ cname: 'Sydney', code: 'A-SY' },
{ cname: 'Newcastle', code: 'A-NE' },
{ cname: 'Wollongong', code: 'A-WO' }
]
},
{
name: 'Queensland',
cities: [
{ cname: 'Brisbane', code: 'A-BR' },
{ cname: 'Townsville', code: 'A-TO' }
]
}
]
},
{
name: 'Canada',
code: 'CA',
states: [
{
name: 'Quebec',
cities: [
{ cname: 'Montreal', code: 'C-MO' },
{ cname: 'Quebec City', code: 'C-QU' }
]
},
{
name: 'Ontario',
cities: [
{ cname: 'Ottawa', code: 'C-OT' },
{ cname: 'Toronto', code: 'C-TO' }
]
}
]
},
{
name: 'United States',
code: 'US',
states: [
{
name: 'California',
cities: [
{ cname: 'Los Angeles', code: 'US-LA' },
{ cname: 'San Diego', code: 'US-SD' },
{ cname: 'San Francisco', code: 'US-SF' }
]
},
{
name: 'Florida',
cities: [
{ cname: 'Jacksonville', code: 'US-JA' },
{ cname: 'Miami', code: 'US-MI' },
{ cname: 'Tampa', code: 'US-TA' },
{ cname: 'Orlando', code: 'US-OR' }
]
},
{
name: 'Texas',
cities: [
{ cname: 'Austin', code: 'US-AU' },
{ cname: 'Dallas', code: 'US-DA' },
{ cname: 'Houston', code: 'US-HO' }
]
}
]
}
];
}
}
```
--------------------------------
### Example Prompts for PrimeNG MCP Server
Source: https://primeng.org/llms/llms-full.txt
Sample prompts to interact with an AI assistant using the PrimeNG MCP server. These demonstrate how to query component details, props, styling, and migration information.
```typescript
"Show me how to use the Table component with sorting and filtering"
```
```typescript
"What props does the Button component have?"
```
```typescript
"How do I customize the Dialog component styling with Pass Through?"
```
```typescript
"Compare the Select and Listbox components"
```
```typescript
"What's the best component for a date picker?"
```
```typescript
"How do I migrate from PrimeNG v20 to v21?"
```
--------------------------------
### PrimeNG Table with Striped Rows
Source: https://primeng.org/llms/llms-full.txt
Use the `stripedRows` property on the `p-table` component to display alternating row colors. This example shows a basic setup with product data.
```typescript
import { Component, OnInit, inject } from '@angular/core';
import { TableModule } from 'primeng/table';
import { ProductService } from '@/service/productservice';
import { Product } from '@/domain/product';
@Component({
template: `
Code
Name
Category
Quantity
{{ product.code }}
{{ product.name }}
{{ product.category }}
{{ product.quantity }}
`,
standalone: true,
imports: [TableModule],
providers: [ProductService]
})
export class TableStripedDemo implements OnInit {
private productService = inject(ProductService);
products!: Product[];
ngOnInit() {
this.productService.getProductsMini().then((data) => {
this.products = data;
});
}
}
```
--------------------------------
### IftaLabel with CascadeSelect Example
Source: https://primeng.org/llms/llms-full.txt
Demonstrates how to use the IftaLabel component to wrap a PrimeNG CascadeSelect. This setup is useful for creating form elements with labels positioned at the top and aligned within the input field.
```typescript
import { Component, OnInit } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { CascadeSelectModule } from 'primeng/cascadeselect';
import { IftaLabelModule } from 'primeng/iftalabel';
@Component({
template: \
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
`,
standalone: true,
imports: [InplaceModule]
})
export class InplaceBasicDemo {}
```
--------------------------------
### Basic ConfirmPopup Implementation
Source: https://primeng.org/llms/llms-full.txt
Demonstrates the basic setup of ConfirmPopup using the p-confirmPopup tag and ConfirmationService. Requires importing ButtonModule, ConfirmPopupModule, ToastModule, and services like MessageService and ConfirmationService.
```typescript
import { Component, inject } from '@angular/core';
import { ButtonModule } from 'primeng/button';
import { ConfirmPopupModule } from 'primeng/confirmpopup';
import { ToastModule } from 'primeng/toast';
import { MessageService, ConfirmationService } from 'primeng/api';
@Component({
template: `
`,
standalone: true,
imports: [ButtonModule, ConfirmPopupModule, ToastModule],
providers: [ConfirmationService, MessageService]
})
export class ConfirmpopupBasicDemo {
private confirmationService = inject(ConfirmationService);
private messageService = inject(MessageService);
confirm2(event: Event) {
this.confirmationService.confirm({
target: event.currentTarget as EventTarget,
message: 'Do you want to delete this record?',
icon: 'pi pi-info-circle',
rejectButtonProps: {
label: 'Cancel',
severity: 'secondary',
outlined: true
},
acceptButtonProps: {
label: 'Delete',
severity: 'danger'
},
accept: () => {
this.messageService.add({ severity: 'info', summary: 'Confirmed', detail: 'Record deleted', life: 3000 });
},
reject: () => {
this.messageService.add({ severity: 'error', summary: 'Rejected', detail: 'You have rejected', life: 3000 });
}
});
}
}
```
--------------------------------
### Basic InputGroup Example
Source: https://primeng.org/llms/llms-full.txt
Demonstrates how to group input elements with add-ons such as icons, text, or buttons. Ensure to import InputGroupModule and other necessary modules like InputTextModule, InputNumberModule, and SelectModule.
```typescript
import { Component } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { SelectModule } from 'primeng/select';
import { InputGroupModule } from 'primeng/inputgroup';
import { InputNumberModule } from 'primeng/inputnumber';
import { InputTextModule } from 'primeng/inputtext';
interface City {
name: string;
code: string;
}
@Component({
template: `
$.00www
`,
standalone: true,
imports: [SelectModule, InputGroupModule, InputNumberModule, InputTextModule, FormsModule]
})
export class InputgroupBasicDemo {
text1: string | undefined;
text2: string | undefined;
number: string | undefined;
selectedCity: City | undefined;
cities: City[];
}
```
--------------------------------
### Custom Content in PrimeNG MegaMenu
Source: https://primeng.org/llms/llms-full.txt
This example shows how to integrate custom SVG content as the starting element of a PrimeNG MegaMenu. Ensure necessary PrimeNG modules like MegaMenuModule, ButtonModule, AvatarModule, RippleModule, and common Angular OnInit are imported.
```typescript
import { Component, OnInit } from '@angular/core';
import { AvatarModule } from 'primeng/avatar';
import { ButtonModule } from 'primeng/button';
import { MegaMenuModule } from 'primeng/megamenu';
import { RippleModule } from 'primeng/ripple';
import { MegaMenuItem } from 'primeng/api';
@Component({
template: \
```
--------------------------------
### Dialog with Long Content Example
Source: https://primeng.org/llms/llms-full.txt
This example demonstrates how the PrimeNG Dialog component automatically displays a scroller when its content exceeds the viewport height.
```typescript
import { Component } from '@angular/core';
import { ButtonModule } from 'primeng/button';
import { DialogModule } from 'primeng/dialog';
@Component({
template: `
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim
ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur,
adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea
commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui
officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime
placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non
recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim
ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur,
adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea
```
--------------------------------
### Basic Overlay Usage
Source: https://primeng.org/llms/llms-full.txt
Demonstrates how to display a basic overlay component triggered by a button click. Requires ButtonModule.
```typescript
import { Component } from '@angular/core';
import { ButtonModule } from 'primeng/button';
@Component({
template: `
Content
`,
standalone: true,
imports: [ButtonModule]
})
export class OverlayBasicDemo {
overlayVisible: boolean = false;
toggle() {
this.overlayVisible = !this.overlayVisible;
}
}
```
--------------------------------
### Basic SplitButton Configuration
Source: https://primeng.org/llms/llms-full.txt
Demonstrates how to configure a basic SplitButton with a default action and a list of menu items. Imports required modules and services for functionality.
```typescript
import { Component, inject } from '@angular/core';
import { SplitButtonModule } from 'primeng/splitbutton';
import { ToastModule } from 'primeng/toast';
import { MenuItem, MessageService } from 'primeng/api';
@Component({
template: `
`,
standalone: true,
imports: [MeterGroupModule]
})
export class MetergroupBasicDemo {
value: any[] = [{ label: 'Space used', value: 15, color: 'var(--p-primary-color)' }];
}
```
--------------------------------
### Primeng Tree Filtering Example
Source: https://primeng.org/llms/llms-full.txt
Demonstrates how to enable and configure filtering for the Primeng Tree component. Includes examples for both default lenient filtering and strict filtering mode.
```typescript
import { Component, OnInit, inject, signal } from '@angular/core';
import { TreeModule } from 'primeng/tree';
import { NodeService } from '@/service/nodeservice';
import { TreeNode } from 'primeng/api';
@Component({
template: `
`,
standalone: true,
imports: [TreeModule],
providers: [NodeService]
})
export class TreeFilterDemo implements OnInit {
private nodeService = inject(NodeService);
files = signal(undefined);
files2 = signal(undefined);
ngOnInit() {
this.nodeService.getFiles().then((data) => {
this.files.set(data);
this.files2.set(data);
});
}
}
```
--------------------------------
### KeyFilter Regex Example
Source: https://primeng.org/llms/llms-full.txt
Shows how to use custom regular expressions with the KeyFilter directive for more specific input control. This example demonstrates blocking spaces and specific characters.
```typescript
import { Component } from '@angular/core';
import { InputTextModule } from 'primeng/inputtext';
@Component({
template: `
`,
standalone: true,
imports: [InputTextModule]
})
export class KeyfilterRegexDemo {
blockSpace: RegExp = /^[^\s]+$/;
blockChars: RegExp = /^[^<>*!]+$/;
}
```
--------------------------------
### Combine Multiple Add-ons in InputGroup
Source: https://primeng.org/llms/llms-full.txt
Demonstrates how to use multiple add-ons within a single InputGroup for complex input scenarios. This example includes text and currency add-ons.
```typescript
import { Component } from '@angular/core';
import { InputGroupModule } from 'primeng/inputgroup';
import { InputTextModule } from 'primeng/inputtext';
@Component({
template: `