Wijmo 5

The Next Generation of JavaScript Controls

Deliver next-generation HTML5 applications with Wijmo 5, a collection of true JavaScript controls written in TypeScript and built for speed. With touch-first design and full Angular support, these lightweight controls will blow you away with their power and flexibility.

Already purchased Wijmo? Download it here.

Read about our interop support: Angular ReactJS VueJS

Wijmo 5: Fast, Flexible, Familiar JavaScript Controls

Fast and Lightweight

  • We build small: our most popular control, FlexGrid, has a base size of 113 KB.
  • Our true JavaScript controls are built in TypeScript and have no dependencies.
  • Wijmo’s controls are lightning-fast. Try the benchmark demo.

Flexible and Extensible

  • Our easy-to-read, flexible API has a low learning curve and allows you to extend controls to meet your needs.
  • Controls are designed to have a simple core with as many extensibility points as possible. FlexGrid’s core has all the standard features of a data grid, but complex filtering, grouping, and more, are available as extensions.


  • FlexChart aims for parity with Excel’s charts
  • FlexGrid and FlexSheet offer Excel-like filtering, sorting, and merging
  • Input controls are designed so that you can customize to your user’s needs

Wijmo FlexChart's performance on 10,000 data points (expressed in seconds)

Wijmo FlexChart’s performance on 10,000 data points (expressed in seconds)

Basic FlexGrid

Wijmo FlexGrid

Download Free Trial

First-Class Framework Support

Wijmo is framework-agnostic, and we continue to add support for new frameworks. Here’s a look at our current framework support.

AngularJS and Angular 2

Wijmo’s Explorer fully supports Angular 2. In addition, we ship and maintain AngularJS directives for all of our controls and use it in most of our samples.

Read more about our first-class Angular 2 Support.


Our controls are fully supported in ReactJS, including FlexGrid, FlexChart, Input, and Gauges.

Read more about our ReactJS Support.

More Interop Options

We’re always thinking about new directions for Wijmo.

VueJS: How to Create Great VueJS Applications Using Wijmo Controls

KnockoutJS: Read about our Knockout support

FlexGrid’s Declarative Markup in Angular 2

FlexGrid’s Declarative Markup in Angular 2

Download Free Trial

True JavaScript Controls Written In TypeScript

Large-scale, client and server side applications are possible with Wijmo 5. We built on TypeScript for a better coding experience, and to save you time.

