diff --git a/dist/angular-fusioncharts.js b/dist/angular-fusioncharts.js index 399b90e..fd5c3c0 100644 --- a/dist/angular-fusioncharts.js +++ b/dist/angular-fusioncharts.js @@ -45,8 +45,7 @@ map: '@', markers: '@', initialized: '&', - datasourceDt: '=datasourceDt', - datasource: '=datasource' + datasourceDt: '=datasourceDt' }, fcEvents = [ 'beforelinkeditemopen', @@ -220,17 +219,6 @@ }); } - if (scope.datasourceDt) { - scope.$watch( - 'datasourceDt.data', - function(newData, oldData) { - if (newData !== oldData) updateData(newData, 'data'); - }, - false - ); - createWatchersForAttrs(scope.datasourceDt); - } - var observeConf = { // non-data componenet observers NDCObserver: { @@ -718,43 +706,12 @@ } } - if (chartConfigObject.dataFormat === 'json') { - if (scope.datasource) { - attrs.datasource = scope.datasource; - chartConfigObject.dataSource = scope.datasource; - dataStringStore.dataSource = scope.datasource; - - scope.$watch( - 'datasource', - function(newData, oldData) { - if (newData !== oldData) { - chartConfigObject.dataSource = scope.datasource; - dataStringStore.dataSource = scope.datasource; - setChartData(); - if (chartConfigObject.dataFormat === 'json') { - setChartData(); - } else { - if (chartConfigObject.dataFormat === 'xml') { - chart.setXMLData(newData); - } else if (chartConfigObject.dataFormat === 'jsonurl') { - chart.setJSONUrl(newData); - } else if (chartConfigObject.dataFormat === 'xmlurl') { - chart.setXMLUrl(newData); - } - } - } - }, - true - ); - } - } else { - if (attrs.datasource) { - chartConfigObject.dataSource = - chartConfigObject.dataFormat === 'json' - ? JSON.parse(attrs.datasource) - : attrs.datasource; - dataStringStore.dataSource = attrs.datasource; - } + if (attrs.datasource) { + chartConfigObject.dataSource = + chartConfigObject.dataFormat === 'json' + ? JSON.parse(attrs.datasource) + : attrs.datasource; + dataStringStore.dataSource = attrs.datasource; } for (observableAttr in observeConf.DCObserver) { @@ -786,6 +743,44 @@ createFCChart(); + if (attrs.type.toLowerCase() === 'timeseries' && scope.datasourceDt) { + scope.$watch( + 'datasourceDt.data', + function(newData, oldData) { + if (newData !== oldData) updateData(newData, 'data'); + }, + false + ); + createWatchersForAttrs(scope.datasourceDt); + } else if (scope.datasourceDt) { + attrs.datasourceDt = scope.datasourceDt; + chartConfigObject.dataSource = scope.datasourceDt; + dataStringStore.dataSource = scope.datasourceDt; + setChartData(); + scope.$watch( + 'datasourceDt', + function(newData, oldData) { + if (newData !== oldData) { + chartConfigObject.dataSource = scope.datasourceDt; + dataStringStore.dataSource = scope.datasourceDt; + setChartData(); + if (chartConfigObject.dataFormat === 'json') { + setChartData(); + } else { + if (chartConfigObject.dataFormat === 'xml') { + chart.setXMLData(newData); + } else if (chartConfigObject.dataFormat === 'jsonurl') { + chart.setJSONUrl(newData); + } else if (chartConfigObject.dataFormat === 'xmlurl') { + chart.setXMLUrl(newData); + } + } + } + }, + true + ); + } + scope.$on('$destroy', function() { // on destroy free used resources to avoid memory leaks if (chart && chart.dispose) { diff --git a/dist/angular-fusioncharts.min.js b/dist/angular-fusioncharts.min.js index 9cba1f7..4243b9b 100644 --- a/dist/angular-fusioncharts.min.js +++ b/dist/angular-fusioncharts.min.js @@ -1,3 +1,3 @@ /*! angularjs-fusioncharts - v5.0.0*/ -!function(){var a,b,c=angular.module("ng-fusioncharts",[]),d={width:"@",height:"@",data:"@",dataset:"@",categories:"@",chart:"@",linkeddata:"@",trendlines:"@",vtrendlines:"@",annotations:"@",colorrange:"@",lineset:"@",axis:"@",connectors:"@",pointers:"@",value:"@",processes:"@",tasks:"@",rows:"@",columns:"@",map:"@",markers:"@",initialized:"&",datasourceDt:"=datasourceDt",datasource:"=datasource"},e=["beforelinkeditemopen","linkeditemopened","beforelinkeditemclose","linkeditemclosed","printreadystatechange","dataloadrequestcompleted","dataloaderror","dataloadcancelled","dataloadrequestcancelled","dataupdated","dataupdatecancelled","dataloadrequested","beforedataupdate","realtimeupdatecomplete","chartcleared","slicingend","slicingstart","entityrollout","entityrollover","entityclick","connectorrollover","connectorrollout","connectorclick","markerrollover","markerrollout","markerclick","pagenavigated","rotationend","rotationstart","centerlabelrollover","centerlabelrollout","centerlabelclick","centerlabelchanged","chartclick","chartmousemove","chartrollover","chartrollout","backgroundloaded","backgroundloaderror","legenditemclicked","legenditemrollover","legenditemrollout","logorollover","logorollout","logoclick","logoloaded","logoloaderror","beforeexport","exported","exportcancelled","beforeprint","printcomplete","printcancelled","datalabelclick","datalabelrollover","datalabelrollout","scrollstart","scrollend","onscroll","zoomreset","zoomedout","zoomedin","zoomed","zoommodechanged","pinned","datarestored","beforedatasubmit","datasubmiterror","datasubmitted","datasubmitcancelled","chartupdated","nodeadded","nodeupdated","nodedeleted","connectoradded","connectorupdated","connectordeleted","labeladded","labeldeleted","selectionremoved","selectionstart","selectionend","labelclick","labelrollover","labelrollout","labeldragstart","labeldragend","dataplotdragstart","dataplotdragend","processclick","processrollover","processrollout","categoryclick","categoryrollover","categoryrollout","milestoneclick","milestonerollover","milestonerollout","charttypechanged","overlaybuttonclick","loaded","rendered","drawcomplete","rendercomplete","datainvalid","dataxmlinvalid","dataloaded","nodatatodisplay","legendpointerdragstart","legendpointerdragstop","legendrangeupdated","alertcomplete","realtimeupdateerror","dataplotrollover","dataplotrollout","dataplotclick","linkclicked","beforerender","rendercancelled","beforeresize","resized","resizecancelled","beforedispose","disposed","disposecancelled","linkedchartinvoked","beforedrilldown","drilldown","beforedrillup","drillup","drilldowncancelled","drillupcancelled"],f=e.length;for(a=0;a
+
res.json(); var dataFetch = fetch( - 'https://raw.githubusercontent.com/fusioncharts/dev_centre_docs/fusiontime-beta-release/charts-resources/fusiontime/online-sales-single-series/data.json' + 'https://s3.eu-central-1.amazonaws.com/fusion.store/ft/data/line-chart-with-time-axis-data.json' ).then(jsonify); var schemaFetch = fetch( - 'https://raw.githubusercontent.com/fusioncharts/dev_centre_docs/fusiontime-beta-release/charts-resources/fusiontime/online-sales-single-series/schema.json' + 'https://s3.eu-central-1.amazonaws.com/fusion.store/ft/schema/line-chart-with-time-axis-schema.json' ).then(jsonify); var app = angular.module('myApp', ['ng-fusioncharts']); app.controller('MyController', function($scope) { $scope.timeSeriesDS = { - caption: { text: 'Online Sales of a SuperStore in the US' }, data: null, + caption: { + text: 'Sales Analysis' + }, + subcaption: { + text: 'Grocery' + }, yAxis: [ { - plot: [ - { - value: 'Sales ($)' - } - ] + plot: { + value: 'Grocery Sales Value', + type: 'line' + }, + format: { + prefix: '$' + }, + title: 'Sale Value' } ] }; @@ -47,6 +55,7 @@ app.controller('MyController', function($scope) { $scope.update = function() { $scope.timeSeriesDS.caption.text = 'Something Else'; $scope.columnDS.chart.caption = 'Something Else'; + $scope.columnDS.data[1].value = '340'; }; Promise.all([dataFetch, schemaFetch]).then(res => { diff --git a/src/angular-fusioncharts.js b/src/angular-fusioncharts.js index 399b90e..fd5c3c0 100644 --- a/src/angular-fusioncharts.js +++ b/src/angular-fusioncharts.js @@ -45,8 +45,7 @@ map: '@', markers: '@', initialized: '&', - datasourceDt: '=datasourceDt', - datasource: '=datasource' + datasourceDt: '=datasourceDt' }, fcEvents = [ 'beforelinkeditemopen', @@ -220,17 +219,6 @@ }); } - if (scope.datasourceDt) { - scope.$watch( - 'datasourceDt.data', - function(newData, oldData) { - if (newData !== oldData) updateData(newData, 'data'); - }, - false - ); - createWatchersForAttrs(scope.datasourceDt); - } - var observeConf = { // non-data componenet observers NDCObserver: { @@ -718,43 +706,12 @@ } } - if (chartConfigObject.dataFormat === 'json') { - if (scope.datasource) { - attrs.datasource = scope.datasource; - chartConfigObject.dataSource = scope.datasource; - dataStringStore.dataSource = scope.datasource; - - scope.$watch( - 'datasource', - function(newData, oldData) { - if (newData !== oldData) { - chartConfigObject.dataSource = scope.datasource; - dataStringStore.dataSource = scope.datasource; - setChartData(); - if (chartConfigObject.dataFormat === 'json') { - setChartData(); - } else { - if (chartConfigObject.dataFormat === 'xml') { - chart.setXMLData(newData); - } else if (chartConfigObject.dataFormat === 'jsonurl') { - chart.setJSONUrl(newData); - } else if (chartConfigObject.dataFormat === 'xmlurl') { - chart.setXMLUrl(newData); - } - } - } - }, - true - ); - } - } else { - if (attrs.datasource) { - chartConfigObject.dataSource = - chartConfigObject.dataFormat === 'json' - ? JSON.parse(attrs.datasource) - : attrs.datasource; - dataStringStore.dataSource = attrs.datasource; - } + if (attrs.datasource) { + chartConfigObject.dataSource = + chartConfigObject.dataFormat === 'json' + ? JSON.parse(attrs.datasource) + : attrs.datasource; + dataStringStore.dataSource = attrs.datasource; } for (observableAttr in observeConf.DCObserver) { @@ -786,6 +743,44 @@ createFCChart(); + if (attrs.type.toLowerCase() === 'timeseries' && scope.datasourceDt) { + scope.$watch( + 'datasourceDt.data', + function(newData, oldData) { + if (newData !== oldData) updateData(newData, 'data'); + }, + false + ); + createWatchersForAttrs(scope.datasourceDt); + } else if (scope.datasourceDt) { + attrs.datasourceDt = scope.datasourceDt; + chartConfigObject.dataSource = scope.datasourceDt; + dataStringStore.dataSource = scope.datasourceDt; + setChartData(); + scope.$watch( + 'datasourceDt', + function(newData, oldData) { + if (newData !== oldData) { + chartConfigObject.dataSource = scope.datasourceDt; + dataStringStore.dataSource = scope.datasourceDt; + setChartData(); + if (chartConfigObject.dataFormat === 'json') { + setChartData(); + } else { + if (chartConfigObject.dataFormat === 'xml') { + chart.setXMLData(newData); + } else if (chartConfigObject.dataFormat === 'jsonurl') { + chart.setJSONUrl(newData); + } else if (chartConfigObject.dataFormat === 'xmlurl') { + chart.setXMLUrl(newData); + } + } + } + }, + true + ); + } + scope.$on('$destroy', function() { // on destroy free used resources to avoid memory leaks if (chart && chart.dispose) {