UNPKG

react-fusioncharts

Version:

Simple and Lightweight React component for FusionCharts JavaScript Charting Library

1 lines 10.5 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define("ReactFC",["react"],t):"object"==typeof exports?exports.ReactFC=t(require("react")):e.ReactFC=t(e.React)}(self,e=>(()=>{var t={987:(e,t,r)=>{e.exports=r(505).default},505:(e,t,r)=>{"use strict";r.d(t,{default:()=>I});var a=r(442),n=r.n(a);const o={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let i;const s=new Uint8Array(16),c=[];for(let e=0;e<256;++e)c.push((e+256).toString(16).slice(1));const u=function(e,t,r){if(o.randomUUID&&!t&&!e)return o.randomUUID();const a=(e=e||{}).random??e.rng?.()??function(){if(!i){if("undefined"==typeof crypto||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");i=crypto.getRandomValues.bind(crypto)}return i(s)}();if(a.length<16)throw new Error("Random bytes length must be >= 16");if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t){if((r=r||0)<0||r+16>t.length)throw new RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=a[e];return t}return function(e,t=0){return(c[e[t+0]]+c[e[t+1]]+c[e[t+2]]+c[e[t+3]]+"-"+c[e[t+4]]+c[e[t+5]]+"-"+c[e[t+6]]+c[e[t+7]]+"-"+c[e[t+8]]+c[e[t+9]]+"-"+c[e[t+10]]+c[e[t+11]]+c[e[t+12]]+c[e[t+13]]+c[e[t+14]]+c[e[t+15]]).toLowerCase()}(a)};function d(e){return d="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},d(e)}function f(e){return null!==e&&"object"===d(e)}function p(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var r=Object.keys(e),a=0;a<r.length;a+=1){var n=r[a];if(f(e[n])&&f(t[n])){if(!p(e[n],t[n]))return!1}else if(e[n]!==t[n])return!1}return!0}function h(e){return void 0===e}function l(e){return JSON.parse(JSON.stringify(e))}function g(e){return!!(e&&e.data&&e.data._dataStore)}function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"clone",r=d(e);if("string"===r||"number"===r||"function"===r||"boolean"===r)return e;if(null==e)return e;if(Array.isArray(e)){for(var a=[],n=0;n<e.length;n++)a.push(this.cloneDataSource(e[n]));return a}if("object"===d(e)){var o={};for(var i in e)"data"!==i?o[i]=this.cloneDataSource(e[i]):e[i]._dataStore&&"clone"===t?o[i]=e[i]:e[i]._dataStore&&"diff"===t?o[i]="-":o[i]=this.cloneDataSource(e[i]);return o}}const m=["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"];function b(e){return b="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},b(e)}function v(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,S(a.key),a)}}function S(e){var t=function(e){if("object"!=b(e)||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,"string");if("object"!=b(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==b(t)?t:t+""}function O(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(O=function(){return!!e})()}function C(e){return C=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},C(e)}function j(e,t){return j=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},j(e,t)}const I=function(e){function t(e){var r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),(r=function(e,t,r){return t=C(t),function(e,t){if(t&&("object"==b(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(e,O()?Reflect.construct(t,r||[],C(e).constructor):t.apply(e,r))}(this,t,[e])).containerRef=n().createRef(),r.containerId=u(),r.oldOptions=null,r.FusionCharts=e.fcLibrary||t.fusionChartsCore||window.FusionCharts,r}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&j(e,t)}(t,e),r=t,o=[{key:"fcRoot",value:function(e){for(var r=arguments.length,a=new Array(r>1?r-1:0),n=1;n<r;n++)a[n-1]=arguments[n];a.forEach(function(t){t.getName&&t.getType||t.name&&t.type?e.addDep(t):t(e)}),t.fusionChartsCore=e}}],(a=[{key:"componentDidMount",value:function(){this.renderChart()}},{key:"componentDidUpdate",value:function(e){e!==this.props&&this.detectChanges(this.props)}},{key:"componentWillUnmount",value:function(){this.chartObj.dispose()}},{key:"detectChanges",value:function(e){var t=this.resolveChartOptions(e),r=this.oldOptions,a=["width","height","type","dataFormat","dataSource","events"];this.checkAndUpdateChartDimensions(t,r),this.checkAndUpdateChartType(t,r),this.checkAndUpdateChartData(t,r),this.checkAndUpdateEvents(t,r),this.checkAndUpdateRestOptions(m.filter(function(e){return-1===a.indexOf(e)}),t,r),this.oldOptions=t}},{key:"checkAndUpdateChartDimensions",value:function(e,t){var r=e.width,a=e.height,n=t.width,o=t.height;String(r)===String(n)&&String(a)===String(o)||(h(r)||h(a)?(h(r)||this.chartObj.resizeTo({w:r}),h(a)||this.chartObj.resizeTo({h:a})):this.chartObj.resizeTo(r,a))}},{key:"checkAndUpdateChartType",value:function(e,t){var r=e.type,a=t.type;String(r).toLowerCase()!==String(a).toLowerCase()&&(h(r)||this.chartObj.chartType(String(r).toLowerCase()))}},{key:"checkAndUpdateChartData",value:function(e,t){var r=e.dataFormat,a=e.dataSource,n=t.dataFormat,o=t.dataSource;if(String(r).toLowerCase()!==String(n).toLowerCase()&&!h(r)&&!h(a))return this.chartObj.setChartData(a,String(r).toLowerCase()),void this.chartObj.render();this.isSameChartData(a,o)||h(a)||this.chartObj.setChartData(a,r?String(r).toLowerCase():"json")}},{key:"isSameChartData",value:function(e,t){return!(g(e)&&!g(t)||!g(e)&&g(t)||g(e)&&g(t)&&e.data!==t.data||JSON.stringify(y(t,"diff"))!==JSON.stringify(y(e,"diff")))}},{key:"checkAndUpdateEvents",value:function(e,t){var r,a,n=this,o=e.events,i=t.events;this.detectChartEventsChange(o,i)&&(h(o)||(r=Object.assign({},o),a=h(i)?{}:Object.assign({},i),Object.keys(a).forEach(function(e){a[e]===r[e]?r[e]=void 0:n.chartObj.removeEventListener(e,a[e])}),Object.keys(r).forEach(function(e){r[e]&&n.chartObj.addEventListener(e,r[e])})))}},{key:"detectChartEventsChange",value:function(e,t){return f(e)&&f(t)?!this.isSameChartEvents(e,t):!(e===t)}},{key:"isSameChartEvents",value:function(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var r=Object.keys(e),a=0;a<r.length;++a){var n=r[a];if(e[n]!==t[n])return!1}return!0}},{key:"checkAndUpdateRestOptions",value:function(e,t,r){var a=this,n=!1;e.forEach(function(e){var o=t[e],i=r[e];a.isSameOptionValue(o,i)||h(o)||a.chartObj.options&&a.chartObj.options.hasOwnProperty(e)&&(a.chartObj.options[e]=o,n=!0)}),n&&this.chartObj.render()}},{key:"isSameOptionValue",value:function(e,t){return f(e)&&f(t)?p(e,t):String(e)===String(t)}},{key:"renderChart",value:function(){var e=this,t=this.resolveChartOptions(this.props),r={};this.containerRef.current&&this.props.renderInShadowDom?t.renderAt=this.containerRef.current:t.renderAt=this.containerId,Object.keys(this.props).forEach(function(t){if(t.match(/^fcEvent-.*/i)&&"function"==typeof e.props[t]){var a=t.replace(/^fcEvent-/i,"");r[a]=e.props[t]}}),Object.keys(r).length>0&&(void 0===t.events?t.events=r:t.events=Object.assign(t.events,r)),this.chartObj=new this.FusionCharts(t),this.chartObj.render(),this.oldOptions=t,this.props.onRender&&"function"==typeof this.props.onRender&&this.props.onRender(this.chartObj)}},{key:"resolveChartOptions",value:function(e){var t=e.chartConfig?e.chartConfig:{},r=m.reduce(function(t,r){return t[r]=e[r],t},{});return Object.assign(r,t),f(r.dataSource)&&!g(r.dataSource)?r.dataSource=l(r.dataSource):f(r.dataSource)&&g(r.dataSource)&&(r.dataSource=y(r.dataSource,"clone")),f(r.link)&&(r.link=l(r.link)),f(r.events)&&(r.events=Object.assign({},r.events)),r}},{key:"render",value:function(){return n().createElement("div",{ref:this.containerRef,className:this.props.className,id:this.containerId})}}])&&v(r.prototype,a),o&&v(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r;var r,a,o}(n().Component)},442:t=>{"use strict";t.exports=e}},r={};function a(e){var n=r[e];if(void 0!==n)return n.exports;var o=r[e]={exports:{}};return t[e](o,o.exports,a),o.exports}return a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a(987)})());