syncfusion-angular-treegrid
Implements Syncfusion Angular TreeGrid for hierarchical data with sorting, filtering, editing, exporting, paging, virtual scrolling, and advanced features. Supports configuration, CRUD, aggregates, templates, state persistence, and performance optimization in Angular applications.
What this skill does
# Syncfusion Angular TreeGrid
Complete guide to implementing and customizing the Syncfusion Angular TreeGrid component for hierarchical data visualization.
## ⚠️ Security & Trust Boundary
- The TreeGrid skill does not perform any remote data access.
- All external API interaction is handled by a separate DataManager skill outside this skill’s trust boundary.
## Table of Contents
- [When to Use This Skill](#when-to-use-this-skill)
- [Data Structure Rules](#data-structure-rules)
- [Documentation Navigation Guide](#documentation-navigation-guide)
- [Quick Start Example](#quick-start-example)
- [Common Patterns](#common-patterns)
- [Best Practices](#best-practices)
- [Key Props Summary](#key-props-summary)
- [Module Injection](#module-injection)
## When to Use This Skill
Use this skill when you need to:
- Display hierarchical or tree-structured data in a grid format
- Implement advanced data manipulation (sorting, filtering, searching, editing)
- Configure pagination, virtual scrolling for large datasets
- Add export functionality (PDF, Excel)
- Customize appearance with themes and CSS
- Handle selection, aggregates, and state management
- Support mobile/responsive design
- Implement row/column freezing
## Data Structure Rules
### Rule 1: childMapping is MANDATORY for Hierarchical Data
**Severity**: 🔴 CRITICAL - Grid will not expand/collapse without this
**Requirement**:
```typescript
// ✅ REQUIRED - Must match data property name exactly
<ejs-treegrid
[dataSource]='data'
childMapping='subtasks'> // Property name is case-sensitive
</ejs-treegrid>
// ❌ WRONG - Will not work
<ejs-treegrid
[dataSource]='data'>
<!-- No expansion possible without childMapping -->
</ejs-treegrid>
```
**Data Format**:
```typescript
// ✅ CORRECT - childMapping matches 'subtasks' property
public data = [
{
TaskID: 1,
TaskName: 'Parent',
subtasks: [ // Must match childMapping value
{ TaskID: 2, TaskName: 'Child' }
]
}
];
```
**Exception**: Use `idMapping` + `parentIdMapping` for flat parent-child structure:
```typescript
// Alternative: Flat structure with parent IDs
<ejs-treegrid
[dataSource]='flatData'
idMapping='TaskID'
parentIdMapping='ParentID'
hasChildMapping='isParent'>
</ejs-treegrid>
```
### Rule 2: Data Type Matching is MANDATORY
**Severity**: 🟠 IMPORTANT - Type mismatches cause rendering/sorting issues
**Requirement**:
```typescript
// ✅ CORRECT - Type matches column definition
public data = [
{
TaskID: 1, // number type
TaskName: 'Planning', // string type
StartDate: new Date(), // Date object for date columns
}
];
// Column definition must match data types
<e-columns>
<e-column field='TaskID' headerText='ID' type='number'></e-column>
<e-column field='TaskName' headerText='Task' type='text'></e-column>
<e-column field='StartDate' headerText='Date' type='date' format='yMd'></e-column>
</e-columns>
// ❌ WRONG - Type mismatch
public data = [
{
TaskID: '1', // String instead of number
StartDate: '02/03/2024' // String instead of Date object
}
];
```
## Documentation Navigation Guide
### Getting Started & Setup
📄 **Read:** [references/getting-started-guide.md](references/getting-started-guide.md)
- Complete installation and setup
- Module configuration
- Project initialization
- First TreeGrid component
### API Quick Reference
📄 **Read:** [references/properties.md](references/properties.md)
- 70+ properties in organized tables
- Data binding, display, behavior, features
- Settings objects and modules
- Column properties quick reference
📄 **Read:** [references/methods.md](references/methods.md)
- 60+ methods in organized tables
- Data management, selection, expand/collapse
- Filtering, sorting, export, editing
- DOM access and utility methods
📄 **Read:** [references/events.md](references/events.md)
- 56+ events in organized tables
- Cancelable events and async patterns
- Data, action, selection, edit events
- Export, print, and query events
**Recommended** for developers who need quick property/method/event lookup
### Data Binding
📄 **Read:** [references/data-binding.md](references/data-binding.md)
- Local and remote data binding
- ORM and custom adaptor implementation
- Loading data from various sources
### Adaptors for Remote Data
📄 **Read:** [references/adaptors.md](references/adaptors.md)
- 7 adaptor types for backend integration
- UrlAdaptor, ODataV4Adaptor, WebApiAdaptor, GraphQLAdaptor
- Custom adaptors and RemoteSaveAdaptor
- Backend configuration examples (C#, Node.js)
- Request/response format specifications
- Error handling and adaptor comparison
### Observables Data
📄 **Read:** [references/observables.md](references/observables.md)
- RxJS observables integration
- Async data binding patterns
- Observable-based event handling
- Async operators and pipelines
### Column Configuration
📄 **Read:** [references/column.md](references/column.md)
- Column definition and width management
- Custom column templates and rendering
- Column reordering and freezing
### Column Spanning
📄 **Read:** [references/column-spanning.md](references/column-spanning.md)
- Multi-column spanning configuration
- Cell spanning across columns
- Dynamic span calculation
### Command Columns
📄 **Read:** [references/command-column.md](references/command-column.md)
- Command column with action buttons
- Edit, Delete, and Cancel buttons
- Custom command implementations
### Column Menu
📄 **Read:** [references/column-menu.md](references/column-menu.md)
- Column header context menu
- Sort, group, and filter menu items
- Custom column menu options
### Column Chooser
📄 **Read:** [references/column-chooser.md](references/column-chooser.md)
- Column visibility toggle UI
- Show/hide columns dynamically
- Column chooser dialog configuration
### Row Configuration
📄 **Read:** [references/row.md](references/row.md)
- Row templates and detail rows
- Row drag-drop functionality
- Row spanning and customization
### Cell-Level Features
📄 **Read:** [references/cell.md](references/cell.md)
- Cell styling and formatting
- Cell templates and tooltips
- Custom CSS and HTML content
### Module System & Architecture
📄 **Read:** [references/modules.md](references/modules.md)
- Module imports and dependencies
- Required service providers
- Angular version compatibility
- Library setup and initialization
### Editing
📄 **Read:** [references/editing.md](references/editing.md)
- Cell, inline, dialog, row, and batch editing
- Data validation and error handling
- Custom editors and validation rules
### Sorting
📄 **Read:** [references/sorting.md](references/sorting.md)
- Single and multi-column sorting
- Custom sort comparers
- Sort order and keyboard navigation
### Filtering
📄 **Read:** [references/filtering.md](references/filtering.md)
- Filter bar and menu modes
- Excel-like filtering
- Custom filters and predicates
### Searching
📄 **Read:** [references/searching.md](references/searching.md)
- Global and column-level search
- Case-sensitive searching
- Text highlighting
### Selection
📄 **Read:** [references/selection.md](references/selection.md)
- Row, cell, and checkbox selection modes
- Selection events and APIs
- Programmatic selection
### Paging
📄 **Read:** [references/paging.md](references/paging.md)
- Pagination configuration
- Server-side paging
- Page navigation APIs
### Scrolling
📄 **Read:** [references/scrolling.md](references/scrolling.md)
- Virtual scrolling for large datasets
- Infinite scroll and lazy loading
- Height/width management and scroll positioning
### Frozen Columns
📄 **Read:** [references/frozen-columns.md](references/frozen-columns.md)
- Freeze rows and columns
- Fixed visibility configuration
- Performance optimization
### Aggregations
📄 **Read:** [references/aggregates.md](references/aggregates.md)
- Summary calculations (Sum, Avg, Min, Max, Count)
- Footer templates and child aggregates
- Aggregate events
### Export & PrRelated in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.