Ignite UI for Angular

repository·master·Indexed 20 days ago

https://github.com/igniteui/igniteui-angular

An enterprise-grade UI component library by Infragistics featuring high-performance Angular-native components such as advanced Data Grids and Charting based on Material design. The ecosystem includes igniteui-angular-extras for extended directives, igniteui-angular-elements for Web Component compatibility via IgxCustomNgElementStrategy, igniteui-angular-i18n for localization interfaces, and a PerformanceService for measuring execution time.

Tokens
177.4K
Snippets
476
Records
717
Agent score
66%

What's inside Ignite UI for Angular

  1. Overview of Ignite UI for Angular

    master

    Ignite UI for Angular is a comprehensive library of Angular-native, Material-based UI components designed for building enterprise-ready HTML5 and JavaScript applications.

    Key features include:

    • High-performance Data Grids: Includes Pivot Grids, Dock Manager, and Hierarchical Grids.
    • Extensive Charting: Over 60 high-performance Angular Charts for various business scenarios.
    • Enterprise Components: Support for Bottom Navigation, Layout Managers, and more.

    The library is designed for modern desktop browsers and provides a complete toolkit for complex web application development.

  2. Overview of Ignite UI for Angular Core

    master

    The Core package of Ignite UI for Angular provides the foundational building blocks used across the component library. It includes:

    • Core Utilities: Helper functions and styling foundations (including Typography).
    • Data Operations: Tools for managing data, specifically filtering, sorting, grouping, and data containers.
    • Services: Essential runtime services such as the Overlay service (for managing floating UI elements) and Transaction services.
    • Common Types: Shared interfaces and types used throughout the library.
  3. Overview of Ignite UI for Angular

    master

    Ignite UI for Angular is a comprehensive UI component library for Angular applications, specializing in high-performance data visualization and manipulation. It is divided into several key functional areas:

    Angular Data Grid

    Provides high-performance tools for visualizing and manipulating tabular data. It is optimized for speed and can handle millions of data points with no-lag scrolling.

    Angular Charts & Graphs

    An extensive library of over 65 interactive chart types designed for modern web and mobile apps. It supports touch interactivity and works across all modern browsers. Key chart types include:

    • Standard Charts: Polar, Pie, Donut, Bubble, Area, and Treemap.
    • Financial Charts: Specialized charts similar to those found on Google Finance or Yahoo Finance.

    Specialized Packages

    Beyond the core library, Ignite UI offers specialized packages for specific needs:

    • igniteui-angular-charts: Dedicated chart components (Bar, Line, Financial, Doughnut, Pie).
    • igniteui-angular-gauges: Gauge components (Bullet Graph, Linear Gauge, Radial Gauge).
    • igniteui-angular-excel: Excel library capabilities.
    • igniteui-angular-spreadsheet: Full spreadsheet component.
  4. Overview of Ignite UI for Angular — Figma to App

    master

    The Figma to App workflow allows you to translate Figma app screens designed with Indigo.Design UI Kits into production Angular applications using Ignite UI for Angular.

    Key Concepts

    • 1:1 Mapping: Every component instance in the Indigo.Design Figma kits (Material, Fluent, Bootstrap, or Indigo variants) maps directly to an Ignite UI Angular control.
    • Design System Sync: The active kit variant in Figma determines the corresponding design system used in your Angular theme.
    • Orchestrated Tooling: The process uses four Model Context Protocol (MCP) servers to automate the workflow:
      • Figma: Retrieves design data.
      • Ignite UI CLI: Provides component documentation.
      • Ignite UI Theming: Handles palette and component-level styling.
      • Playwright: Performs visual validation against the original Figma design.
  5. Explore Ignite UI for Angular Directives

    master
    Ignite UI for Angular provides a collection of standalone directives and directive modules to enhance Angular components with specialized behaviors. These directives cover a wide range of functionalities including UI interactions (Ripple, Drag and Drop, Focus Trap), form enhancements (Mask, Form Control, Date Time Editor), and layout/utility features (Layout, Divider, Tooltip).
  6. Use igx-simple-combo for single selection

    master

    The igx-simple-combo is a specialized version of igx-combo designed for single selection. It features an editable input for filtering, uses igx-drop-down for item display, and supports virtualization for high performance with large datasets. It is compatible with Template Driven and Reactive Forms and is accessibility compliant.

    ```html
    <igx-simple-combo [data]=
  7. Use igniteui-angular-i18n for custom localization strings

    master

    The igniteui-angular-i18n package provides the resource strings used for internationalization (i18n) within Ignite UI for Angular. While the main igniteui-angular package contains the default English strings, this package provides the TypeScript interfaces that define the schema for each localizable component's resourceStrings property.

    Developers can use these interfaces to ensure that custom resource strings for new languages follow the correct structure required by the components. For implementation details and specific examples of how to apply these strings to components, refer to the official Ignite UI for Angular Localization (i18n) documentation.

  8. Use igxFilter to filter list-based widgets

    master

    The igxFilter directive/pipe allows you to filter data sources or items within list-based widgets such as igx-list, tabbar, or carousel. It is decoupled from specific widgets and can be applied to any widget representing a list of items.

    Note: It should not be used with purely visual widgets like avatar, checkbox, or progressbar.

  9. Use Date Picker components in Ignite UI for Angular

    master

    Ignite UI for Angular provides two primary components for date selection:

    1. Date Picker: A component for selecting a single specific date.
    2. Date Range Picker: A component for selecting a start and end date range.

    These components are part of the igniteui-angular package. For detailed implementation details, API references, and usage examples, refer to the specific component documentation.

  10. Understand the Ignite UI for Angular theming model

    master

    Theming in Ignite UI for Angular is based on three core concepts that work together to implement Material Design principles:

    1. Palettes: Collections of colors ranging in hue and lightness. The library includes an algorithm to generate Material-like palettes from a single base color, automatically creating appropriate contrast text colors for each hue.
    2. Schemas: These act as "recipes" for component themes. A schema defines the relationship between component elements and the palette (e.g., telling a component to use the 500 variant of the primary palette for its background) without being tied to a specific color set.
    3. Themes: The final implementation layer. You can use a Global Theme to style the entire application and all its components by passing it a palette and a schema, or you can define Component Themes to style individual components uniquely.

    Typography is a decoupled module within the Sass framework that allows you to customize font families, sizes, and weights for headings, subheadings, buttons, and body text independently of the color themes.

  11. Use the Pivot Grid for analytics

    master

    The Pivot Grid is designed for reshaping data via dimensions (rows, columns, filters, and values). Unlike standard grids, standard features like cell editing, paging, and column pinning are disabled. All operations are driven by the pivotConfiguration.

    Key Concepts:

    • Dimensions: Defined in rows, columns, or filters. Use memberFunction to flatten nested data objects.
    • Values: Defined in values. Use aggregate to specify operations like IgxPivotNumericAggregate.sum, .average, .min, .max, or .count.
    • Auto-generation: Columns are automatically generated from the configuration; do not define <igx-column> manually.
    • Data Selector: Use <igx-pivot-data-selector> to provide a drag-and-drop UI for users to reshape the grid.
    import { IPivotConfiguration, IgxPivotNumericAggregate } from 'igniteui-angular/grids/core';
    import { IgxPivotGridComponent } from 'igniteui-angular/grids/pivot-grid';
    
    // ... inside component
    public pivotConfigHierarchy: IPivotConfiguration = {
        columns: [
            {
                memberName: 'Product',
                memberFunction: (data) => data.Product.Name,
                enabled: true
            }
        ],
        rows: [
            {
                memberName: 'Seller',
                memberFunction: (data) => data.Seller.Name,
                enabled: true
            }
        ],
        values: [
            {
                member: 'NumberOfUnits',
                aggregate: {
                    aggregator: IgxPivotNumericAggregate.sum,
                    key: 'sum',
                    label: 'Sum'
                },
                enabled: true
            }
        ],
        filters: null
    };