Wijmo 2019 v2

Wijmo's second release of 2019 has landed with several new enhancements, including increased support and functionality for React and Vue Interop.

Get Wijmo 2019 v2 now

React Improvements

React has exploded in popularity and we have been working to make our React support even deeper. This release features a few nice ways to define custom templates, including bindings in markup to all controls that have Items.

We added MenuItem and MenuSeparator components

React Menu

React MenuItem Sample | Read More About React Menus and List Items

We also added a new wjItemTemplate 'render prop' to these controls:

Up next is rich cell template support in our React FlexGrid interop.

Vue Improvements

Similar to React, we made some nice improvements in our Vue interop. We added wj-menu-item and wj-menu-separator components to our Vue menu component.

Vue wj-menu-item Sample | Read More About Vue Improvements

More Gauge Customization

A few customers have asked for more details to be added to our gauges, so we added a couple new properties to help.

We added a Gauge.showTickText property to show text labels next to each tickmark

Gauge Customization

Gauge Tick Mark Labels Sample

We also added support for needle-based pointers with the new RadialGauge properties and methods:

  • needleShape
  • needleLength
  • needleElement
  • createNeedleElement

RadialGauge Needle Pointer Sample

Template Literal Function

We added a new i18n template literal function to Wijmo. It allows you to build multiline strings with interpolated values, and makes it easy to handle single and double quotes embedded in your strings.

glbz Sample | Read More About Template Literal Functions

Undo Redo in Applications

Almost every application can benefit from being able to undo and redo recent actions. We often have customers that want this built into FlexGrid. We did even better and made a nice Undo/Redo class for managing history of actions at the application level. Of course, you can use it just with FlexGrid if you prefer. But we recommend trying it out for your entire app!

UndoStack Sample | Read More About Undo Redo in Applications

Paging for Data

We added a New CollectionViewNavigator control for navigating through CollectionView items or pages. This is a really common UI. It can easily be used with any of our controls like FlexGrid to offer simple paging through data.

Paging for Data

CollectionViewNavigator Sample

FlexGrid MultiRange Selection

A few customers have asked for Excel-like multirange selection for FlexGrid. We added a new SelectionMode called MultiRange to support this behavior. This allows users to hold down ctrl (or command) + select multiple ranges of cells in FlexGrid. You can use the new we added a new selectedRanges property, which gets an array containing CellRange objects that contain the currently selected ranges.

FlexGrid MultiRange Selection

FlexGrid MultiRange Selection Sample | Read More About the MultiRange Selection

FlexGrid Performance Tuning APIs

We added some new APIs for when you want to tune performance for more rare scenarios. Most people will not need to use them, but we exposed them for the few who do. Make sure to read the documentation carefully for each when using them.

  • new FlexGrid.refreshRange method
  • FlexGrid.lazyRender property
  • FlexGrid.refreshOnEdit property

More Cultures Added to Wijmo Globalization

We are always expanding our globalization to help customers build better applications. This release features support for:

  • Mongolian
  • Vietnamese
  • Swiss German

Of course there are many little things we fixed or enhanced in the release like Resizable Popup or deep-binding in wijmo.format. Check the change log for the full list!

Change Log
  • Added a FlexGrid.autoRowHeights property to automatically resize row heights when cells are loaded, edited, and when the grid layout changes.
  • Added FlexGrid.lazyRender and refreshOnEdit properties for more performance control.
  • Added a new FlexGrid selection mode: SelectionMode.MultiRange and a FlexGrid.selectedRanges property that provides access to the extended selection.
  • Added CollectionViewNavigator control for navigating through CollectionView items or pages.
  • Added "glbz" tag function to support formatting in template literals.
  • Added support for deep-binding in wijmo.format method.
  • Added a Popup.isResizable property to create resizable dialogs.
  • Added a Gauge.showTickText property to show text labels next to each tickmark.
  • Added support for needle-based pointers with the new RadialGauge properties and methods: needleShape, needleLength, needleElement, createNeedleElement.
  • [React] Added MenuItem and MenuSeparator components, which allows you to define Menu component items declaratively. All the relevant samples have been updated to define menus declaratively. The new 'Input\Menu\Dynamic Items' sample has been added.
  • [React] Added wjItemTemplate 'render prop' to the ListBox, ComboBox, MultiSelect and Menu components. The property allows you to specify a render function used to draw custom items content. The property usage is demonstrated in the following samples:
    • Input\ListBox\Customization
    • Input\ComboBox\HTMLContent
    • Input\ComboBox\Multi-column
    • Input\MultiSelect\Customization
    • Input\Menu\Dynamic Items
  • [Vue] Added wj-menu-item and wj-menu-separator components, which allows you to define wj-menu component items declaratively. All the relevant samples have been updated to define menus declaratively. The new 'Input\Menu\Dynamic Items' sample has been added.
  • Added Swiss-German culture file: wijmo.culture.de-CH.ts. With the recent addition of Vietnamese and Mongolian cultures (wijmo.culture.vi.ts and wijmo.culture.mn-MN.ts) this brings the total number of cultures supported to 50.
  • Added FlexSheet.allowAutoFill property. (TFS 377969)
  • [FlexChart] Added Legend.orientation property. (TFS 379230)

