* [FEAT] JS framework stuff has been moved from the "pvc" namespace to the new "def" namespace, in the new def/def.js file.
[FEAT] New data engine, with a new internal storage format and several new capabilities.
[FEAT] Small Multiple charts (currently only working/tested on bar charts).
[FEAT] Drag and click selection in non-composite ordinal axis (label detection is not yet finished, and currently only detects the text anchor point).
[FEAT] Introduction of visual roles.
[FIX]  Heat grid fixes to shape size calculation. Also, the minimum size of a shape is now bigger.
[FIX][BREAK]  Heat grid values, placed on each cell, are no longer clipped. This caused huge memory consumption and speed reduction for a not that big number of cells (10000).
[BREAK] Timeseries dimensions values are now a Date object. This affects extension points that receive or access this data (a backward compatibility feature for extension points may still be developed)
[BREAK][WIP] Some chart types are now not working. This is to be fixed (Metrics, Stacked Line and Stacked Area, Data Tree and Waterfall)
[FEAT] HeatGrids with no shapes are now also selectable (actually this was on the previous commit)
[FEAT] Linear axes now also receive the font option (axisLabelFont)
[FIX] [CDE-528] Show values doesn't work on bar charts - values < 1 did not show the 'value label' in bars
[BREAK] HeatGrid shape's minimum area changed from 4px^2 to 12px^2
[REFA] Refactored and moved color scales code, from heat grid chart to a new file "pvc.color.js" and namespace "pvc.color"; updated includes in "pvcTextZZZ.html" files and in pcvBundleFiles.txt
* def: Improved binary search lagorithm; changed def.query#object signature
* Changed the name of pvc.data.Dimensions#range to the less overloaded pvc.data.Dimension#extent
[FEAT][BREAK] Visibility is now per datum. This allows to control visibility when the legend is bound to multiple dimensions. The breaking changes are that charts do not show, for example, (discrete) categories for which no visible series exist. Previously if at least one series, visible or not existed, the categories would show.
[FEAT] Legend now has a 'legendFont' option and thus can calculate the size of the legend when unspecified. It does not *yet* handle the today common "font changing by extension point".
[FEAT][BREAK] Legend now reads data from its assigned role ('legendSource') and can show multiple dimensions (flattened with '~') (second axis series are not tested yet) The breaking change is in the data that binds to mark, thus breaking extensions points that explicitly read that data (instead of just reading this.index for example).
[FIX] Linear scales with no data would show NaN or Infinity. Also time series scale on empty data would throw.
* Stacked Line and Area are back to life (still broken: Metrics, Data Tree and Waterfall)
* Documentation improvements
* def - new query operators, a new Map class
* Dimensions are now more lazy than before. Most internal data structures are only created on first use.
* For the second axis series feature, translators now correctly handle a series dimensions reader that returns additional atoms, besides the series one.
* Ordinal axes now read data from assigned roles, instead of from dimension groups
[FEAT] Tipsy protovis behaviour now supports the specification of a tipsy exclusion group, causing that only one tipsy of each group is visible at a time. Supports multi-charts.
[FIX] Clicking on a chart empty area no longer re-renders the chart when there were no datums selected.
* Complexes' atoms object now can inherit from a prototype atoms object. This supports multicharts, in that Null Datums inherit atoms that are fixed on each small chart's data.
[FEAT] Renamed DimensionType#keyArgs{convert, compare, format} to DimensionType#keyArgs{converter, comparer, formatter}. New arguments were added to allow for automatic initialization of these, namely: rawFormat -> converter and format -> formatter}, both protovis formats' string masks.
[FEAT] New chart option: 'dimensionGroups' serves as prototype for all dimensions of a group, used by readers or defined in 'dimensions'.
[REFA] Refactored pvc.data.GroupingSpec, now less text parsing and a couple more classes.
[FEAT] New chart methods 'clearSelections' and 'updateSelections' allow (i) clearing selection and, (i) and (ii) forcing chart re-rendering due to programmatic selection changes
[BREAK][FIX] Vertical charts with timeseries now correctly apply the defined axis offset. This may cause {Dot,Line,Area}Charts to show an axis margin that previously did not show.
[BREAK] Options orthoFixedMin and orthoFixedMax are no longer automatically set depending on the options stacked and percentNormalized. This helps in determining the user's intent and decoupling the several features.
[FEAT] HeatGrid now obtains data from visual roles 'series', 'category', 'value' and 'value2'.
[FIX]  Fixed recent regression in HeatGrid's shape borders code.
[FIX][REFA][FEAT] Dot/Line/Area charts were rewritten.
[FIX] Fixed NormalizedBar in multicharts - percentages were not being correctly recalculated on re-render.
* New pvcTestLineFull.html showing several variants of Dot/Line/Area charts
* Improved lazy loading of dimensions, deferring more initializations
* Grouping operation modifications to allow better integration with the "where" operation.
[WIP] Moved some datasets from file q01-01.js into two new other files: heat-grid-mega.js and steel-wheels.js to alleviate the size of the former file.
[FEAT] Tipsy now supports lazy tooltip evaluation, when supplied with a tooltip function instead of a string.
[FEAT] Tooltips: Lazy, Html by default, Show dimensions names besides values, Common implementation to most charts.
[BREAK] Old tooltip default format function is now available at 'chart.options.v1StyleTooltipFormat', for backward compatibility support, and not anymore in chart.options.
[FEAT] pvc.data.Atom#toString now returns the atom's label to add in backward's compatibility
[WIP]  Compatibility methods: pvc.data.Data#{_getValuesForSeriesIndex, getCategoriesMaxSumOfVisibleSeries, getVisibleSeriesAbsoluteMax, getVisibleSeriesAbsoluteMin}, are no longer needed.
[WIP]  Categorical chart scale calculation methods no longer depend on layout issues!
[FEAT] Visual roles now define a chart's cisual capacities and corresponding data requirements. They get bound to / are played by pvc.data.DimensionType.
[FEAT] Visual roles can be defined as representing measures. This allows filtering datums on translation that have all dimensions bound to measure roles equal to null.
[FEAT] Dimensions can have a label (to show as a business name, in tooltips, for example)
[FEAT] New pvc.data.Dimension methods: sum, percent and percentOverParent help in calculating percentage values for Pie and Stacked charts
[FEAT] pvc.debug now is a number (0: none, 1: error, 2: warning, 3: info). This allows for better control of what is logged. Also several pvc.log functions that had performance-heavy arguments, logged or not, where wrapped in appropriate pvc.debug checks.
[FIX] Fixed bug in lines & areas selection code
[WIP] Added basic selection detection to pv.Wedge mark to support PieChart
[REFA] Moved selection and clicks code from pvc.CategoricalAbstractPanel to pvc.BasePanel (still there is redundant related code in AxisPanel)
[FEAT][BREAK] Panel Layout changes!
   * New _calcLayout method allows performing layout *before* creating protovis marks
   * New pvc.GridDockingPanel to support axis and content layout of pvc.CategoricalAbstract
   * New pvc.MultiChartPanel to support the (currently) flow-like layout of small multiple charts
   * [BREAK] pvc.BasePanel constructor now receives also the (immutable) parent panel, if any.
   * This change releases scales calculation code from performing layout calculations...
