yui/yui3 — pull request #373 by tripp (2012-12-21 02:01:28+00:00)
Title: Chartaxismodularization

This is a refactoring of the chart's axis layer so that it is more modular. In this update, I've broken up the charts module into several smaller modules that can be downloaded as needed to build custom chart applications. For example, the below code snippet will only pull down code necessary to build a sparkline.

```javascript
YUI().use('axis-numeric-base', 'axis-time-base', 'series-line', function (Y) {
var myDataValues = [
{date: "01/01/2009", open: 90.27, close: 170.27},
{date: "01/02/2009", open: 91.55, close: 8.55},
...
],
categoryAxis = new Y.TimeAxisBase({
dataProvider: myDataValues,
keys: ["date"]
}),
seriesAxis = new Y.NumericAxisBase({
dataProvider: myDataValues,
keys: ["close"]
}),
graphic = new Y.Graphic({
render: "#mychart"
}),
series = new Y.LineSeries({
graphic: graphic,
xAxis: categoryAxis,
xKey: "date",
yAxis: seriesAxis,
yKey: "close",
rendered: true,
styles: {
line: {
weight: 1
}
}
});
series.draw();
});
```

Despite the many diffs in this commit, there is not much actual code change. The vast bulk of diffs are API Doc updates so that one can view the propose breakout of charts modules by running yogi serve. Some diffs are due to code being moved into new classes for modularity. This is a work in progress (for this sprint) and the pull request is for the benefit of broadcasting the upcoming changes.

While any feedback is always welcome, the emphasis of this request is on the classes outlined in the attached diagrams and the new modules.

ORIGINAL AXIS CLASSES

![original](https://f.cloud.github.com/assets/63965/26049/a8a9d984-4b0c-11e2-9f82-bee857c522e3.png)

UPDATED AXIS CLASSES

![modularized](https://f.cloud.github.com/assets/63965/26050/b1fd6e06-4b0c-11e2-9a3d-8c4247999ca3.png)

Also important are:
src/charts/build.json
src/charts/meta/*

Additionally, you can run yogi serve on the charts directory and click the API Docs link to get a good view of the modules.

The 'charts' and 'charts-legend' modules will have the same functionality as before.