Wijmo 5: A New Generation of JavaScript Controls

Deliver next-generation HTML5 applications with Wijmo 5, a collection of true JavaScript controls that doesn't make compromises to support legacy browsers. With touch-first design and full Angular support, these highly performant, lightweight controls will blow you away with their power and flexibility.

Download Free Trial (v 5.20162.198)

Already purchased Wijmo? Download it here.

What is Wijmo 5?

Wijmo 5 is a new generation of JavaScript controls. We decided it was time to launch an HTML5/JavaScript product taking full advantage of the latest and greatest technologies, and no longer make compromises in order to support legacy browsers.

Thomson Reuters
“With Wijmo’s extensibility model, the Microsoft Dynamics team was able to quickly customize and incorporate Wijmo 5 controls into our new release.”

— Param Kahlon, General Manager, Microsoft Dynamics CRM Engineering
Read more about Microsoft Dynamics and Wijmo 5

Introducing Wijmo 5

What’s Included


Why Wijmo 5?

Touch-First, Mobile-First

Wijmo 5 was designed with mobile browser support built in from the start. Responsive layouts and touch support were major factors in the design and implementation of every Wijmo 5 control.

Touch-First, Mobile-First

First Class Angular 1 and 2 Support

First Class Angular 1 and 2 Support

Wijmo’s Explorer Fully Supports the Angular 2. Read more.

AngularJS is one of the most popular and powerful JavaScript application frameworks today. With the development of Angular 2, it continues to set the direction of the next Web. For this reason, we ship and maintain AngularJS directives for all of our controls, and use it in most of our samples. Of course, you can also use Wijmo with other frameworks. We provide official support for KnockoutJS and will consider others in the future.

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 has given us the opportunity to create true JavaScript controls. For example, instead of writing control.value(control.value() + 1) to increment the value of a property, now you can write control.value++. Additionally, we provide complete IntelliSense for Wijmo in Visual Studio for an even more familiar experience.

We wanted to provide a familiar experience for .NET developers migrating to HTML5. For this reason we have also created ICollectionView in JavaScript. All of the Wijmo 5 controls can be bound to CollectionView, giving developers a very easy migration path from the .NET platform.

True JavaScript Controls

Built on TypeScript

Built on TypeScript

Large-scale, client and server side applications are possible with Wijmo 5. We built on TypeScript for a better coding experience, and to give an object-oriented, C#-like feel to working with Wijmo 5. Full support for TypeScript means that you’ll have Intellisense and design-time error checking, making your work easier. Of course, we want to be flexible for you, so if you prefer JavaScript, you can work in Wijmo 5 in its JavaScript form. Additionally, we provide complete IntelliSense for Wijmo in Visual Studio for en even more familiar experience.

Highly Performant and Lightweight

With Wijmo 5 we had an opportunity to completely rethink and rewrite our controls. We have chosen to target modern browsers and this has enabled us to create the fastest and most lightweight controls in the market. Every control is optimized for size and speed. Plus, Wijmo 5 has no dependencies on any external libraries. It does not require jQuery, jQueryUI, or anything else. Create applications that load faster and are easier to deploy!

Highly Performant and Lightweight

Flexible API

Flexible API

It’s in the name! You may remember our famous FlexGrid from any number of platforms, even as far back as VB. We are bringing our “Flex” model and FlexGrid to JavaScript. FlexGrid became incredibly popular because it has a simple and yet very flexible API. The concept is to develop a simple control that has many extensibility points so that developers can extend and enhance it as they need. This is what makes FlexGrid and FlexChart so flexible and powerful.



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

Launch Sample Explorer




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


FlexGrid 101

Shows how to perform common tasks with FlexGrid, our fast and flexible data-bound grid control.


FlexChart 101

Shows how to perform common tasks with FlexChart, our beautiful and easy-to-use chart control.


Input 101

Shows how to perform common tasks with all the Input controls in Wijmo 5.


Gauge 101

Shows how to get started with LinearGauge and RadialGauge, our smart and flexible gauge controls.


FlexPie 101

Shows how to get started with FlexPie, our flexible pie chart control.


CollectionView 101

Shows how to get started with CollectionView, our .NET-like class that uses regular JavaScript arrays as data sources.

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

What’s New

What’s New in Build 198

  • Angular 2: tested against RC.4. Angular2 Info
  • Angular 2: added support for Angular forms. The ngForms sample demonstrates the feature. The implementation is based on the *new* forms implementation from the @angular/forms module, instead of *deprecated* forms stuff from the @angular/common module. See the documentation on the new forms stuff here: https://angular.io/docs/ts/latest/guide/forms.html. The dynamic forms scenario described here https://angular.io/docs/ts/latest/cookbook/dynamic-form.html is supported as well. The ngForms sample includes the modified version of the Dynamic Forms example that uses Wijmo input components. Angular 2 ngForms sample
  • Modified input controls to support the ‘for’ attribute of labels. The control modifies the for attribute from targeting the host element so they target the inner input element instead. The InputDate will automatically set the id to its inner input element to ‘inputDate.input’ and will switch the “for” attribute of the label to target the input element instead.
    InputLabels sample | Building Great Web Forms with Wijmo blog
  • Added a new WealthHealth sample to demonstrate dynamic charts. Based on a popular data visualization for the health and wealth of nations. WealthHealth sample | Creating Amazing Dyanmic Charts Using Wijmo blog
  • Rewrote parts of the XLSX module to no longer include xlsx.js dependency. This allowed us to remove the restricitve Microsoft copyright and license.
  • Added a few class names to FlexGrid elements to enable more flexible CSS-based styling. The new class names are:

    • wj-elem-collapse Element that holds the expand/collapse glyphs in group rows
    • wj-elem-dropdown Element that holds the drop-down glyph in data-mapped cells
    • wj-elem-filter Element that holds the filter glyph in column headers
  • Added a “wj-autocomplete-match” class to define the default style used for highlighting AutoComplete matches (can be overridden by the cssClass property).
  • Added an AutoComplete.searchMemberPath property that allows you to specify item properties to use when searching (in addition to displayMemberPath).
  • Added an ‘isReadOnly’ property to all input controls (DropDown, InputNumber, Calendar). This prevents users from changing the value, but still allows selection, focus, and events. It is equivalent to the ‘readonly’ property in HTML input elements, but also prevents editing with the mouse (drop-downs, buttons, wheel).
  • Added a selectionMode property to the InputDate and Calendar controls to allow selecting months rather than specific days.
  • Added specific class names to derived controls (for example, the ComboBox control host element now has class wj-combobox in addition to wj-control and wj-dropdown).
  • Improved CSS to keep InputDate calendar width constant as the user navigates months in IE.
  • Added undo/redo processing for inserting/removing chart in FlexSheet. (TFS 191085)
  • Added a new ‘wj-state-empty’ class to controls that contains empty input elements. This class can be used in CSS selectors along with the wj-state-focused class.
  • Allow empty strings on masked inputs when “isRequired” is false.

View Changelog History