[FEAT] New pvc.visual.Context class is the context class that will be supplied as JS-context object to extension point functions, action handler functions, ...and contains all information relevant for extension purposes
[FEAT] New support for examples construction in pvcTestZZZ.html files added to pcvDocUtils.js,css
[FEAT][BREAK] Selection and MultiChart in PieCharts. Broke arguments passed to extension point functions.
[WIP] Improved Small Multiple Charts examples in pvcTestSmallMultipleCharts.html
[FEAT] Animation now supported in multi-charts
[FEAT] Update protovis to latest version. Includes multi-handler event support and point behavior unpointing when the mouse leaves the panel into which the behavior is added
[FEAT] Tipsy now supports a rootPanel option, that controls the boundaries of the tipsy tooltip; the tooltip is hidden when the mouse leaves that panel.
[FEAT] New chart 'hoverable' option that enables hover behavior on supporting charts
[FEAT] Line/Area/Dot charts support the hovering. Updated the pvcTestSmallMultupleCharts.html with an example.
[FEAT] Ordinal axes have a new adaptive label hiding mechanism when there is no space for them, exposed by options: axisHideExcessOrdinalLabels and axisLabelMaxOverlapping
[WIP] Pie charts show percent sign in shown values (for when option showValuePercentage is true)
[FEAT][REFA] Added delayIn functionality to tipsy.js and set a default delay of 400ms for all charts.
[FEAT] Changed the to grayscale conversion algorithm to not let colors become too near white, which caused some series become invisible when unselected, on bright colors
[FEAT][BREAK] Added render option that allows not reloading data. This improves performance a lot and is now the default rendering mode for when showing/hiding series through the legend panel.
[FIX] Bullet chart now forces the legend option to false, as it is not supported and causes an error when set to true.
[WIP] Improved hovering implementation of line/area/dot charts
* [DEPR] The HeatGrid option 'scalingType' has been deprecated in favor of the new 'colorScaleType'.
* def.js features:
   * Added ECMAScript5 shim of "Function#bind"
   * def.base is now placed in this.base of instances during overriding methods execution (same syntax as Base.js).
   * an 'override' method is added to every def.type created class. It allows for a nice per-instance method override with "this.base" support.
