Angular components to use the Cubes Slicer API provided by Babbage.



A set of view components to visualise data returned by a Babbage API.
Install from npm, and use in your app. See the docs, and below, for more information.
The library provides a DSL, query frontend and visualisation functions running against the Babbage Analytical Engine API. The intent is to make a re-usable set of angular-based front-end
components for business intelligence.
#### Preparing your angular application
There are two ways to use angular bindings in your application:
- require components from /src/bindings/ (ES2016 code) or from /lib/bindings/ (compiled sources) directory;
- add /dist/babbage-.js or /dist/babbage-.min.js file to html page. Important note: ensure that c3, d3 and jQuery objects are available in global scope. They are marked as external to allow extending them. Also see notes for some visualizations.
Then you should initialize library components, in example:
``javascript
// This two lines should be used only with CommonJS code;
// when using webpack bundles - angular and Babbage will be available
// in global scope
var angular = require('angular');
var Babbage = require('babbage.ui/lib/bindings/angular');
var pieDirective = new Babbage.PieChartDirective();
var chartDirective = new Babbage.ChartDirective();
var treeMapDirective = new Babbage.TreemapDirective();
var bubbleTreeDirective = new Babbage.BubbleTreeDirective();
var tableDirective = new Babbage.BabbageTableDirective();
var geoViewDirective = new Babbage.GeoViewDirective();
var pivotTableDirective = new Babbage.PivotTableDirective();
var factsDirective = new Babbage.FactsDirective();
var sankeyDirective = new Babbage.SanKeyChartDirective();
var module = angular.module('babbage.ui', []);
pieDirective.init(module);
chartDirective.init(module);
treeMapDirective.init(module);
tableDirective.init(module);
bubbleTreeDirective.init(module);
geoViewDirective.init(module);
pivotTableDirective.init(module);
factsDirective.init(module);
sankeyDirective.init(module);
`
#### Using angular bindings
Common parameters for each visualization:
- aggregates - string; single key of measure. filter
- - array of strings; each string should contain key of dimension and filter value, separated by pipe |. order
- - array of objects; each object should have key (key of measure or dimension) and direction fields. Possible values for direction are asc and desc.
Other visualizations may require other additional parameters.
##### Treemap, BubbleTree, Facts, Table, Map components and charts
`html
currency-sign="USD"
country-code="US">
`
Additional required fields:
- group - array of strings - keys of dimensions to group by.
Important notes:
- BubbleTree requires bubbletree library (take care about its dependencies too).
- TreeMap and Map visualizations require d3 library.
- All charts require c3 library.
##### Pivot Table
`html`
Additional required fields:
- rows - array of strings - keys of dimensions to use as rows. cols
- - array of strings - keys of dimensions to use as columns.
##### Sankey
`html`
Additional required fields:
- source - string - key of dimension to use as source (left nodes on graph). target
- - string - key of dimension to use as target (right nodes on graph).
Important note: this visualization requires sankey plugin for d3.
Clone the repository and open index.html to see babbage in action, no pre-config required.
* Dev tool installation with npm: npm install (see package.json).npm run build:lib
* Compile library sources using .npm run build:dist
* Use or npm run build:dist:min to create webpack bundles for each binding. Also use npm run build to completely rebuild the library.npm test
* Run tests with . npm run review
* Check code style with . Run npm run fix` to check code style and automatically fix errors.
* Sample API result
* vega tutorial
* nvd3 and angular-nvd3
* OffenerHaushalt Treemaps