Wijmo 2019 v1

Wijmo’s first major release of 2019 has landed, and it includes brand new developer resources, nice customer-requested features, improved components using a new browser API, and more.

Wijmo Build 5.20191.615 Available

Build 5.20191.615 has released. It includes Angular 8 support, some nice new enhancements and several bug fixes. It also includes a fix for AOT compiling in Angular.

Read the full Build 5.20191.615 release

Change Log

  • Added support for deep-binding in wijmo.format method.
  • Added FlexChart.itemsSourceChanging/Changed events.
  • Added FlexGrid.refreshRange method for finer control on rendering.
  • [Build 606] This is identical to (the previously released) build 603, other than a fix to our angular module structure to solve a problem in the AOT compiler.
  • [FlexGrid] Added a FlexGrid.errorTip property that allows you to specify a Tooltip to use when showing validation errors. Use this property to customize the tooltip, or set it to null to restore the original behavior (use the cell's "title" attribute to show validation errors)
  • [FlexGrid] Added an extra parameter to the FlexGrid.getClipString method so it can export row headers (in addition to column headers). This new feature is important for exporting the content of PivotGrid controls for example.
  • [FlexGrid] Added a FlexGrid.alternatingRowStep property that allows you to specify the number of regular rows that should appear between alternating rows (the default is one; set this property to zero to disable alternating rows or set it to a value greater than one to show multiple regular rows between alternate rows). Note: The alternatingRowStep property replaces/extends the showAlternatingRows property which has been deprecated.
  • [GroupPanel] Added a GroupPanel.showDragGlyphs property that causes the control to show drag handle glyphs in the group marker elements.
  • [PivotGrid] Added a PivotGrid.outlineMode property that causes the PivotGrid to show row groups in outline format, allowing for more compact displays.
  • [PivotGrid] Improved keyboard support in the PivotGrid to allow expanding and collapsing row groups with the keyboard (use alt-Left to collapse, alt-Right to expand).
  • [PivotGrid] Changed the olap.PivotGrid to honor the allowMerging property. Also changed the default setting of the property to 'AllHeaders'.
  • [PivotGrid] Added a PivotGrid.showValueFieldHeaders property that causes the grid to show headers for value fields even in views that have a single value field.
  • [MultiRow] Added support for the MultiRow.newRowAtTop property (in previous versions the new row template was always displayed at the bottom of the MultiRow.
  • [MultiRow] Added support for explicitly setting the rowspan in MultiRow cells.
  • [FlexChart] Added a Series.tooltipContent property that allows you to add tooltips for specific series.
  • [FlexChart] Added a Series.itemFormatter property that allows to specify an item formatter function for specific series.
  • [FlexChart] Added support for ranged Area charts: this is similar to the support for ranged Bar and Column charts: specify the name of the properties that contain the min and max values in the series binding, e.g. myAreaSeries.binding = "ymin,ymax". Read the blog
  • [TreeView] Added a TreeView.expandOnLoad property that determines whether the TreeView should automatically expand the first node when it loads (default behavior) or if all nodes should be initially collapsed.
  • [TreeView] Added a TreeView.checkOnClick property that allows users to check nodes by clicking anywhere on the node header (as opposed to clicking on the checkbox itself).
  • [TreeView] Added a TreeView.checkedMemberPath property that allows you to bind the checkboxes in the TreeView to data members.
  • [Menu] Added a Menu.closeOnLeave property to work with Menu.openOnHover and provide more control over when menus open and close.
  • [PrintDocument] Added an optional callback to the PrintDocument.print method gets invoked when the document is done printing
  • Added combobox.trimText property
  • Improved the FlexGrid mouse handling logic to prevent sorting columns when clicking column headers that are merged horizontally (because in this case the header refers to multiple columns).
  • Changed the FlexGrid's CSS to use weaker rules for cell styles so they are easier to override.
  • Improved FlexGrid rendering performance by reordering cells when scrolling horizontally.
  • Improved the FlexGridFilter's date/time condition filtering logic.
  • Improved the FlexGridFilter's condition editor by disabling the value editors when no condition is set. You can also hide the value editors using this CSS rule:
 .wj-conditionfilter-editor .wj-control.wj-state-disabled {  
    display: none;  
 }

Explore Controls & Features in Every Framework!

Explore Controls & Features in Every Framework

We have consolidated all of our (500) samples into one place. And each sample is available in the following frameworks:

  • Pure JavaScript, using ES6 modules (no framework)
  • Angular (v2+)
  • Vue (v2+)
  • React

Explore our new demos

New with Wijmo 2019 v1:

Get Wijmo 2019 v1 now


Wijmo Build 5.20183.568 Available

Build 5.20183.568 is now available. It includes some new features and a plenty of bug fixes.

Change Log

  • Added two new LearnWijmo fiddles that highlight the FlexGrid’s basic and advanced features: Basic features | Advanced features
  • Added a cssClassAll property to the FlexGrid's Row and Column classes so you can add CSS classes to header cells as well as to data cells.
  • Added two new settings to the wijmo.olap.ShowAs enumeration: PctPrevRow and PctPrevCol cause the engine to show values for each item as a percentage of the value in the previous row or column. OLAP ShowAs sample
  • Added two extra parameters to the FlexGrid.getClipString method so it can be used to export to CSV (instead of tab-delimited text) and to optionally include column headers. CSV Export sample
  • Added a Tooltip.cssClass property to allow different types of tooltips to use different styles (e.g. information, validation, etc)
  • Improved the ComboBox.selectedValue property to get or set the control's text when it has no itemsSource. This makes it easier to use the ComboBox as a replacement for regular input elements (and leverage wijmo's infrastructure including styling).
  • Added a new "exclusiveValueSearch" property to the PivotEngine and FlexGridFilter classes. This new property is set to true by default, which enables an Excel-like behavior (searching excludes items from the filter). Set it to false to disable this, so searching only affects which items are displayed on the list, and not which items are included in the filter.
  • [AngularJS] Added auto-size-rows boolean property to the wj-flex-grid-cell-template directive, which is being set to false disables the default behavior where the cell template increases grid's default row height to accommodate cells content.
  • Improved the FlexGrid IME handling to start editing on Unicode spaces as well as regular spaces.
  • [WebComponents] Added Beta version of the WebComponents interop (wijmo.webcomponents.568.js modules). The Samples\TS\WebComponents\WebComponentsIntro sample explains the status and usage of the interop. WebComponentsIntro sample | Read the guide to web components

New Samples

Get Build 5.20183.568 now


Wijmo Build 5.20183.550 Available

Web Workers in PDF Export

Faster PDF Export with Web Workers

PDF export can often slow down web apps: since the export is happening in the browser’s UI thread, it can cause the rest of the application to be unusable. This is where Web Workers comes to the rescue. We used Web Workers to process the exporting of PDF files on a separate thread from the application UI. This allows the applications to stay usable and the PDF export to churn along in the “background”.

This feature is now available in our PDF module. Read the Web Workers blog

Group Headers in ComboBox/ListBox

We've added a showGroups property that you can use to add group headers to ListBox and ComboBox controls. Group header items are added if the showGroups property is set to true and the itemsSource collection has grouping enabled.

Grouping in ComboBox

Try the fiddle

Ribbon Sample using TabPanel

We’ve added a ribbon sample that shows how you can create ribbons easily using the TabPanel control and the controls in Wijmo's input module.

The ribbon element is a TabPanel. The tab pages contain groups of controls arranged in rows and columns. Controls in the groups use Material Icons, and have tooltips created automatically based on the aria-label attribute assigned to each control.

Ribbon sample

Try the fiddle | Read the blog

Slicer for OLAP

We have added a Slicer control to our OLAP module. The Slicer control provides a quick way to edit filters applied to PivotField objects.

It provides buttons the user can click to filter data based on values and indicates the current filtering state, which makes it easy to understand what is shown in filtered PivotGrid and PivotChart controls.

OLAP Slicer

Try the fiddle

Detail Dialog API in OLAP

The Wijmo PivotGrid allows you to drill down into cells to see the data items that were used to calculate each summary. Users can invoke the detail dialog by double-clicking any value cell. You can also invoke the detail dialog by calling the grid's showDetail method and passing the coordinates of the cell.

Now, the grid exposes the detail dialog through its detailDialog property, which can be used to customize the dialog:

Detail Dialog

Try the fiddle

Calculated Fields in OLAP

We also added a PivotField.getValue property to OLAP that allows you to specify a custom function to be used for retrieving the field value for a given item. You can use this to implement calculated fields such as 'binning' (e.g. Value => large/medium/small) or calculated expressions (e.g Conversion => downloads/sales).

Try the fiddle

Year Picker in Calendar

We added a small but useful feature in our Calendar and InputDate controls. You can now click on the year header to open a year picker that allows you to much more easily jump to different years. This little enhancement should save your end users some time when selecting dates.

Year picker in JavaScript calendar

We got this request from a customer and thought it was a great idea. Our Menu control now supports adding multiple submenus to it so that you can create more complex menus and context menus. We also added an option to open menus on hover.

Submenu in JavaScript menu

Try the fiddle

Looking for Angular 7 Support?

We're very excited about Angular 7, and as you know, Wijmo has first-class Angular support. We're happy to announce that Wijmo supports Angular 7, so you can use the current version of Wijmo to build Angular 7 applications today. Read the Angular 7 blog.

New Samples

Changelog

  • Added support for FlexGrid pdf export using Web Workers. See the PdfWebWorkersClient and PdfWeb Workers for the details. The AngularJS PdfExport sample has added Web Workers example to demonstrate the feature. Read the blog.
  • Wijmo fully supports Angular 7. Read the blog.
  • [WebComponents] Added Beta version of the WebComponents interop (wijmo.webcomponents.568.js modules). The Samples\TS\WebComponents\WebComponentsIntro sample explains the status and usage of the interop. WebComponentsIntro sample | Read the WebComponents blog post
  • [npm] Wijmo is published to the global npm registry as the 'wijmo' package. | Read the NPM blog
  • Added a GroupPanel.filter property that allows you to specify the FlexGridFilter being used on the grid. Once you do that, the group panel will show filter glyphs on the group headers. Clicking the filter glyphs opens the filter editor for the corresponding column.
  • Added a PivotGrid.detailDialog property that returns a reference to the grid's DetailDialog control used to display detail records when the user double-clicks a cell.
  • Added a repeatButtons property to the Calendar and InputDate controls that causes the calendar buttons to fire repeatedly while the button is pressed. (This is similar to the InputNumber.repeatButtons property).
  • Added a showYearPicker property to the Calendar and InputDate controls that causes the calendar to show a list of years when the user clicks the year calendar header.
  • Added a PivotField.getValue property that allows you to specify a custom function to be used for retrieving the field value for a given item. This can be used to implement calculated fields which can be used for 'binning' (e.g. Value=> large/medium/small, Country=> A/B/C/Other) or any calculated expression (e.g Conversion=> sales/downloads).
  • Added a showGroups property to the ListBox and ComboBox controls. This adds group header elements to lists with grouped item sources. For example: https://jsfiddle.net/Wijmo5/sy7u9rn6/ (It is analogous to the showGroups property in the FlexGrid control).
  • Optimized ListBox loading performance (especially in IE/Edge).
  • [FlexSheet] Added option to let user disable dragging cell ranges. Added 'enableDragDrop' property to FlexSheet. (TFS 342191)
  • [FlexSheet] Disable formulas in FlexSheet. Add 'enableFormulas' property in FlexSheet. (TFS 341806)
  • Added a new wijmo.olap.Slicer control that provides easy value-based filtering. This is similar to the Slicer control in Excel's PivotTables. For example: https://jsfiddle.net/Wijmo5/3p8rcuqe/
  • Added a new wijmo.olap.PivotField.visible property that allows developers to hide certain fields so they do not appear in PivotPanel controls (and therefore cannot be removed from or moved within the view definition).
  • [Enhancement][FlexSheet] Click and Drag Cell Corner to Fill Data. (TFS 229151)
  • Expanded the documentation to include missing default values for several properties on several controls.
  • [Enhancement] [FlexSheet] Support for INDIRECT and ADDRESS formulas. (TFS 337828)

See Wijmo release history