* [FEAT] New chart option "compatVersion" allows for better backward compatibility. Currently the single value 1 is supported and causes the chart to *try* to behave like CCC "version 1".
* Null value support has been improved:
  * The null atom of each dimension is only created when effectively used (a new Virtual Null Atom is used in cases where it is needed - in null datums - when a real null datum is not created).
  * The null atom of each dimension is now included in its atom list. The null atom always sorts first in ascending order.
  * The methods pvc.data.Data#{groupBy, where} now let null values in grouped by or filtered by dimensions to pass-through.
  * The series that is automatically added when the data source has no series, and a chart requires it, is the null-atom of the 'series' dimension or of the default dimension of the series role.
* [FEAT] Dimension types can be defined as "isHidden"; hidden dimension types are not shown in the default tooltip; this feature allows control or auxiliary dimension types to be defined.
* [BREAK] The MetricLine and MetricDot charts no longer sort data by the base (x) values. This same behavior can be achieved by specifying a comparer function for the "x" role dimension type. The option compatVersion = 1 may come to provide this previous sorting behavior (currently not implemented).
This behavior defeated one of the key abilities of "metric" charts - plotting data points that have some relevant order - for example drawing an ellipsis or parabola with dots and lines.
* [BREAK] The charts pvc.mStackedLineChart and pvc.mStackedAreaChart were removed.
These charts behaved in a similar way to the currently existing, non-"metric", pvc.StackedLineChart and pvc.StackedAreaChart(they both support continuous (numeric and date) base axis).
Note that *stacking* presumes grouping on the base axis' values - the categories - and *summing* the series values of same categories. The distinctive characteristic of "metric" charts is that there is no grouping on the "base" axis. Grouping on the base axis is a feature of *categorical* charts - data is grouped by *category*. Categories may be of continuous value types (in which case it represents a quantization of the continuous domain)...

* pvc.data.Complex now includes a 'value' property whose value is that of the 'key' property - when the complex has more than one local atom, or the value of pvc.Atom#value - of the single local atom. This property is used to feed scale functions in an uniform way, whether a role is discrete or continuous, and of single or multiple dimensions.
* [FIX] (Atom GC after load) Fixed a bug caused by the "null" datum filtering that is done upon data translation/loading. Atoms that had been interned solely because of datums later excluded would be left in their dimensions, as if used by some datum. This bug affected the correct detection of the use of the dimensions' null atoms.
* A few more data.compat.js functions aren't needed anymore and were deleted.
* [FEAT] Crosstab translation in "seriesInColumns" format correctly handles the case where there are no series (S = 0). No "auto-series" dimension is created.
* [FEAT] New pvc.color.scale function that creates a single color scale of discrete, linear or normal-distribution type (supports "color" role of XY Scatter).
* New debug level 4 - verbose
* New base class pvc.Cartesian2DAbstract between pvc.TimeseriesAbstract and pvc.CategoricalAbstract.
  All axis related logic, not related to "categories", has been moved from pvc.CategoricalAbstract to pvc.Cartesian2DAbstract.
  The new pvc.Cartesian2DAbstractPanel inherited all of the code of the now "deceased" pvc.CategoricalAbstractPanel.
  New class pvc.visual.CartesianAxis encapsulates all axis related logic, helps in determining axes options, and makes scale creation code much more clean.
* Renamed pvc.MetricAbstract to pvc.MetricXYAbstract
  The pvc.MetricScatterAbstract was renamed to pvc.MetricLineDotAbstract and inherits directly from pvc.Cartesian2DAbstract.