What you’ll get with TypeScript:

  • Object-oriented C#-like feel
  • Design-time error checking
  • Complete IntelliSense for Wijmo in Visual Studio
  • True JavaScript Controls

    The ECMAScript 5 standard adds support for property getters and setters. This may seem like a small change, but it makes a huge difference. It’s given us the opportunity to create true JavaScript controls.

    Additional Benefits of Wijmo 5:

    • ICollectionView provides a familiar experience for .NET developers migrating to HTML5
    • All Wijmo 5 controls can be bound to CollectionView

    New control syntax vs old widget pattern

    New control syntax vs old widget pattern

    Download Free Trial


    Browse, search, view source code and run all of our samples using the Wijmo 5 Sample Explorer.

    Wijmo Control Explorer

    Wijmo 5 Control Explorer

    Shows how to use all the controls in Wijmo 5, as well as the infrastructure shared by all the controls.

    Run Demo  |  Learn More

    FlexGrid JavaScript Data Grid

    FlexGrid 101

    Perform common tasks with FlexGrid, our fast and flexible data-bound grid control.

    Run Demo  |  Learn More

    Wijmo FlexChart JavaScript Chart

    FlexChart 101

    Perform common tasks with FlexChart, our beautiful and easy-to-use chart control.

    Run Demo  |  Learn More

    Wijmo FlexPie JavaScript Pie Chart

    FlexPie 101

    Get started with FlexPie, our flexible pie chart control.

    Run Demo  |  Learn More

    Wijmo JavaScript Gauge Control

    Gauge 101

    Get started with LinearGauge and RadialGauge, our smart and flexible gauge controls.

    Run Demo  |   Learn More

    Wijmo JavaScript Input Control

    Input 101

    Perform common tasks with all the Input controls in Wijmo 5.

    Run Demo  |  Learn More

    Wijmo JavaScript CollectionView Control

    CollectionView 101

    Get started with CollectionView, our .NET-like class that uses regular JavaScript arrays as data sources.

    Run Demo  |  Learn More

    What Our Customers Say

    Thomson Reuters
    “We rely on functionality of Wijmo 5’s FlexGrid in our massive next-generation platform products. Wijmo’s modern, full-featured FlexGrid with sophisticated grid manipulations is what you will find at the heart of our workflow.”

    — Aaron Mendez, Manager of User Experience, Thomson Reuters

    “We purchased Wijmo and their team is doing a great job: good-looking, well-thought-out architecture; documentation; keeping up with ever-changing landscape like no others.”

    — BJ Jeong, Cisco

    Our Customers

    Our Customers

    What’s New

    What’s New in Build 254

    New Samples

    Use the SampleExplorer to search, filter by framework and even browse source code for all of our samples.

    Change Log

    • Angular 2: Added support for Angular 2.4.1 Angular 2 Info
    • ReactJS: Added support for ReactJS ReactJS Info
    • VueJS: Added support for Vue 2 VueJS 2 Interop sample | How to Create Great VueJS applications Using Wijmo Controls blog
    • Added PeriodicSunburst sample. PeriodicSunburst sample | Rethinking the Periodic Table with Wijmo’s Sunburst blog
    • Improved FlexGrid performance when binding to large collections and not limiting grid height (automatically sized grids). This used to cause poor performance since the grid only took its host element into account when virtualizing cells; now it also takes into account the browser window.
    • Improved FlexGrid clipboard support to handle cells with line breaks.
    • Added a FlexGridDetailProvider.isAnimated property to enable animated transitions when showing row details.
    • Improved FlexSheet support to copy/paste the content of the HeaderRow in the bound sheet.
    • Added a Control.rightToLeft property that determines whether the control is hosted in an element with right-to-left layout.
    • Improved showPopup method to handle screen boundaries when reference is a point.
    • Added RTL support to LinearGauge and BulletGraph controls. The gauges now take RTL into account when rendering and handling the keyboard. The new behavior is compatible with the input element’s when type=”range”.
    • Wijmo *culture.js files can be loaded before wijmo.js now.
    • Added support for Angular 2 Ahead-of-Time compiler. .metadata.json files for Wijmo Angular 2 components are added to NpmImages’ subfolders. Check also Breaking Changes section.
    • Angular 2 specific properties (like isInitialized) and events (like ‘initialized’/valueChangedNg/etc) of Wijmo components are now exposed in class declarations in .d.ts and hence available for Intellisense.
    • Added a getCellElement method to the wijmo.grid.GridPanel class to retrieve the HTMLElement that represents a given cell in the panel.
    • Added Menu.show method to display the menu at arbitrary positions on the screen (context-menu style).
    • Added a twoDigitYearMax property to the culture calendar so users can control the threshold used for converting two-digit year strings into full years.
    • Added support for showing group *and* column headers in the MultiRow control. This is done by setting the collapsedHeaders property to null (rather than true or false).
    • FlexGridPdfConverter added support for FlexSheet.
    • Added support for dataMaps on Boolean FlexGrid columns.
    • Added a dataMap property to the wijmo.grid.filter.ColumnFilter class. This dataMap takes precedence over the owner column’s DataMap and is used to provide the strings displayed by the filter editors. For example, it can be used to change the strings displayed for Boolean column filters from ‘true/false’ to ‘yes/no’.

    Breaking Changes

    • @WjComonent decorator is removed from the library, because AoT compiler doesn’t support custom decorators.
    • A suffix in implementation names of Angular incarnations of Wijmo events has been changed from ‘Wj’ to ‘Ng’ (e.g. valueChangedWj became valueChangedNg). Note that these events was not officially documented and their direct usage was not presumed.
    • A suffix in implementation names of Angular property change events (intended to implement two-way binding) has been changed from ‘Ng’ to ‘PC’ (e.g. valueChangeNg became valueChangePC). Note that these events was not officially documented and their direct usage was not presumed.
    • Added an optional ‘fn’ parameter that was missing in the wijmo.removeEventListener method. This will only break code that called removeEventListener specifying all optional parameters, which should be rare. The change provides more control over event removal and consistency with the wijmo.addEventListener method.

    View Changelog History