/**
* Charts wrapper. * * @author Htmlstream * @version 1.0 * @requires sparkline.js (v2.1.2), peity.js (v3.2.1) * */
;(function($){
'use strict'; $.HSCore.components.HSChart = { /** * Sparkline Charts */ sparkline: { /** * Base plugin's configuration. * * @var Object _baseConfig */ _baseConfig: { fillColor: '#72c02c', lineColor: '#72c02c', barColor: '#72c02c' }, /** * Collection of all initialized items of the page. * * @var jQuery _pageCollection */ _pageCollection: $(), /** * Initializes new collection of items. * * @param jQuery collections * * @return jQuery */ init: function(collection){ var self = this; if(!collection || !collection.length) return $(); return collection.each(function(i, el){ var $this = $(el), config = $.extend(true, {}, self._baseConfig, $this.data()); $this.sparkline( $this.data('data'), config); self._pageCollection = self._pageCollection.add( $this ); }); }, /** * Returns entire collection of initialized items or single initialized * item (in case with index parameter). * * @param Number index * * @return jQuery */ get: function(index) { if(index) { return this._pageCollection.eq(index); } return this._pageCollection; } }, /** * Peity Charts */ peity: { /** * Base plugin's configuration. * * @var Object _baseConfig */ _baseConfig: { fill: '' }, /** * Collection of all initialized items of the page. * * @var jQuery _pageCollection */ _pageCollection: $(), /** * Initializes new collection of items. * * @param jQuery collections * * @return jQuery */ init: function(collection, config){ var self = this; if(!collection || !collection.length) return $(); config = config && $.isPlainObject(config) ? $.extend(true, {}, this._baseConfig, config) : this._baseConfig; return collection.each(function(i, el){ var $this = $(el), currentConfig = $.extend(true, {}, config, $this.data()); $this.peity( $this.data('peity-type'), currentConfig ); self._pageCollection = self._pageCollection.add( $this ); }); }, /** * Returns entire collection of initialized items or single initialized * item (in case with index parameter). * * @param Number index * * @return jQuery */ get: function(index) { if(index) { return this._pageCollection.eq(index); } return this._pageCollection; } } };
})(jQuery);