backbone-fusioncharts
Version:
Simple and Lightweight Backbone wrapper for FusionCharts JavaScript Charting Library
1 lines • 7.03 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("backbone")):"function"==typeof define&&define.amd?define(["backbone"],t):"object"==typeof exports?exports.BackboneFusionCharts=t(require("backbone")):e.BackboneFusionCharts=t(e.Backbone)}(window,function(e){return function(e){var t={};function a(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,a),r.l=!0,r.exports}return a.m=e,a.c=t,a.d=function(e,t,n){a.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})},a.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=4)}([function(t,a){t.exports=e},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function r(e){return null!==e&&"object"===(void 0===e?"undefined":n(e))}t.isObject=r,t.isCallable=function(e){return"function"==typeof e},t.isSameObjectContent=function e(t,a){if(Object.keys(t).length!==Object.keys(a).length)return!1;var n=Object.keys(t);for(var s=0;s<n.length;s+=1){var i=n[s];if(r(t[i])&&r(a[i])){if(!e(t[i],a[i]))return!1}else if(t[i]!==a[i])return!1}return!0},t.isUndefined=function(e){return void 0===e},t.deepCopyOf=function(e){return JSON.parse(JSON.stringify(e))}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=["renderAt","type","id","width","height","dataFormat","dataSource","events","link","showDataLoadingMessage","showChartLoadingMessage","baseChartMessageFont","baseChartMessageFontSize","baseChartMessageColor","dataLoadStartMessage","dataLoadErrorMessage","dataInvalidMessage","dataEmptyMessage","typeNotSupportedMessage","loadMessage","renderErrorMessage","containerBackgroundColor","containerBackgroundOpacity","containerClassName","baseChartMessageImageHAlign","baseChartMessageImageVAlign","baseChartMessageImageAlpha","baseChartMessageImageScale","typeNotSupportedMessageImageHAalign","typeNotSupportedMessageImageVAlign","typeNotSupportedMessageImageAlpha","typeNotSupportedMessageImageScale","dataLoadErrorMessageImageHAlign","dataLoadErrorMessageImageVAlign","dataLoadErrorMessageImageAlpha","dataLoadErrorMessageImageScale","dataLoadStartMessageImageHAlign","dataLoadStartMessageImageVAlign","dataLoadStartMessageImageAlpha","dataLoadStartMessageImageScale","dataInvalidMessageImageHAlign","dataInvalidMessageImageVAlign","dataInvalidMessageImageAlpha","dataInvalidMessageImageScale","dataEmptyMessageImageHAlign","dataEmptyMessageImageVAlign","dataEmptyMessageImageAlpha","dataEmptyMessageImageScale","renderErrorMessageImageHAlign","renderErrorMessageImageVAlign","renderErrorMessageImageAlpha","renderErrorMessageImageScale","loadMessageImageHAlign","loadMessageImageVAlign","loadMessageImageAlpha","loadMessageImageScale"],e.exports=t.default},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=i(a(0)),r=i(a(2)),s=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}(a(1));function i(e){return e&&e.__esModule?e:{default:e}}t.default=n.default.View.extend({initialize:function(){this.model.bind("change",this.onChange.bind(this)),this.props=this.model.toJSON(),this.render()},onChange:function(e){var t=this.resolveChartOptions(e.toJSON()),a=this.oldOptions,n=["width","height","type","dataFormat","dataSource","events"];this.checkAndUpdateChartRenderAt(t,a),this.checkAndUpdateChartDimensions(t,a),this.checkAndUpdateChartType(t,a),this.checkAndUpdateChartData(t,a),this.checkAndUpdateEvents(t,a),this.checkAndUpdateRestOptions(r.default.filter(function(e){return-1===n.indexOf(e)}),t,a),this.oldOptions=t},checkAndUpdateChartRenderAt:function(e,t){var a=e.renderAt,n=t.renderAt;String(a)!==String(n)&&(this.chart.dispose(),this.props.renderAt=a,this.render())},checkAndUpdateChartDimensions:function(e,t){var a=e.width,n=e.height,r=t.width,i=t.height;String(a)===String(r)&&String(n)===String(i)||(s.isUndefined(a)||s.isUndefined(n)?(s.isUndefined(a)||this.chart.resizeTo({w:a}),s.isUndefined(n)||this.chart.resizeTo({h:n})):this.chart.resizeTo(a,n))},checkAndUpdateChartType:function(e,t){var a=e.type,n=t.type;String(a).toLowerCase()!==String(n).toLowerCase()&&(s.isUndefined(a)||this.chart.chartType(String(a).toLowerCase()))},checkAndUpdateChartData:function(e,t){var a=e.dataFormat,n=e.dataSource,r=t.dataFormat,i=t.dataSource;String(a).toLowerCase()!==String(r).toLowerCase()?s.isUndefined(a)||s.isUndefined(n)||(this.chart.setChartData(n,String(a).toLowerCase()),this.chart.render()):this.isSameChartData(n,i)||s.isUndefined(n)||this.chart.setChartData(n,a?String(a).toLowerCase():"json")},isSameChartData:function(e,t){return s.isObject(e)&&s.isObject(t)?s.isSameObjectContent(e,t):e===t},checkAndUpdateEvents:function(e,t){var a=this,n=e.events,r=t.events,i=void 0,o=void 0;this.detectChartEventsChange(n,r)&&(s.isUndefined(n)||(i=Object.assign({},n),o=s.isUndefined(r)?{}:Object.assign({},r),Object.keys(o).forEach(function(e){o[e]===i[e]?i[e]=void 0:a.chart.removeEventListener(e,o[e])}),Object.keys(i).forEach(function(e){i[e]&&a.chart.addEventListener(e,i[e])})))},detectChartEventsChange:function(e,t){return s.isObject(e)&&s.isObject(t)?!this.isSameChartEvents(e,t):!(e===t)},isSameChartEvents:function(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var a=Object.keys(e),n=0;n<a.length;++n){var r=a[n];if(e[r]!==t[r])return!1}return!0},checkAndUpdateRestOptions:function(e,t,a){var n=this,r=!1;e.forEach(function(e){var i=t[e],o=a[e];n.isSameOptionValue(i,o)||s.isUndefined(i)||n.chart.options&&n.chart.options.hasOwnProperty(e)&&(n.chart.options[e]=i,r=!0)}),r&&this.chart.render()},isSameOptionValue:function(e,t){return s.isObject(e)&&s.isObject(t)?s.isSameObjectContent(e,t):String(e)===String(t)},resolveChartOptions:function(e){var t=e.chartConfig?e.chartConfig:{},a=r.default.reduce(function(t,a){return t[a]=e[a],t},{});return Object.assign(a,t),s.isObject(a.dataSource)&&(a.dataSource=s.deepCopyOf(a.dataSource)),s.isObject(a.link)&&(a.link=s.deepCopyOf(a.link)),s.isObject(a.events)&&(a.events=Object.assign({},a.events)),a},render:function(){var e=this.resolveChartOptions(this.props);return this.chart=new FusionCharts(e),this.chart.render(),this.oldOptions=e,this}}),e.exports=t.default},function(e,t,a){"use strict";var n=s(a(0)),r=s(a(3));function s(e){return e&&e.__esModule?e:{default:e}}e.exports=function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.model=new n.default.Model(t),this.view=new r.default({model:this.model})}}])});