src/cal-heatmap.js
function(dataSource, afterLoad, updateMode) {
		"use strict";

		if (arguments.length === 0) {
			dataSource = this.options.data;
		}
		if (arguments.length < 2) {
			afterLoad = true;
		}
		if (arguments.length < 3) {
			updateMode = this.RESET_ALL_ON_UPDATE;
		}

		var domains = this.getDomainKeys();
		var self = this;
		this.getDatas(
			dataSource,
			new Date(domains[0]),
			this.getSubDomain(domains[domains.length-1]).pop(),
			function() {
				self.fill();
				self.afterUpdate();
			},
			afterLoad,
			updateMode
		);
	}
function(dataSource, afterLoad, updateMode) {
		"use strict";

		if (arguments.length === 0) {
			dataSource = this.options.data;
		}
		if (arguments.length < 2) {
			afterLoad = true;
		}
		if (arguments.length < 3) {
			updateMode = this.RESET_ALL_ON_UPDATE;
		}

		var domains = this.getDomainKeys();
		var self = this;
		this.getDatas(
			dataSource,
			new Date(domains[0]),
			this.getSubDomain(domains[domains.length-1]).pop(),
			function() {
				self.fill();
				self.afterUpdate();
			},
			afterLoad,
			updateMode
		);
	}
function ( dataSource , afterLoad , updateMode ) { "use strict" ; if ( arguments . length === 0 ) { dataSource = this . options . data ; } if ( arguments . length < 2 ) { afterLoad = true ; } if ( arguments . length < 3 ) { updateMode = this . RESET_ALL_ON_UPDATE ; } var domains = this . getDomainKeys ( ) ; var self = this ; this . getDatas ( dataSource , new Date ( domains [ 0 ] ) , this . getSubDomain ( domains [ domains . length - 1 ] ) . pop ( ) , function ( ) { self . fill ( ) ; self . afterUpdate ( ) ; } , afterLoad , updateMode ) ; }
Update the calendar with new data

@param  object|string		dataSource		The calendar's datasource, same type as this.options.data
@param  boolean|function		afterLoad		Whether to execute afterLoad() on the data. Pass directly a function
if you don't want to use the afterLoad() callback
Update the calendar with new data