* LineDotArea has been changed to include the new "Sign" and "Scene" constructs, and the derived "Area", "Dot" and "Line".
* The MetricLineDot chart has been (totally) rewritten, taking lessons (and code) from LineDotArea
Small changes to dots transparency in MetricLineDot
[WIP] Rename of pvcWaterfallChart to pvcBarAbstractPanel as the later is a new class that will inherit most of the code.
* [FEAT] New experimental axis options: "fullGridCrossesMargin", "ruleCrossesMargin"
* [FEAT] Bar-family charts rewriting.
  * They now use roles, scenes and signs. The rendering model is now the same for stacked and non-stacked.
  * Hoverable.
  * Improved overflow/underflow markers; now extensible through "barOverflowMarker_" and "barUnderflowMarker_".
  * Fixed negative values animation
  * Fixed value label top-alignment
  * Axes offset can now be applied, to the base or ortho axis.
  * Waterfall still isn't working.
  * Second axis still isn't working.
  * New experimental option "barStackedMargin" allows to separate stacked bars by a fixed pixel amount.
  * [BREAK] Left-most and right-most margins caused by the option "panelSizeRatio" are now only half the size they were (on a vertically oriented chart). This makes the use of vertical grid lines look better.
  * [BREAK] The options "barSizeRatio" also changed slightly, in that the margin is only applied between grouped bars, and not at either end of the group. This may require the value to be slightly increased, so that it looks just the same as before (like from 0.9 to 0.85).
  * Changed the class hierarchy of bar charts
* [WIP] Ordinal scales now return the midpoint of the band, instead of the left position
* [WIP] Axes offset percentage is now applied to the range, instead of to the domain of scales. Simpler and yields the same results.
* [FEAT] Metric charts now calculate default equally spaced "base" and "ortho" axes offset, resulting in a more balanced visual look.
* [FEAT] Axes options can now (really) be specified using one of an axis' ids: "base", "x", "ortho2", "y2", ..., or the common id "axis"
* [FEAT] New maintenance script to synchronize script includes of "pvcTestZZZ.html" files from the script list in "pvcBundleFiles.txt" (contributed by Pedro Pinheiro!)
* [WIP] Updated protovis version (Band layout, pass-through CSS and SVG properties, and new split methods in ordinal scales)
* [WIP] Deleted a few more "Data.compat.js" methods, no longer needed
* [WIP] Activated new "sorting" method in grouping operations, that still has some problems though (GroupingSpec.js).
* [WIP] Protovis update (negative values support in "Band" layout).
* [WIP] Regression fix of series color
* [WIP] Dimensions sum cache is now correctly cleared when selection or visibility changes
* [FIX] When "FixedMin" or "FixedMax" options were specified, negative values of the options did not cause the main content panel to define a clipping path.
* [FEAT] Stacked bar chart and Normalized bar chart support for negative values.
* [FEAT] New experimental axis option "ZeroLine" for continuous axes.
[WIP] Fixed HeatGrid regression bug due to "useCompositeAxis" option not being read.
[WIP] Changed axis 'ZeroLine' option's default value to 'true'
[WIP] Only orthoFixedMin and orthoFixedMax are allowed to not have the "Axis" string.
[WIP] Noted that in bar charts, the axis options "Fixed{Min, Max}" still don't play well with axis options "Offset", due to clipping restricting to area inside offset margins...
[FIX] Bugs in the axis options "ZeroLine" and "FullGridCrossesMargin"
[FEAT] New continuous axis "ZeroLine_" extension point.
[WIP]  Restored second axis in bar chart.
[FEAT] Selectable & hoverable line & dots in Bar chart with second axis.
[FEAT] The new optional chart role "dataPart" is more flexible in allowing an easier partitioning of data, between the first and second axes, than the option "secondAxisSeriesIndexes", that depends on the order of series.
[FEAT] A new option "secondAxisOwnColors" allows not to use a different color palette for the series shown in the second axis (backwards compatible if compatVersion <= 1).
[FEAT] Lines in bar chart now show value labels when the bars do so too (backwards compatible if compatVersion <= 1).
[WIP] data.groupBy now supports the specification of a datum predicate to filter the included datums.
[WIP] Updated translation classes to create and populate the "dataPart" dimension when the option "secondAxisSeriesIndexes" is specified. The splitting between value and value2 was discontinued in favor of this scheme.
[WIP] Fixed ZOrder of EndLines, ZeroLines and Axis Rules in relation to Bar and Line charts
[WIP] [FIX] Fixed selection of lines and areas in Line/Area/Dot charts (still need to fix the order in which protovis selects elements for the point event, favoring background elements)
[WIP] Added scenes to the LegendPanel.
[WIP] The default of the option "legendShape" has changed from "square" to null, making it the default case that legend shape follows the line/bar shape of the corresponding dataPart (backwards compatible if compatVersion <= 1).
[WIP] A few renames, from "legacy" to "v1"