d3vl extension and updates to senseUtils
I've uploaded a new extension to GitHub called the d3 visualization library, or d3vl for short. It is a collection of 30 examples from the d3js.org gallery incorporated into a single Qlik Sense extension. The goal is to show how easily d3 can be integrated with Qlik Sense.
The d3vl also demonstrates the concept of using an extension as a library of charts, rather than a single chart. Using an extension as a library of similar charts has a few advantages, such as an easy installation, minimal impact on Sense's chart object list, and common themes across the charts. In the future I hope to see more libraries like these, as opposed to one-off extensions. A great example would be a network extension that contains charts related to networking, all with a common styling and notation.
The senseUtils library has also been updated with new functions. I will write up a future post about how to use them, but here is a quick rundown:
- pageExtensionData: pages an extension's data; currently, the max page size for an extension is 10,000 cells, so anything beyond that will not be returned to your extension object. if you need to use more data than that, you can use this function
- flattenData: flattens pages of extension data into one array. Currently, the page arrays are contained in an outer array. This function concatenates them into a single array
- getDimLabel: gets the dimension labels for an extension
- getMeasureLabel: gets the measure labels for an extension
- setupContainer: sets up the container for an extension, which includes logic for emptying the container on redraw
- extendLayout: extends the layout object by adding some useful properties. An example is a property on the qMatrix row data that has a pre-defined function for selecting that row's values. This makes it possible to easily incorporate selections into visualization libraries like d3 without having to write new selection functions
A post demonstrating how to use these new functions will be available soon. In the meantime, d3vl uses a lot of these new methods and can be used as an example.