/*!@license * Infragistics.Web.ClientUI FunnelChart 19.1.20191.172 * * Copyright (c) 2011-2019 Infragistics Inc. * * http://www.infragistics.com/ * * Depends: * jquery.js * jquery-ui.js * infragistics.util.js * infragistics.util.jquery.js * infragistics.dv_jquerydom.js * infragistics.ui.widget.js */ (function(factory){if(typeof define==="function"&&define.amd){define(["jquery","jquery-ui","./infragistics.util","./infragistics.util.jquery","./infragistics.ui.widget","./infragistics.dv_jquerydom","./infragistics.templating"],factory)}else{factory(jQuery)}})(function($){$.widget("ui.igBaseChart",$.ui.igWidget,{css:{tooltip:"ui-widget-content ui-corner-all",unsupportedBrowserClass:"ui-html5-non-html5-supported-message ui-helper-clearfix ui-html5-non-html5"},events:{dataBinding:null,dataBound:null,updateTooltip:null,hideTooltip:null},options:{width:null,height:null,tooltipTemplate:null,maxRecCount:0,dataSource:null,dataSourceType:null,dataSourceUrl:null,responseTotalRecCountKey:null,responseDataKey:null},_create:function(){var key,v,size,chart,i=-1,self=this,elem=self.element,style=elem[0].style,o=self.options;self._oldState={style:{position:style.position,width:style.width,height:style.height},elems:elem.find("*")};if(!$.ig.util._isCanvasSupported()){$.ig.util._renderUnsupportedBrowser(this);return}chart=self._createChart();self.dataBind();while(i++<1){key=i===0?"width":"height";if(o[key]){size=key}else{v=elem[0].style[key];if(v&&v.indexOf("%")>0){self._setSize(chart,size=key,v)}}}if(!size){self._setSize(chart,"width")}this._beforeInitialOptions(chart,elem);this._setInitialOptions(chart);if(self.css.chart){elem.addClass(self.css.chart)}self._chart=chart;this._provideContainer(chart,elem);self._dataChange()},_beforeInitialOptions:function(){},_provideContainer:function(chart,elem){var elemWrapper=new $.ig.JQueryDomWrapper(elem[0],elem);var renderer=new $.ig.JQueryDomRenderer(elemWrapper,$.proxy(this._getLocaleValue,this));chart.provideContainer(renderer)},_setInitialOptions:function(chart){var o=this.options,self=this,v;for(var key in o){if(o.hasOwnProperty(key)){v=o[key];if(v!==null){self._set_option(chart,key,v)}}}},_fireTooltip:function(text,item,x,y){var arg,t=this._ty;if(!text){t=this._tte||t;if(t&&t.css("display")!=="none"&&this._trigger("hideTooltip",null,arg={owner:this,element:t,item:this._tti})){t=arg.element||t;t.css("display","none")}return}if(!t){t=this._ty=$("
").addClass(this.css.tooltip).appendTo(this.element)}text=$.ig.tmpl?$.ig.tmpl(text,item):text;x=this._trigger("updateTooltip",null,arg={owner:this,element:t,text:text,item:item,x:x,y:y});this._tte=t=arg.element||t;this._tti=arg.item;if(!x){t.css("display","none")}else{t.css({display:"block",left:arg.x+"px",top:arg.y+"px"});if(arg.text){t.html(arg.text)}}},findIndexOfItem:function(item){var ds=item?this.getData():null,i=ds?ds.length:0;while(i-- >0){if(item===ds[i]){break}}return i},getDataItem:function(index){var ds=this.getData();return ds&&ds.length>index&&index>=0?ds[index]:null},getData:function(){return this._chart?this._chart.itemsSource():null},addItem:function(item){if(this._dataSource){this._dataEvt(1,true);this._dataSource.addRow(null,item,true)}return this},insertItem:function(item,index){if(this._dataSource){this._dataEvt(2,true);this._dataSource.insertRow(null,item,index,true)}return this},removeItem:function(index){if(this._dataSource){this._dataEvt(-1,true);this._dataSource.deleteRow(index,true)}return this},setItem:function(index,item){if(this._dataSource){this._dataEvt(0,true);this._dataSource.updateRow(index,item,true)}return this},notifySetItem:function(dataSource,index,newItem,oldItem){if(this._chart){this._chart.notifySetItem(dataSource,index,oldItem,newItem);this._dataEvt(0)}return this},notifyClearItems:function(dataSource){if(this._chart){this._chart.notifyClearItems(dataSource);this._dataEvt(-1)}return this},notifyInsertItem:function(dataSource,index,newItem){if(this._chart){this._chart.notifyInsertItem(dataSource,index,newItem);this._dataEvt(2)}return this},notifyRemoveItem:function(dataSource,index,oldItem){if(this._chart){this._chart.notifyRemoveItem(dataSource,index,oldItem);this._dataEvt(-1)}return this},_dataEvt:function(){},_itemAdded:function(item,dataSource,dataSourceOwnerName){var owner=this._getDataSourceOwner(dataSourceOwnerName);if(owner){owner.notifyInsertItem(dataSource,dataSource.dataView().length-1,item.row);this._dataEvt(1)}},_itemInserted:function(item,dataSource,dataSourceOwnerName){var owner=this._getDataSourceOwner(dataSourceOwnerName);if(owner){owner.notifyInsertItem(dataSource,item.rowIndex,item.row);this._dataEvt(2)}},_itemUpdated:function(item,dataSource,dataSourceOwnerName){var owner=this._getDataSourceOwner(dataSourceOwnerName);if(owner){owner.notifySetItem(dataSource,item.rowIndex,item.oldRow,item.newRow);this._dataEvt(0)}},_itemRemoved:function(item,dataSource,dataSourceOwnerName){var owner=this._getDataSourceOwner(dataSourceOwnerName);if(owner){owner.notifyRemoveItem(dataSource,item.rowIndex,item.row);this._dataEvt(-1)}},_getValueKeyName:function(){return null},_getRemoteDataKeys:function(){return null},_getNotifyResizeName:function(){return null},_createChart:function(){return null},_set_option:function(chart,key,value){if(!key){return true}if(key.indexOf("dataSource")>=0||key.indexOf("response")>=0){if(this._chart){this.dataBind()}return true}if(key==="width"||key==="height"){this._setSize(chart,key,value);return true}if(key==="maxRecCount"){if(this._chart){this._dataChange()}return true}if(key==="tooltipTemplate"&&chart.toolTip){chart.toolTip(value);return true}if(!chart||!chart[key]||chart[key]()===value){return true}},_setSize:function(chart,key,val){$.ig.util.setSize(this.element,key,val,chart,this._getNotifyResizeName())},_getDataSourceOwner:function(){return this._chart},_dataChange:function(noFire,dataSourceOwnerName){var owner;if(!this._getDataSourceOwner){return}if(dataSourceOwnerName){owner=this._getDataSourceOwner(dataSourceOwnerName);this._dataChangeInternal(owner,noFire)}else{this._dataChangeInternal(this._chart,noFire)}},_dataChangeInternal:function(owner,noFire){var data,len,max=this.options.maxRecCount,ds=this._dataSource,chart=owner;if(!ds||!chart||!chart.itemsSource){return}data=ds.dataView();len=data?data.length:0;if(!len&&!this._dataLen){return}this._dataLen=len;if(len&&max&&max