Socket
Socket
Sign inDemoInstall

react-chartjs-2

Package Overview
Dependencies
Maintainers
2
Versions
84
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-chartjs-2 - npm Package Compare versions

Comparing version 2.9.0 to 2.10.0

.circleci/config.yml

2

dist/react-chartjs-2.min.js

@@ -1,1 +0,1 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react"),require("chart.js")):"function"==typeof define&&define.amd?define(["exports","react","chart.js"],e):e(t.ReactChartjs2={},t.React,t.Chart)}(this,function(t,e,r){"use strict";function n(t,e){return e={exports:{}},t(e,e.exports),e.exports}function o(t){return function(){return t}}function a(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function i(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function u(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}function c(t){var e=this.__data__=new E(t);this.size=e.size}function s(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new vt;++e<r;)this.add(t[e])}function f(t,e,r,n,o){return t===e||(null==t||null==e||!Zt(t)&&!Zt(e)?t!==t&&e!==e:He(t,e,r,n,f,o))}function p(t,e){if("function"!=typeof t||null!=e&&"function"!=typeof e)throw new TypeError(dr);var r=function(){var n=arguments,o=e?e.apply(this,n):n[0],a=r.cache;if(a.has(o))return a.get(o);var i=t.apply(this,n);return r.cache=a.set(o,i)||a,i};return r.cache=new(p.Cache||vt),r}function h(t){if("string"==typeof t)return t;if(Nt(t))return jr(t,h)+"";if(fr(t))return wr?wr.call(t):"";var e=t+"";return"0"==e&&1/t==-mr?"-0":e}e=e&&e.hasOwnProperty("default")?e.default:e,r=r&&r.hasOwnProperty("default")?r.default:r;var l="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},d=function(){};d.thatReturns=o,d.thatReturnsFalse=o(!1),d.thatReturnsTrue=o(!0),d.thatReturnsNull=o(null),d.thatReturnsThis=function(){return this},d.thatReturnsArgument=function(t){return t};var y=d,v=function(t){},b=function(t,e,r,n,o,a,i,u){if(v(e),!t){var c;if(void 0===e)c=Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var s=[r,n,o,a,i,u],f=0;(c=Error(e.replace(/%s/g,function(){return s[f++]}))).name="Invariant Violation"}throw c.framesToPop=1,c}},_="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",g=function(){function t(t,e,r,n,o,a){a!==_&&b(!1,"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types")}function e(){return t}t.isRequired=t;var r={array:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e};return r.checkPropTypes=y,r.PropTypes=r,r},j=n(function(t){t.exports=g()}),m=function(t,e){return t===e||t!==t&&e!==e},O=function(t,e){for(var r=t.length;r--;)if(m(t[r][0],e))return r;return-1},w=Array.prototype.splice;a.prototype.clear=function(){this.__data__=[],this.size=0},a.prototype.delete=function(t){var e=this.__data__,r=O(e,t);return r>=0&&(r==e.length-1?e.pop():w.call(e,r,1),--this.size,!0)},a.prototype.get=function(t){var e=this.__data__,r=O(e,t);return 0>r?void 0:e[r][1]},a.prototype.has=function(t){return O(this.__data__,t)>-1},a.prototype.set=function(t,e){var r=this.__data__,n=O(r,t);return 0>n?(++this.size,r.push([t,e])):r[n][1]=e,this};var E=a,P="object"==typeof l&&l&&l.Object===Object&&l,A="object"==typeof self&&self&&self.Object===Object&&self,I=P||A||Function("return this")(),C=I.Symbol,D=Object.prototype,z=D.hasOwnProperty,k=D.toString,S=C?C.toStringTag:void 0,T=function(t){var e=z.call(t,S),r=t[S];try{t[S]=void 0;var n=!0}catch(t){}var o=k.call(t);return n&&(e?t[S]=r:delete t[S]),o},x=Object.prototype.toString,R=function(t){return x.call(t)},B="[object Null]",M="[object Undefined]",F=C?C.toStringTag:void 0,L=function(t){return null==t?void 0===t?M:B:F&&F in Object(t)?T(t):R(t)},U=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)},K="[object AsyncFunction]",$="[object Function]",q="[object GeneratorFunction]",W="[object Proxy]",V=function(t){if(!U(t))return!1;var e=L(t);return e==$||e==q||e==K||e==W},N=I["__core-js_shared__"],H=function(){var t=/[^.]+$/.exec(N&&N.keys&&N.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}(),G=function(t){return!!H&&H in t},Y=Function.prototype.toString,J=function(t){if(null!=t){try{return Y.call(t)}catch(t){}try{return t+""}catch(t){}}return""},Q=/[\\^$.*+?()[\]{}|]/g,X=/^\[object .+?Constructor\]$/,Z=Function.prototype,tt=Object.prototype,et=Z.toString,rt=tt.hasOwnProperty,nt=RegExp("^"+et.call(rt).replace(Q,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),ot=function(t){return!(!U(t)||G(t))&&(V(t)?nt:X).test(J(t))},at=function(t,e){return null==t?void 0:t[e]},it=function(t,e){var r=at(t,e);return ot(r)?r:void 0},ut=it(I,"Map"),ct=it(Object,"create"),st="__lodash_hash_undefined__",ft=Object.prototype.hasOwnProperty,pt=Object.prototype.hasOwnProperty,ht="__lodash_hash_undefined__";i.prototype.clear=function(){this.__data__=ct?ct(null):{},this.size=0},i.prototype.delete=function(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e},i.prototype.get=function(t){var e=this.__data__;if(ct){var r=e[t];return r===st?void 0:r}return ft.call(e,t)?e[t]:void 0},i.prototype.has=function(t){var e=this.__data__;return ct?void 0!==e[t]:pt.call(e,t)},i.prototype.set=function(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=ct&&void 0===e?ht:e,this};var lt=i,dt=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t},yt=function(t,e){var r=t.__data__;return dt(e)?r["string"==typeof e?"string":"hash"]:r.map};u.prototype.clear=function(){this.size=0,this.__data__={hash:new lt,map:new(ut||E),string:new lt}},u.prototype.delete=function(t){var e=yt(this,t).delete(t);return this.size-=e?1:0,e},u.prototype.get=function(t){return yt(this,t).get(t)},u.prototype.has=function(t){return yt(this,t).has(t)},u.prototype.set=function(t,e){var r=yt(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this};var vt=u,bt=200;c.prototype.clear=function(){this.__data__=new E,this.size=0},c.prototype.delete=function(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r},c.prototype.get=function(t){return this.__data__.get(t)},c.prototype.has=function(t){return this.__data__.has(t)},c.prototype.set=function(t,e){var r=this.__data__;if(r instanceof E){var n=r.__data__;if(!ut||bt-1>n.length)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new vt(n)}return r.set(t,e),this.size=r.size,this};var _t=c,gt="__lodash_hash_undefined__";s.prototype.add=s.prototype.push=function(t){return this.__data__.set(t,gt),this},s.prototype.has=function(t){return this.__data__.has(t)};var jt=s,mt=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n;)if(e(t[r],r,t))return!0;return!1},Ot=function(t,e){return t.has(e)},wt=1,Et=2,Pt=function(t,e,r,n,o,a){var i=r&wt,u=t.length,c=e.length;if(!(u==c||i&&c>u))return!1;var s=a.get(t);if(s&&a.get(e))return s==e;var f=-1,p=!0,h=r&Et?new jt:void 0;for(a.set(t,e),a.set(e,t);++f<u;){var l=t[f],d=e[f];if(n)var y=i?n(d,l,f,e,t,a):n(l,d,f,t,e,a);if(void 0!==y){if(y)continue;p=!1;break}if(h){if(!mt(e,function(t,e){if(!Ot(h,e)&&(l===t||o(l,t,r,n,a)))return h.push(e)})){p=!1;break}}else if(l!==d&&!o(l,d,r,n,a)){p=!1;break}}return a.delete(t),a.delete(e),p},At=I.Uint8Array,It=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t,n){r[++e]=[n,t]}),r},Ct=function(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r},Dt=1,zt=2,kt="[object Boolean]",St="[object Date]",Tt="[object Error]",xt="[object Map]",Rt="[object Number]",Bt="[object RegExp]",Mt="[object Set]",Ft="[object String]",Lt="[object Symbol]",Ut="[object ArrayBuffer]",Kt="[object DataView]",$t=C?C.prototype:void 0,qt=$t?$t.valueOf:void 0,Wt=function(t,e,r,n,o,a,i){switch(r){case Kt:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case Ut:return!(t.byteLength!=e.byteLength||!a(new At(t),new At(e)));case kt:case St:case Rt:return m(+t,+e);case Tt:return t.name==e.name&&t.message==e.message;case Bt:case Ft:return t==e+"";case xt:var u=It;case Mt:var c=n&Dt;if(u||(u=Ct),t.size!=e.size&&!c)return!1;var s=i.get(t);if(s)return s==e;n|=zt,i.set(t,e);var f=Pt(u(t),u(e),n,o,a,i);return i.delete(t),f;case Lt:if(qt)return qt.call(t)==qt.call(e)}return!1},Vt=function(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t},Nt=Array.isArray,Ht=function(t,e,r){var n=e(t);return Nt(t)?n:Vt(n,r(t))},Gt=function(t,e){for(var r=-1,n=null==t?0:t.length,o=0,a=[];++r<n;){var i=t[r];e(i,r,t)&&(a[o++]=i)}return a},Yt=Object.prototype.propertyIsEnumerable,Jt=Object.getOwnPropertySymbols,Qt=Jt?function(t){return null==t?[]:(t=Object(t),Gt(Jt(t),function(e){return Yt.call(t,e)}))}:function(){return[]},Xt=function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n},Zt=function(t){return null!=t&&"object"==typeof t},te="[object Arguments]",ee=function(t){return Zt(t)&&L(t)==te},re=Object.prototype,ne=re.hasOwnProperty,oe=re.propertyIsEnumerable,ae=ee(function(){return arguments}())?ee:function(t){return Zt(t)&&ne.call(t,"callee")&&!oe.call(t,"callee")},ie=function(){return!1},ue=n(function(t,e){var r=e&&!e.nodeType&&e,n=r&&!0&&t&&!t.nodeType&&t,o=n&&n.exports===r?I.Buffer:void 0,a=(o?o.isBuffer:void 0)||ie;t.exports=a}),ce=9007199254740991,se=/^(?:0|[1-9]\d*)$/,fe=function(t,e){var r=typeof t;return!!(e=null==e?ce:e)&&("number"==r||"symbol"!=r&&se.test(t))&&t>-1&&t%1==0&&e>t},pe=9007199254740991,he=function(t){return"number"==typeof t&&t>-1&&t%1==0&&pe>=t},le={};le["[object Float32Array]"]=le["[object Float64Array]"]=le["[object Int8Array]"]=le["[object Int16Array]"]=le["[object Int32Array]"]=le["[object Uint8Array]"]=le["[object Uint8ClampedArray]"]=le["[object Uint16Array]"]=le["[object Uint32Array]"]=!0,le["[object Arguments]"]=le["[object Array]"]=le["[object ArrayBuffer]"]=le["[object Boolean]"]=le["[object DataView]"]=le["[object Date]"]=le["[object Error]"]=le["[object Function]"]=le["[object Map]"]=le["[object Number]"]=le["[object Object]"]=le["[object RegExp]"]=le["[object Set]"]=le["[object String]"]=le["[object WeakMap]"]=!1;var de=function(t){return function(e){return t(e)}},ye=n(function(t,e){var r=e&&!e.nodeType&&e,n=r&&!0&&t&&!t.nodeType&&t,o=n&&n.exports===r&&P.process,a=function(){try{var t=n&&n.require&&n.require("util").types;return t||o&&o.binding&&o.binding("util")}catch(t){}}();t.exports=a}),ve=ye&&ye.isTypedArray,be=ve?de(ve):function(t){return Zt(t)&&he(t.length)&&!!le[L(t)]},_e=Object.prototype.hasOwnProperty,ge=function(t,e){var r=Nt(t),n=!r&&ae(t),o=!r&&!n&&ue(t),a=!r&&!n&&!o&&be(t),i=r||n||o||a,u=i?Xt(t.length,String):[],c=u.length;for(var s in t)!e&&!_e.call(t,s)||i&&("length"==s||o&&("offset"==s||"parent"==s)||a&&("buffer"==s||"byteLength"==s||"byteOffset"==s)||fe(s,c))||u.push(s);return u},je=Object.prototype,me=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||je)},Oe=function(t,e){return function(r){return t(e(r))}}(Object.keys,Object),we=Object.prototype.hasOwnProperty,Ee=function(t){if(!me(t))return Oe(t);var e=[];for(var r in Object(t))we.call(t,r)&&"constructor"!=r&&e.push(r);return e},Pe=function(t){return null!=t&&he(t.length)&&!V(t)},Ae=function(t){return Pe(t)?ge(t):Ee(t)},Ie=function(t){return Ht(t,Ae,Qt)},Ce=1,De=Object.prototype.hasOwnProperty,ze=function(t,e,r,n,o,a){var i=r&Ce,u=Ie(t),c=u.length;if(c!=Ie(e).length&&!i)return!1;for(var s=c;s--;){var f=u[s];if(!(i?f in e:De.call(e,f)))return!1}var p=a.get(t);if(p&&a.get(e))return p==e;var h=!0;a.set(t,e),a.set(e,t);for(var l=i;++s<c;){var d=t[f=u[s]],y=e[f];if(n)var v=i?n(y,d,f,e,t,a):n(d,y,f,t,e,a);if(!(void 0===v?d===y||o(d,y,r,n,a):v)){h=!1;break}l||(l="constructor"==f)}if(h&&!l){var b=t.constructor,_=e.constructor;b!=_&&"constructor"in t&&"constructor"in e&&!("function"==typeof b&&b instanceof b&&"function"==typeof _&&_ instanceof _)&&(h=!1)}return a.delete(t),a.delete(e),h},ke=it(I,"DataView"),Se=it(I,"Promise"),Te=it(I,"Set"),xe=it(I,"WeakMap"),Re=J(ke),Be=J(ut),Me=J(Se),Fe=J(Te),Le=J(xe),Ue=L;(ke&&"[object DataView]"!=Ue(new ke(new ArrayBuffer(1)))||ut&&"[object Map]"!=Ue(new ut)||Se&&"[object Promise]"!=Ue(Se.resolve())||Te&&"[object Set]"!=Ue(new Te)||xe&&"[object WeakMap]"!=Ue(new xe))&&(Ue=function(t){var e=L(t),r="[object Object]"==e?t.constructor:void 0,n=r?J(r):"";if(n)switch(n){case Re:return"[object DataView]";case Be:return"[object Map]";case Me:return"[object Promise]";case Fe:return"[object Set]";case Le:return"[object WeakMap]"}return e});var Ke=Ue,$e=1,qe="[object Arguments]",We="[object Array]",Ve="[object Object]",Ne=Object.prototype.hasOwnProperty,He=function(t,e,r,n,o,a){var i=Nt(t),u=Nt(e),c=i?We:Ke(t),s=u?We:Ke(e),f=(c=c==qe?Ve:c)==Ve,p=(s=s==qe?Ve:s)==Ve,h=c==s;if(h&&ue(t)){if(!ue(e))return!1;i=!0,f=!1}if(h&&!f)return a||(a=new _t),i||be(t)?Pt(t,e,r,n,o,a):Wt(t,e,c,r,n,o,a);if(!(r&$e)){var l=f&&Ne.call(t,"__wrapped__"),d=p&&Ne.call(e,"__wrapped__");if(l||d){var y=l?t.value():t,v=d?e.value():e;return a||(a=new _t),o(y,v,r,n,a)}}return!!h&&(a||(a=new _t),ze(t,e,r,n,o,a))},Ge=f,Ye=function(t,e){return Ge(t,e)},Je=function(){try{var t=it(Object,"defineProperty");return t({},"",{}),t}catch(t){}}(),Qe=function(t,e,r){"__proto__"==e&&Je?Je(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r},Xe=function(t,e,r,n){for(var o=-1,a=null==t?0:t.length;++o<a;){var i=t[o];e(n,i,r(i),t)}return n},Ze=function(t){return function(e,r,n){for(var o=-1,a=Object(e),i=n(e),u=i.length;u--;){var c=i[t?u:++o];if(!1===r(a[c],c,a))break}return e}}(),tr=function(t,e){return function(r,n){if(null==r)return r;if(!Pe(r))return t(r,n);for(var o=r.length,a=e?o:-1,i=Object(r);(e?a--:++a<o)&&!1!==n(i[a],a,i););return r}}(function(t,e){return t&&Ze(t,e,Ae)}),er=function(t,e,r,n){return tr(t,function(t,o,a){e(n,t,r(t),a)}),n},rr=1,nr=2,or=function(t,e,r,n){var o=r.length,a=o,i=!n;if(null==t)return!a;for(t=Object(t);o--;){var u=r[o];if(i&&u[2]?u[1]!==t[u[0]]:!(u[0]in t))return!1}for(;++o<a;){var c=(u=r[o])[0],s=t[c],f=u[1];if(i&&u[2]){if(void 0===s&&!(c in t))return!1}else{var p=new _t;if(n)var h=n(s,f,c,t,e,p);if(!(void 0===h?Ge(f,s,rr|nr,n,p):h))return!1}}return!0},ar=function(t){return t===t&&!U(t)},ir=function(t){for(var e=Ae(t),r=e.length;r--;){var n=e[r],o=t[n];e[r]=[n,o,ar(o)]}return e},ur=function(t,e){return function(r){return null!=r&&r[t]===e&&(void 0!==e||t in Object(r))}},cr=function(t){var e=ir(t);return 1==e.length&&e[0][2]?ur(e[0][0],e[0][1]):function(r){return r===t||or(r,t,e)}},sr="[object Symbol]",fr=function(t){return"symbol"==typeof t||Zt(t)&&L(t)==sr},pr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,hr=/^\w*$/,lr=function(t,e){if(Nt(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!fr(t))||hr.test(t)||!pr.test(t)||null!=e&&t in Object(e)},dr="Expected a function";p.Cache=vt;var yr=p,vr=500,br=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,_r=/\\(\\)?/g,gr=function(t){var e=yr(t,function(t){return r.size===vr&&r.clear(),t}),r=e.cache;return e}(function(t){var e=[];return 46===t.charCodeAt(0)&&e.push(""),t.replace(br,function(t,r,n,o){e.push(n?o.replace(_r,"$1"):r||t)}),e}),jr=function(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r<n;)o[r]=e(t[r],r,t);return o},mr=1/0,Or=C?C.prototype:void 0,wr=Or?Or.toString:void 0,Er=h,Pr=function(t){return null==t?"":Er(t)},Ar=function(t,e){return Nt(t)?t:lr(t,e)?[t]:gr(Pr(t))},Ir=1/0,Cr=function(t){if("string"==typeof t||fr(t))return t;var e=t+"";return"0"==e&&1/t==-Ir?"-0":e},Dr=function(t,e){for(var r=0,n=(e=Ar(e,t)).length;null!=t&&n>r;)t=t[Cr(e[r++])];return r&&r==n?t:void 0},zr=function(t,e,r){var n=null==t?void 0:Dr(t,e);return void 0===n?r:n},kr=function(t,e){return null!=t&&e in Object(t)},Sr=function(t,e,r){for(var n=-1,o=(e=Ar(e,t)).length,a=!1;++n<o;){var i=Cr(e[n]);if(!(a=null!=t&&r(t,i)))break;t=t[i]}return a||++n!=o?a:!!(o=null==t?0:t.length)&&he(o)&&fe(i,o)&&(Nt(t)||ae(t))},Tr=function(t,e){return null!=t&&Sr(t,e,kr)},xr=1,Rr=2,Br=function(t,e){return lr(t)&&ar(e)?ur(Cr(t),e):function(r){var n=zr(r,t);return void 0===n&&n===e?Tr(r,t):Ge(e,n,xr|Rr)}},Mr=function(t){return t},Fr=function(t){return function(e){return null==e?void 0:e[t]}},Lr=function(t){return function(e){return Dr(e,t)}},Ur=function(t){return lr(t)?Fr(Cr(t)):Lr(t)},Kr=function(t){return"function"==typeof t?t:null==t?Mr:"object"==typeof t?Nt(t)?Br(t[0],t[1]):cr(t):Ur(t)},$r=function(t,e){return function(r,n){var o=Nt(r)?Xe:er,a=e?e():{};return o(r,t,Kr(n,2),a)}}(function(t,e,r){Qe(t,r,e)}),qr=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},Wr=Object.assign||function(t){for(var e=1;arguments.length>e;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},Vr=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)},Nr=function(t,e){var r={};for(var n in t)0>e.indexOf(n)&&Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n]);return r},Hr=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},Gr="undefined"!=typeof process&&process.env&&"production",Yr=function(t){function n(){qr(this,n);var e=Hr(this,t.call(this));return e.handleOnClick=function(t){var r=e.chartInstance,n=e.props,o=n.getDatasetAtEvent,a=n.getElementAtEvent,i=n.getElementsAtEvent,u=n.onElementsClick;o&&o(r.getDatasetAtEvent(t),t),a&&a(r.getElementAtEvent(t),t),i&&i(r.getElementsAtEvent(t),t),u&&u(r.getElementsAtEvent(t),t)},e.ref=function(t){e.element=t},e.chartInstance=void 0,e}return Vr(n,t),n.prototype.componentDidMount=function(){this.renderChart()},n.prototype.componentDidUpdate=function(){if(this.props.redraw)return this.destroyChart(),void this.renderChart();this.updateChart()},n.prototype.shouldComponentUpdate=function(t){var e=this.props,r=e.type,n=e.options,o=e.plugins,a=e.legend,i=e.height,u=e.width;if(!0===t.redraw)return!0;if(i!==t.height||u!==t.width)return!0;if(r!==t.type)return!0;if(!Ye(a,t.legend))return!0;if(!Ye(n,t.options))return!0;var c=this.transformDataProp(t);return!Ye(this.shadowDataProp,c)||!Ye(o,t.plugins)},n.prototype.componentWillUnmount=function(){this.destroyChart()},n.prototype.transformDataProp=function(t){var e=t.data;return"function"==typeof e?e(this.element):e},n.prototype.memoizeDataProps=function(){if(this.props.data){var t=this.transformDataProp(this.props);return this.shadowDataProp=Wr({},t,{datasets:t.datasets&&t.datasets.map(function(t){return Wr({},t)})}),this.saveCurrentDatasets(),t}},n.prototype.checkDatasets=function(t){var e="production"!==Gr&&"prod"!==Gr,r=this.props.datasetKeyProvider!==n.getLabelAsKey,o=t.length>1;if(e&&o&&!r){var a=!1;t.forEach(function(t){t.label||(a=!0)}),a&&console.error('[react-chartjs-2] Warning: Each dataset needs a unique key. By default, the "label" property on each dataset is used. Alternatively, you may provide a "datasetKeyProvider" as a prop that returns a unique key.')}},n.prototype.getCurrentDatasets=function(){return this.chartInstance&&this.chartInstance.config.data&&this.chartInstance.config.data.datasets||[]},n.prototype.saveCurrentDatasets=function(){var t=this;this.datasets=this.datasets||{},this.getCurrentDatasets().forEach(function(e){t.datasets[t.props.datasetKeyProvider(e)]=e})},n.prototype.updateChart=function(){var t=this,e=this.props.options,n=this.memoizeDataProps(this.props);if(this.chartInstance){e&&(this.chartInstance.options=r.helpers.configMerge(this.chartInstance.options,e));var o=this.getCurrentDatasets(),a=n.datasets||[];this.checkDatasets(o);var i=$r(o,this.props.datasetKeyProvider);this.chartInstance.config.data.datasets=a.map(function(e){var r=i[t.props.datasetKeyProvider(e)];if(r&&r.type===e.type&&e.data){r.data.splice(e.data.length),e.data.forEach(function(t,n){r.data[n]=e.data[n]});var n=Nr(e,["data"]);return Wr({},r,n)}return e});var u=Nr(n,["datasets"]);this.chartInstance.config.data=Wr({},this.chartInstance.config.data,u),this.chartInstance.update()}},n.prototype.renderChart=function(){var t=this.props,e=t.options,o=t.legend,a=t.type,i=t.plugins,u=this.element,c=this.memoizeDataProps();void 0===o||Ye(n.defaultProps.legend,o)||(e.legend=o),this.chartInstance=new r(u,{type:a,data:c,options:e,plugins:i})},n.prototype.destroyChart=function(){if(this.chartInstance){this.saveCurrentDatasets();var t=Object.values(this.datasets);this.chartInstance.config.data.datasets=t,this.chartInstance.destroy()}},n.prototype.render=function(){var t=this.props,r=t.height,n=t.width,o=t.id;return e.createElement("canvas",{ref:this.ref,height:r,width:n,id:o,onClick:this.handleOnClick})},n}(e.Component);Yr.getLabelAsKey=function(t){return t.label},Yr.propTypes={data:j.oneOfType([j.object,j.func]).isRequired,getDatasetAtEvent:j.func,getElementAtEvent:j.func,getElementsAtEvent:j.func,height:j.number,legend:j.object,onElementsClick:j.func,options:j.object,plugins:j.arrayOf(j.object),redraw:j.bool,type:function(t,e,n){if(!r.controllers[t[e]])return Error("Invalid chart type `"+t[e]+"` supplied to `"+n+"`.")},width:j.number,datasetKeyProvider:j.func},Yr.defaultProps={legend:{display:!0,position:"bottom"},type:"doughnut",height:150,width:300,redraw:!1,options:{},datasetKeyProvider:Yr.getLabelAsKey};var Jr=function(t){function r(){return qr(this,r),Hr(this,t.apply(this,arguments))}return Vr(r,t),r.prototype.render=function(){var t=this;return e.createElement(Yr,Wr({},this.props,{ref:function(e){return t.chartInstance=e&&e.chartInstance},type:"doughnut"}))},r}(e.Component),Qr=function(t){function r(){return qr(this,r),Hr(this,t.apply(this,arguments))}return Vr(r,t),r.prototype.render=function(){var t=this;return e.createElement(Yr,Wr({},this.props,{ref:function(e){return t.chartInstance=e&&e.chartInstance},type:"pie"}))},r}(e.Component),Xr=function(t){function r(){return qr(this,r),Hr(this,t.apply(this,arguments))}return Vr(r,t),r.prototype.render=function(){var t=this;return e.createElement(Yr,Wr({},this.props,{ref:function(e){return t.chartInstance=e&&e.chartInstance},type:"line"}))},r}(e.Component),Zr=function(t){function r(){return qr(this,r),Hr(this,t.apply(this,arguments))}return Vr(r,t),r.prototype.render=function(){var t=this;return e.createElement(Yr,Wr({},this.props,{ref:function(e){return t.chartInstance=e&&e.chartInstance},type:"bar"}))},r}(e.Component),tn=function(t){function r(){return qr(this,r),Hr(this,t.apply(this,arguments))}return Vr(r,t),r.prototype.render=function(){var t=this;return e.createElement(Yr,Wr({},this.props,{ref:function(e){return t.chartInstance=e&&e.chartInstance},type:"horizontalBar"}))},r}(e.Component),en=function(t){function r(){return qr(this,r),Hr(this,t.apply(this,arguments))}return Vr(r,t),r.prototype.render=function(){var t=this;return e.createElement(Yr,Wr({},this.props,{ref:function(e){return t.chartInstance=e&&e.chartInstance},type:"radar"}))},r}(e.Component),rn=function(t){function r(){return qr(this,r),Hr(this,t.apply(this,arguments))}return Vr(r,t),r.prototype.render=function(){var t=this;return e.createElement(Yr,Wr({},this.props,{ref:function(e){return t.chartInstance=e&&e.chartInstance},type:"polarArea"}))},r}(e.Component),nn=function(t){function r(){return qr(this,r),Hr(this,t.apply(this,arguments))}return Vr(r,t),r.prototype.render=function(){var t=this;return e.createElement(Yr,Wr({},this.props,{ref:function(e){return t.chartInstance=e&&e.chartInstance},type:"bubble"}))},r}(e.Component),on=function(t){function r(){return qr(this,r),Hr(this,t.apply(this,arguments))}return Vr(r,t),r.prototype.render=function(){var t=this;return e.createElement(Yr,Wr({},this.props,{ref:function(e){return t.chartInstance=e&&e.chartInstance},type:"scatter"}))},r}(e.Component),an=r.defaults;t.default=Yr,t.Doughnut=Jr,t.Pie=Qr,t.Line=Xr,t.Bar=Zr,t.HorizontalBar=tn,t.Radar=en,t.Polar=rn,t.Bubble=nn,t.Scatter=on,t.defaults=an,t.Chart=r,Object.defineProperty(t,"__esModule",{value:!0})});
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react"),require("chart.js")):"function"==typeof define&&define.amd?define(["exports","react","chart.js"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).ReactChartjs2={},t.React,t.Chart)}(this,function(t,r,u){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function a(t,e,r){return e&&o(t.prototype,e),r&&o(t,r),t}function i(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function c(){return(c=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t}).apply(this,arguments)}function s(e,t){var r,n=Object.keys(e);return Object.getOwnPropertySymbols&&(r=Object.getOwnPropertySymbols(e),t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)),n}function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?s(Object(r),!0).forEach(function(t){i(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):s(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}function p(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&h(t,e)}function l(t){return(l=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function h(t,e){return(h=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t})(t,e)}function y(t,e){if(null==t)return{};var r,n=function(t,e){if(null==t)return{};for(var r,n={},o=Object.keys(t),a=0;a<o.length;a++)~e.indexOf(r=o[a])||(n[r]=t[r]);return n}(t,e);if(Object.getOwnPropertySymbols)for(var o=Object.getOwnPropertySymbols(t),a=0;a<o.length;a++)~e.indexOf(r=o[a])||Object.prototype.propertyIsEnumerable.call(t,r)&&(n[r]=t[r]);return n}function v(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function d(a){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}();return function(){var t,e,r,n,o=l(a);return e=i?(t=l(this).constructor,Reflect.construct(o,arguments,t)):o.apply(this,arguments),r=this,!(n=e)||"object"!=typeof n&&"function"!=typeof n?v(r):n}}r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r,u=u&&Object.prototype.hasOwnProperty.call(u,"default")?u.default:u;var e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function b(t,e,r){return t(r={path:e,exports:{},require:function(t,e){throw Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}},r.exports),r.exports}var g="function"==typeof Symbol&&Symbol.for,_=g?Symbol.for("react.element"):60103,m=g?Symbol.for("react.portal"):60106,j=g?Symbol.for("react.fragment"):60107,O=g?Symbol.for("react.strict_mode"):60108,w=g?Symbol.for("react.profiler"):60114,P=g?Symbol.for("react.provider"):60109,E=g?Symbol.for("react.context"):60110,S=g?Symbol.for("react.async_mode"):60111,k=g?Symbol.for("react.concurrent_mode"):60111,C=g?Symbol.for("react.forward_ref"):60112,I=g?Symbol.for("react.suspense"):60113,A=g?Symbol.for("react.suspense_list"):60120,D=g?Symbol.for("react.memo"):60115,$=g?Symbol.for("react.lazy"):60116,z=g?Symbol.for("react.block"):60121,x=g?Symbol.for("react.fundamental"):60117,T=g?Symbol.for("react.responder"):60118,R=g?Symbol.for("react.scope"):60119;function M(t){if("object"==typeof t&&null!==t){var e=t.$$typeof;switch(e){case _:switch(t=t.type){case S:case k:case j:case w:case O:case I:return t;default:switch(t=t&&t.$$typeof){case E:case C:case $:case D:case P:return t;default:return e}}case m:return e}}}function F(t){return M(t)===k}var B={AsyncMode:S,ConcurrentMode:k,ContextConsumer:E,ContextProvider:P,Element:_,ForwardRef:C,Fragment:j,Lazy:$,Memo:D,Portal:m,Profiler:w,StrictMode:O,Suspense:I,isAsyncMode:function(t){return F(t)||M(t)===S},isConcurrentMode:F,isContextConsumer:function(t){return M(t)===E},isContextProvider:function(t){return M(t)===P},isElement:function(t){return"object"==typeof t&&null!==t&&t.$$typeof===_},isForwardRef:function(t){return M(t)===C},isFragment:function(t){return M(t)===j},isLazy:function(t){return M(t)===$},isMemo:function(t){return M(t)===D},isPortal:function(t){return M(t)===m},isProfiler:function(t){return M(t)===w},isStrictMode:function(t){return M(t)===O},isSuspense:function(t){return M(t)===I},isValidElementType:function(t){return"string"==typeof t||"function"==typeof t||t===j||t===k||t===w||t===O||t===I||t===A||"object"==typeof t&&null!==t&&(t.$$typeof===$||t.$$typeof===D||t.$$typeof===P||t.$$typeof===E||t.$$typeof===C||t.$$typeof===x||t.$$typeof===T||t.$$typeof===R||t.$$typeof===z)},typeOf:M},L=(b(function(t,e){}),b(function(t){t.exports=B}),Object.getOwnPropertySymbols),q=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable;(function(){try{if(!Object.assign)return;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return;var n={};"abcdefghijklmnopqrst".split("").forEach(function(t){n[t]=t}),Object.keys(Object.assign({},n)).join("")}catch(t){return}})(),Function.call.bind(Object.prototype.hasOwnProperty);function K(){}function W(){}W.resetWarningCache=K;var N=b(function(t){function e(t,e,r,n,o,a){if("SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"!==a){var i=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function r(){return e}var n;t.exports=(n={array:e.isRequired=e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:r,element:e,elementType:e,instanceOf:r,node:e,objectOf:r,oneOf:r,oneOfType:r,shape:r,exact:r,checkPropTypes:W,resetWarningCache:K}).PropTypes=n});var V=function(t,e){return t===e||t!=t&&e!=e};var H=function(t,e){for(var r=t.length;r--;)if(V(t[r][0],e))return r;return-1},G=Array.prototype.splice;function Y(t){var e=this.__data__,r=H(e,t);return 0<=r&&(r==e.length-1?e.pop():G.call(e,r,1),--this.size,!0)}function J(t){var e=this.__data__,r=H(e,t);return r<0?void 0:e[r][1]}function Q(t){return-1<H(this.__data__,t)}function X(t,e){var r=this.__data__,n=H(r,t);return n<0?(++this.size,r.push([t,e])):r[n][1]=e,this}function Z(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}Z.prototype.clear=function(){this.__data__=[],this.size=0},Z.prototype.delete=Y,Z.prototype.get=J,Z.prototype.has=Q,Z.prototype.set=X;var tt=Z;function et(){this.__data__=new tt,this.size=0}function rt(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}function nt(t){return this.__data__.get(t)}function ot(t){return this.__data__.has(t)}var at="object"==typeof e&&e&&e.Object===Object&&e,it="object"==typeof self&&self&&self.Object===Object&&self,ut=at||it||Function("return this")(),ct=ut.Symbol,st=Object.prototype,ft=st.hasOwnProperty,pt=st.toString,lt=ct?ct.toStringTag:void 0;var ht=function(t){var e=ft.call(t,lt),r=t[lt];try{var n=!(t[lt]=void 0)}catch(t){}var o=pt.call(t);return n&&(e?t[lt]=r:delete t[lt]),o},yt=Object.prototype.toString;var vt=function(t){return yt.call(t)},dt=ct?ct.toStringTag:void 0;var bt=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":(dt&&dt in Object(t)?ht:vt)(t)};var gt=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)};var _t,mt=function(t){if(!gt(t))return!1;var e=bt(t);return"[object Function]"==e||"[object GeneratorFunction]"==e||"[object AsyncFunction]"==e||"[object Proxy]"==e},jt=ut["__core-js_shared__"],Ot=(_t=/[^.]+$/.exec(jt&&jt.keys&&jt.keys.IE_PROTO||""))?"Symbol(src)_1."+_t:"";var wt=function(t){return!!Ot&&Ot in t},Pt=Function.prototype.toString;var Et=function(t){if(null!=t){try{return Pt.call(t)}catch(t){}try{return t+""}catch(t){}}return""},St=/^\[object .+?Constructor\]$/,kt=RegExp("^"+Function.prototype.toString.call(Object.prototype.hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var Ct=function(t){return!(!gt(t)||wt(t))&&(mt(t)?kt:St).test(Et(t))};var It=function(t,e){return null==t?void 0:t[e]};var At=function(t,e){var r=It(t,e);return Ct(r)?r:void 0},Dt=At(ut,"Map"),$t=At(Object,"create");function zt(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var xt=Object.prototype.hasOwnProperty;function Tt(t){var e=this.__data__;if($t){var r=e[t];return"__lodash_hash_undefined__"===r?void 0:r}return xt.call(e,t)?e[t]:void 0}var Rt=Object.prototype.hasOwnProperty;function Mt(t){var e=this.__data__;return $t?void 0!==e[t]:Rt.call(e,t)}function Ft(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=$t&&void 0===e?"__lodash_hash_undefined__":e,this}function Bt(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}Bt.prototype.clear=function(){this.__data__=$t?$t(null):{},this.size=0},Bt.prototype.delete=zt,Bt.prototype.get=Tt,Bt.prototype.has=Mt,Bt.prototype.set=Ft;var Lt=Bt;var qt=function(t){var e=typeof t;return"string"==e||"number"==e||"symbol"==e||"boolean"==e?"__proto__"!==t:null===t};var Ut=function(t,e){var r=t.__data__;return qt(e)?r["string"==typeof e?"string":"hash"]:r.map};function Kt(t){var e=Ut(this,t).delete(t);return this.size-=e?1:0,e}function Wt(t){return Ut(this,t).get(t)}function Nt(t){return Ut(this,t).has(t)}function Vt(t,e){var r=Ut(this,t),n=r.size;return r.set(t,e),this.size+=r.size==n?0:1,this}function Ht(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e<r;){var n=t[e];this.set(n[0],n[1])}}Ht.prototype.clear=function(){this.size=0,this.__data__={hash:new Lt,map:new(Dt||tt),string:new Lt}},Ht.prototype.delete=Kt,Ht.prototype.get=Wt,Ht.prototype.has=Nt,Ht.prototype.set=Vt;var Gt=Ht;function Yt(t,e){var r=this.__data__;if(r instanceof tt){var n=r.__data__;if(!Dt||n.length<199)return n.push([t,e]),this.size=++r.size,this;r=this.__data__=new Gt(n)}return r.set(t,e),this.size=r.size,this}function Jt(t){var e=this.__data__=new tt(t);this.size=e.size}Jt.prototype.clear=et,Jt.prototype.delete=rt,Jt.prototype.get=nt,Jt.prototype.has=ot,Jt.prototype.set=Yt;var Qt=Jt;function Xt(t){return this.__data__.has(t)}function Zt(t){var e=-1,r=null==t?0:t.length;for(this.__data__=new Gt;++e<r;)this.add(t[e])}Zt.prototype.add=Zt.prototype.push=function(t){return this.__data__.set(t,"__lodash_hash_undefined__"),this},Zt.prototype.has=Xt;var te=Zt;var ee=function(t,e){for(var r=-1,n=null==t?0:t.length;++r<n;)if(e(t[r],r,t))return!0;return!1};var re=function(t,e){return t.has(e)};var ne=function(t,e,r,n,o,a){var i=1&r,u=t.length,c=e.length;if(!(u==c||i&&u<c))return!1;var s=a.get(t);if(s&&a.get(e))return s==e;var f=-1,p=!0,l=2&r?new te:void 0;for(a.set(t,e),a.set(e,t);++f<u;){var h,y=t[f],v=e[f];if(n&&(h=i?n(v,y,f,e,t,a):n(y,v,f,t,e,a)),void 0!==h){if(h)continue;p=!1;break}if(l){if(!ee(e,function(t,e){if(!re(l,e)&&(y===t||o(y,t,r,n,a)))return l.push(e)})){p=!1;break}}else if(y!==v&&!o(y,v,r,n,a)){p=!1;break}}return a.delete(t),a.delete(e),p},oe=ut.Uint8Array;function ae(t){var r=-1,n=Array(t.size);return t.forEach(function(t,e){n[++r]=[e,t]}),n}function ie(t){var e=-1,r=Array(t.size);return t.forEach(function(t){r[++e]=t}),r}var ue=ct?ct.prototype:void 0,ce=ue?ue.valueOf:void 0;var se=function(t,e,r,n,o,a,i){switch(r){case"[object DataView]":if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case"[object ArrayBuffer]":return t.byteLength==e.byteLength&&a(new oe(t),new oe(e))?!0:!1;case"[object Boolean]":case"[object Date]":case"[object Number]":return V(+t,+e);case"[object Error]":return t.name==e.name&&t.message==e.message;case"[object RegExp]":case"[object String]":return t==e+"";case"[object Map]":var u=ae;case"[object Set]":u=u||ie;if(t.size!=e.size&&!(1&n))return!1;var c=i.get(t);if(c)return c==e;n|=2,i.set(t,e);var s=ne(u(t),u(e),n,o,a,i);return i.delete(t),s;case"[object Symbol]":if(ce)return ce.call(t)==ce.call(e)}return!1};var fe=function(t,e){for(var r=-1,n=e.length,o=t.length;++r<n;)t[o+r]=e[r];return t},pe=Array.isArray;var le=function(t,e,r){var n=e(t);return pe(t)?n:fe(n,r(t))};var he=function(t,e){for(var r=-1,n=null==t?0:t.length,o=0,a=[];++r<n;){var i=t[r];e(i,r,t)&&(a[o++]=i)}return a};var ye=Object.prototype.propertyIsEnumerable,ve=Object.getOwnPropertySymbols,de=ve?function(e){return null==e?[]:he(ve(e=Object(e)),function(t){return ye.call(e,t)})}:function(){return[]};var be=function(t,e){for(var r=-1,n=Array(t);++r<t;)n[r]=e(r);return n};var ge=function(t){return null!=t&&"object"==typeof t};var _e=function(t){return ge(t)&&"[object Arguments]"==bt(t)},me=Object.prototype,je=me.hasOwnProperty,Oe=me.propertyIsEnumerable,we=_e(function(){return arguments}())?_e:function(t){return ge(t)&&je.call(t,"callee")&&!Oe.call(t,"callee")};function Pe(){return!1}var Ee=b(function(t,e){var r=e&&!e.nodeType&&e,n=r&&t&&!t.nodeType&&t,o=n&&n.exports===r?ut.Buffer:void 0;t.exports=(o?o.isBuffer:void 0)||Pe}),Se=/^(?:0|[1-9]\d*)$/;var ke=function(t,e){var r=typeof t;return!!(e=null==e?9007199254740991:e)&&("number"==r||"symbol"!=r&&Se.test(t))&&-1<t&&t%1==0&&t<e};var Ce=function(t){return"number"==typeof t&&-1<t&&t%1==0&&t<=9007199254740991},Ie={};Ie["[object Float32Array]"]=Ie["[object Float64Array]"]=Ie["[object Int8Array]"]=Ie["[object Int16Array]"]=Ie["[object Int32Array]"]=Ie["[object Uint8Array]"]=Ie["[object Uint8ClampedArray]"]=Ie["[object Uint16Array]"]=Ie["[object Uint32Array]"]=!0,Ie["[object Arguments]"]=Ie["[object Array]"]=Ie["[object ArrayBuffer]"]=Ie["[object Boolean]"]=Ie["[object DataView]"]=Ie["[object Date]"]=Ie["[object Error]"]=Ie["[object Function]"]=Ie["[object Map]"]=Ie["[object Number]"]=Ie["[object Object]"]=Ie["[object RegExp]"]=Ie["[object Set]"]=Ie["[object String]"]=Ie["[object WeakMap]"]=!1;function Ae(t){return ge(t)&&Ce(t.length)&&!!Ie[bt(t)]}var De=function(e){return function(t){return e(t)}},$e=b(function(t,e){var r=e&&!e.nodeType&&e,n=r&&t&&!t.nodeType&&t,o=n&&n.exports===r&&at.process,a=function(){try{var t=n&&n.require&&n.require("util").types;return t?t:o&&o.binding&&o.binding("util")}catch(t){}}();t.exports=a}),ze=$e&&$e.isTypedArray,xe=ze?De(ze):Ae,Te=Object.prototype.hasOwnProperty;var Re=function(t,e){var r=pe(t),n=!r&&we(t),o=!r&&!n&&Ee(t),a=!r&&!n&&!o&&xe(t),i=r||n||o||a,u=i?be(t.length,String):[],c=u.length;for(var s in t)!e&&!Te.call(t,s)||i&&("length"==s||o&&("offset"==s||"parent"==s)||a&&("buffer"==s||"byteLength"==s||"byteOffset"==s)||ke(s,c))||u.push(s);return u},Me=Object.prototype;var Fe=function(t){var e=t&&t.constructor;return t===("function"==typeof e&&e.prototype||Me)};var Be=function(e,r){return function(t){return e(r(t))}}(Object.keys,Object),Le=Object.prototype.hasOwnProperty;var qe=function(t){if(!Fe(t))return Be(t);var e=[];for(var r in Object(t))Le.call(t,r)&&"constructor"!=r&&e.push(r);return e};var Ue=function(t){return null!=t&&Ce(t.length)&&!mt(t)};var Ke=function(t){return(Ue(t)?Re:qe)(t)};var We=function(t){return le(t,Ke,de)},Ne=Object.prototype.hasOwnProperty;var Ve=function(t,e,r,n,o,a){var i=1&r,u=We(t),c=u.length;if(c!=We(e).length&&!i)return!1;for(var s=c;s--;){var f=u[s];if(!(i?f in e:Ne.call(e,f)))return!1}var p=a.get(t);if(p&&a.get(e))return p==e;var l=!0;a.set(t,e),a.set(e,t);for(var h,y,v=i;++s<c;){var d,b=t[f=u[s]],g=e[f];if(n&&(d=i?n(g,b,f,e,t,a):n(b,g,f,t,e,a)),!(void 0===d?b===g||o(b,g,r,n,a):d)){l=!1;break}v=v||"constructor"==f}return!l||v||(h=t.constructor)!=(y=e.constructor)&&"constructor"in t&&"constructor"in e&&!("function"==typeof h&&h instanceof h&&"function"==typeof y&&y instanceof y)&&(l=!1),a.delete(t),a.delete(e),l},He=At(ut,"DataView"),Ge=At(ut,"Promise"),Ye=At(ut,"Set"),Je=At(ut,"WeakMap"),Qe="[object Map]",Xe="[object Promise]",Ze="[object Set]",tr="[object WeakMap]",er="[object DataView]",rr=Et(He),nr=Et(Dt),or=Et(Ge),ar=Et(Ye),ir=Et(Je),ur=bt;(He&&ur(new He(new ArrayBuffer(1)))!=er||Dt&&ur(new Dt)!=Qe||Ge&&ur(Ge.resolve())!=Xe||Ye&&ur(new Ye)!=Ze||Je&&ur(new Je)!=tr)&&(ur=function(t){var e=bt(t),r="[object Object]"==e?t.constructor:void 0,n=r?Et(r):"";if(n)switch(n){case rr:return er;case nr:return Qe;case or:return Xe;case ar:return Ze;case ir:return tr}return e});var cr=ur,sr="[object Arguments]",fr="[object Array]",pr="[object Object]",lr=Object.prototype.hasOwnProperty;var hr=function(t,e,r,n,o,a){var i=pe(t),u=pe(e),c=i?fr:cr(t),s=u?fr:cr(e),f=(c=c==sr?pr:c)==pr,p=(s=s==sr?pr:s)==pr,l=c==s;if(l&&Ee(t)){if(!Ee(e))return!1;f=!(i=!0)}if(l&&!f)return a=a||new Qt,i||xe(t)?ne(t,e,r,n,o,a):se(t,e,c,r,n,o,a);if(!(1&r)){var h=f&&lr.call(t,"__wrapped__"),y=p&&lr.call(e,"__wrapped__");if(h||y)return o(h?t.value():t,y?e.value():e,r,n,a=a||new Qt)}return l&&(a=a||new Qt,Ve(t,e,r,n,o,a))};var yr=function t(e,r,n,o,a){return e===r||(null==e||null==r||!ge(e)&&!ge(r)?e!=e&&r!=r:hr(e,r,n,o,t,a))};var vr=function(t,e){return yr(t,e)},dr=function(){try{var t=At(Object,"defineProperty");return t({},"",{}),t}catch(t){}}();var br=function(t,e,r){"__proto__"==e&&dr?dr(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r};function gr(t,e,r,n){for(var o=-1,a=null==t?0:t.length;++o<a;){var i=t[o];e(n,i,r(i),t)}return n}var _r=function(c){return function(t,e,r){for(var n=-1,o=Object(t),a=r(t),i=a.length;i--;){var u=a[c?i:++n];if(!1===e(o[u],u,o))break}return t}}();var mr=function(a,i){return function(t,e){if(null==t)return t;if(!Ue(t))return a(t,e);for(var r=t.length,n=i?r:-1,o=Object(t);(i?n--:++n<r)&&!1!==e(o[n],n,o););return t}}(function(t,e){return t&&_r(t,e,Ke)});function jr(t,n,o,a){return mr(t,function(t,e,r){n(a,t,o(t),r)}),a}var Or=function(t,e,r,n){var o=r.length,a=o,i=!n;if(null==t)return!a;for(t=Object(t);o--;){var u=r[o];if(i&&u[2]?u[1]!==t[u[0]]:!(u[0]in t))return!1}for(;++o<a;){var c=(u=r[o])[0],s=t[c],f=u[1];if(i&&u[2]){if(void 0===s&&!(c in t))return!1}else{var p,l=new Qt;if(n&&(p=n(s,f,c,t,e,l)),!(void 0===p?yr(f,s,3,n,l):p))return!1}}return!0};var wr=function(t){return t==t&&!gt(t)};var Pr=function(t){for(var e=Ke(t),r=e.length;r--;){var n=e[r],o=t[n];e[r]=[n,o,wr(o)]}return e};var Er=function(e,r){return function(t){return null!=t&&(t[e]===r&&(void 0!==r||e in Object(t)))}};var Sr=function(e){var r=Pr(e);return 1==r.length&&r[0][2]?Er(r[0][0],r[0][1]):function(t){return t===e||Or(t,e,r)}};var kr=function(t){return"symbol"==typeof t||ge(t)&&"[object Symbol]"==bt(t)},Cr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ir=/^\w*$/;var Ar=function(t,e){if(pe(t))return!1;var r=typeof t;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=t&&!kr(t))||(Ir.test(t)||!Cr.test(t)||null!=e&&t in Object(e))},Dr="Expected a function";function $r(o,a){if("function"!=typeof o||null!=a&&"function"!=typeof a)throw new TypeError(Dr);var i=function(){var t=arguments,e=a?a.apply(this,t):t[0],r=i.cache;if(r.has(e))return r.get(e);var n=o.apply(this,t);return i.cache=r.set(e,n)||r,n};return i.cache=new($r.Cache||Gt),i}$r.Cache=Gt;var zr=$r;var xr=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Tr=/\\(\\)?/g,Rr=function(t){var e=zr(t,function(t){return 500===r.size&&r.clear(),t}),r=e.cache;return e}(function(t){var o=[];return 46==t.charCodeAt(0)&&o.push(""),t.replace(xr,function(t,e,r,n){o.push(r?n.replace(Tr,"$1"):e||t)}),o});var Mr=function(t,e){for(var r=-1,n=null==t?0:t.length,o=Array(n);++r<n;)o[r]=e(t[r],r,t);return o},Fr=1/0,Br=ct?ct.prototype:void 0,Lr=Br?Br.toString:void 0;var qr=function t(e){if("string"==typeof e)return e;if(pe(e))return Mr(e,t)+"";if(kr(e))return Lr?Lr.call(e):"";var r=e+"";return"0"==r&&1/e==-Fr?"-0":r};var Ur=function(t){return null==t?"":qr(t)};var Kr=function(t,e){return pe(t)?t:Ar(t,e)?[t]:Rr(Ur(t))};var Wr=function(t){if("string"==typeof t||kr(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e};var Nr=function(t,e){for(var r=0,n=(e=Kr(e,t)).length;null!=t&&r<n;)t=t[Wr(e[r++])];return r&&r==n?t:void 0};var Vr=function(t,e,r){var n=null==t?void 0:Nr(t,e);return void 0===n?r:n};function Hr(t,e){return null!=t&&e in Object(t)}var Gr=function(t,e,r){for(var n=-1,o=(e=Kr(e,t)).length,a=!1;++n<o;){var i=Wr(e[n]);if(!(a=null!=t&&r(t,i)))break;t=t[i]}return a||++n!=o?a:!!(o=null==t?0:t.length)&&Ce(o)&&ke(i,o)&&(pe(t)||we(t))};var Yr=function(t,e){return null!=t&&Gr(t,e,Hr)};var Jr=function(r,n){return Ar(r)&&wr(n)?Er(Wr(r),n):function(t){var e=Vr(t,r);return void 0===e&&e===n?Yr(t,r):yr(n,e,3)}};function Qr(t){return t}var Xr=function(e){return function(t){return null==t?void 0:t[e]}};var Zr=function(e){return function(t){return Nr(t,e)}};var tn=function(t){return Ar(t)?Xr(Wr(t)):Zr(t)};var en=function(t){return"function"==typeof t?t:null==t?Qr:"object"==typeof t?pe(t)?Jr(t[0],t[1]):Sr(t):tn(t)};var rn=function(o,a){return function(t,e){var r=pe(t)?gr:jr,n=a?a():{};return r(t,o,en(e),n)}}(function(t,e,r){br(t,r,e)}),nn="undefined"!=typeof process&&process.env&&"production",on=function(){p(c,r.Component);var t=d(c);function c(){var u;return n(this,c),i(v(u=t.call(this)),"handleOnClick",function(t){var e=u.chartInstance,r=u.props,n=r.getDatasetAtEvent,o=r.getElementAtEvent,a=r.getElementsAtEvent,i=r.onElementsClick;n&&n(e.getDatasetAtEvent(t),t),o&&o(e.getElementAtEvent(t),t),a&&a(e.getElementsAtEvent(t),t),i&&i(e.getElementsAtEvent(t),t)}),i(v(u),"ref",function(t){u.element=t}),u.chartInstance=void 0,u}return a(c,[{key:"componentDidMount",value:function(){this.renderChart()}},{key:"componentDidUpdate",value:function(){if(this.props.redraw)return this.destroyChart(),void this.renderChart();this.updateChart()}},{key:"shouldComponentUpdate",value:function(t){var e=this.props,r=e.options,n=e.plugins;if(!0===t.redraw)return!0;if(e.height!==t.height||e.width!==t.width)return!0;if(e.type!==t.type)return!0;if(!vr(e.legend,t.legend))return!0;if(!vr(r,t.options))return!0;var o=this.transformDataProp(t);return!vr(this.shadowDataProp,o)||!vr(n,t.plugins)}},{key:"componentWillUnmount",value:function(){this.destroyChart()}},{key:"transformDataProp",value:function(t){var e=t.data;return"function"!=typeof e?e:e(this.element)}},{key:"memoizeDataProps",value:function(){if(this.props.data){var t=this.transformDataProp(this.props);return this.shadowDataProp=f(f({},t),{},{datasets:t.datasets&&t.datasets.map(function(t){return f({},t)})}),this.saveCurrentDatasets(),t}}},{key:"checkDatasets",value:function(t){var e;"production"===nn||"prod"===nn||1>=t.length||this.props.datasetKeyProvider!==c.getLabelAsKey||(e=!1,t.forEach(function(t){t.label||(e=!0)}),e&&console.error('[react-chartjs-2] Warning: Each dataset needs a unique key. By default, the "label" property on each dataset is used. Alternatively, you may provide a "datasetKeyProvider" as a prop that returns a unique key.'))}},{key:"getCurrentDatasets",value:function(){return this.chartInstance&&this.chartInstance.config.data&&this.chartInstance.config.data.datasets||[]}},{key:"saveCurrentDatasets",value:function(){var e=this;this.datasets=this.datasets||{},this.getCurrentDatasets().forEach(function(t){e.datasets[e.props.datasetKeyProvider(t)]=t})}},{key:"updateChart",value:function(){var t,e,o,r,a=this,n=this.props.options,i=this.memoizeDataProps(this.props);this.chartInstance&&(n&&(this.chartInstance.options=u.helpers.configMerge(this.chartInstance.options,n)),t=this.getCurrentDatasets(),e=i.datasets||[],this.checkDatasets(t),o=rn(t,this.props.datasetKeyProvider),this.chartInstance.config.data.datasets=e.map(function(r){var n=o[a.props.datasetKeyProvider(r)];if(n&&n.type===r.type&&r.data){n.data.splice(r.data.length),r.data.forEach(function(t,e){n.data[e]=r.data[e]});var t=y(r,["data"]);return f(f({},n),t)}return r}),r=y(i,["datasets"]),this.chartInstance.config.data=f(f({},this.chartInstance.config.data),r),this.chartInstance.update())}},{key:"renderChart",value:function(){var t=this.props,e=t.options,r=t.legend,n=t.type,o=t.plugins,a=this.element,i=this.memoizeDataProps();void 0===r||vr(c.defaultProps.legend,r)||(e.legend=r),this.chartInstance=new u(a,{type:n,data:i,options:e,plugins:o})}},{key:"destroyChart",value:function(){var t;this.chartInstance&&(this.saveCurrentDatasets(),t=Object.values(this.datasets),this.chartInstance.config.data.datasets=t,this.chartInstance.destroy())}},{key:"render",value:function(){var t=this.props;return r.createElement("canvas",{ref:this.ref,height:t.height,width:t.width,id:t.id,onClick:this.handleOnClick})}}]),c}();i(on,"getLabelAsKey",function(t){return t.label}),i(on,"propTypes",{data:N.oneOfType([N.object,N.func]).isRequired,getDatasetAtEvent:N.func,getElementAtEvent:N.func,getElementsAtEvent:N.func,height:N.number,legend:N.object,onElementsClick:N.func,options:N.object,plugins:N.arrayOf(N.object),redraw:N.bool,type:function(t,e,r){if(!u.controllers[t[e]])return Error("Invalid chart type `"+t[e]+"` supplied to `"+r+"`.")},width:N.number,datasetKeyProvider:N.func}),i(on,"defaultProps",{legend:{display:!0,position:"bottom"},type:"doughnut",height:150,width:300,redraw:!1,options:{},datasetKeyProvider:on.getLabelAsKey});var an=function(){p(e,r.Component);var t=d(e);function e(){return n(this,e),t.apply(this,arguments)}return a(e,[{key:"render",value:function(){var e=this;return r.createElement(on,c({},this.props,{ref:function(t){return e.chartInstance=t&&t.chartInstance},type:"doughnut"}))}}]),e}(),un=function(){p(e,r.Component);var t=d(e);function e(){return n(this,e),t.apply(this,arguments)}return a(e,[{key:"render",value:function(){var e=this;return r.createElement(on,c({},this.props,{ref:function(t){return e.chartInstance=t&&t.chartInstance},type:"pie"}))}}]),e}(),cn=function(){p(e,r.Component);var t=d(e);function e(){return n(this,e),t.apply(this,arguments)}return a(e,[{key:"render",value:function(){var e=this;return r.createElement(on,c({},this.props,{ref:function(t){return e.chartInstance=t&&t.chartInstance},type:"line"}))}}]),e}(),sn=function(){p(e,r.Component);var t=d(e);function e(){return n(this,e),t.apply(this,arguments)}return a(e,[{key:"render",value:function(){var e=this;return r.createElement(on,c({},this.props,{ref:function(t){return e.chartInstance=t&&t.chartInstance},type:"bar"}))}}]),e}(),fn=function(){p(e,r.Component);var t=d(e);function e(){return n(this,e),t.apply(this,arguments)}return a(e,[{key:"render",value:function(){var e=this;return r.createElement(on,c({},this.props,{ref:function(t){return e.chartInstance=t&&t.chartInstance},type:"horizontalBar"}))}}]),e}(),pn=function(){p(e,r.Component);var t=d(e);function e(){return n(this,e),t.apply(this,arguments)}return a(e,[{key:"render",value:function(){var e=this;return r.createElement(on,c({},this.props,{ref:function(t){return e.chartInstance=t&&t.chartInstance},type:"radar"}))}}]),e}(),ln=function(){p(e,r.Component);var t=d(e);function e(){return n(this,e),t.apply(this,arguments)}return a(e,[{key:"render",value:function(){var e=this;return r.createElement(on,c({},this.props,{ref:function(t){return e.chartInstance=t&&t.chartInstance},type:"polarArea"}))}}]),e}(),hn=function(){p(e,r.Component);var t=d(e);function e(){return n(this,e),t.apply(this,arguments)}return a(e,[{key:"render",value:function(){var e=this;return r.createElement(on,c({},this.props,{ref:function(t){return e.chartInstance=t&&t.chartInstance},type:"bubble"}))}}]),e}(),yn=function(){p(e,r.Component);var t=d(e);function e(){return n(this,e),t.apply(this,arguments)}return a(e,[{key:"render",value:function(){var e=this;return r.createElement(on,c({},this.props,{ref:function(t){return e.chartInstance=t&&t.chartInstance},type:"scatter"}))}}]),e}(),vn=u.defaults;t.Chart=u,t.Bar=sn,t.Bubble=hn,t.Doughnut=an,t.HorizontalBar=fn,t.Line=cn,t.Pie=un,t.Polar=ln,t.Radar=pn,t.Scatter=yn,t.default=on,t.defaults=vn,Object.defineProperty(t,"__esModule",{value:!0})});

@@ -1,30 +0,76 @@

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
"use strict";
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "Chart", {
enumerable: true,
get: function get() {
return _chart["default"];
}
});
exports.defaults = exports.Scatter = exports.Bubble = exports.Polar = exports.Radar = exports.HorizontalBar = exports.Bar = exports.Line = exports.Pie = exports.Doughnut = exports["default"] = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _chart = _interopRequireDefault(require("chart.js"));
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
var _keyBy = _interopRequireDefault(require("lodash/keyBy"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
import React from 'react';
import PropTypes from 'prop-types';
import Chart from 'chart.js';
import isEqual from 'lodash/isEqual';
import keyBy from 'lodash/keyBy';
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var NODE_ENV = typeof process !== 'undefined' && process.env && process.env.NODE_ENV;
var ChartComponent = function (_React$Component) {
var ChartComponent = /*#__PURE__*/function (_React$Component) {
_inherits(ChartComponent, _React$Component);
var _super = _createSuper(ChartComponent);
function ChartComponent() {
var _this;
_classCallCheck(this, ChartComponent);
var _this = _possibleConstructorReturn(this, _React$Component.call(this));
_this = _super.call(this);
_this.handleOnClick = function (event) {
_defineProperty(_assertThisInitialized(_this), "handleOnClick", function (event) {
var instance = _this.chartInstance;
var _this$props = _this.props,

@@ -35,4 +81,2 @@ getDatasetAtEvent = _this$props.getDatasetAtEvent,

onElementsClick = _this$props.onElementsClick;
getDatasetAtEvent && getDatasetAtEvent(instance.getDatasetAtEvent(event), event);

@@ -42,7 +86,7 @@ getElementAtEvent && getElementAtEvent(instance.getElementAtEvent(event), event);

onElementsClick && onElementsClick(instance.getElementsAtEvent(event), event); // Backward compatibility
};
});
_this.ref = function (element) {
_defineProperty(_assertThisInitialized(_this), "ref", function (element) {
_this.element = element;
};
});

@@ -53,266 +97,266 @@ _this.chartInstance = undefined;

ChartComponent.prototype.componentDidMount = function componentDidMount() {
this.renderChart();
};
ChartComponent.prototype.componentDidUpdate = function componentDidUpdate() {
if (this.props.redraw) {
this.destroyChart();
_createClass(ChartComponent, [{
key: "componentDidMount",
value: function componentDidMount() {
this.renderChart();
return;
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate() {
if (this.props.redraw) {
this.destroyChart();
this.renderChart();
return;
}
this.updateChart();
};
this.updateChart();
}
}, {
key: "shouldComponentUpdate",
value: function shouldComponentUpdate(nextProps) {
var _this$props2 = this.props,
redraw = _this$props2.redraw,
type = _this$props2.type,
options = _this$props2.options,
plugins = _this$props2.plugins,
legend = _this$props2.legend,
height = _this$props2.height,
width = _this$props2.width;
ChartComponent.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {
var _props = this.props,
redraw = _props.redraw,
type = _props.type,
options = _props.options,
plugins = _props.plugins,
legend = _props.legend,
height = _props.height,
width = _props.width;
if (nextProps.redraw === true) {
return true;
}
if (height !== nextProps.height || width !== nextProps.width) {
return true;
}
if (nextProps.redraw === true) {
return true;
}
if (type !== nextProps.type) {
return true;
}
if (height !== nextProps.height || width !== nextProps.width) {
return true;
}
if (!(0, _isEqual["default"])(legend, nextProps.legend)) {
return true;
}
if (type !== nextProps.type) {
return true;
}
if (!(0, _isEqual["default"])(options, nextProps.options)) {
return true;
}
if (!isEqual(legend, nextProps.legend)) {
return true;
}
var nextData = this.transformDataProp(nextProps);
if (!isEqual(options, nextProps.options)) {
return true;
}
if (!(0, _isEqual["default"])(this.shadowDataProp, nextData)) {
return true;
}
var nextData = this.transformDataProp(nextProps);
if (!isEqual(this.shadowDataProp, nextData)) {
return true;
return !(0, _isEqual["default"])(plugins, nextProps.plugins);
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
this.destroyChart();
}
}, {
key: "transformDataProp",
value: function transformDataProp(props) {
var data = props.data;
return !isEqual(plugins, nextProps.plugins);
};
if (typeof data == 'function') {
var node = this.element;
return data(node);
} else {
return data;
}
} // Chart.js directly mutates the data.dataset objects by adding _meta proprerty
// this makes impossible to compare the current and next data changes
// therefore we memoize the data prop while sending a fake to Chart.js for mutation.
// see https://github.com/chartjs/Chart.js/blob/master/src/core/core.controller.js#L615-L617
ChartComponent.prototype.componentWillUnmount = function componentWillUnmount() {
this.destroyChart();
};
}, {
key: "memoizeDataProps",
value: function memoizeDataProps() {
if (!this.props.data) {
return;
}
ChartComponent.prototype.transformDataProp = function transformDataProp(props) {
var data = props.data;
var data = this.transformDataProp(this.props);
this.shadowDataProp = _objectSpread(_objectSpread({}, data), {}, {
datasets: data.datasets && data.datasets.map(function (set) {
return _objectSpread({}, set);
})
});
this.saveCurrentDatasets(); // to remove the dataset metadata from this chart when the chart is destroyed
if (typeof data == 'function') {
var node = this.element;
return data(node);
} else {
return data;
}
};
}, {
key: "checkDatasets",
value: function checkDatasets(datasets) {
var isDev = NODE_ENV !== 'production' && NODE_ENV !== 'prod';
var usingCustomKeyProvider = this.props.datasetKeyProvider !== ChartComponent.getLabelAsKey;
var multipleDatasets = datasets.length > 1;
// Chart.js directly mutates the data.dataset objects by adding _meta proprerty
// this makes impossible to compare the current and next data changes
// therefore we memoize the data prop while sending a fake to Chart.js for mutation.
// see https://github.com/chartjs/Chart.js/blob/master/src/core/core.controller.js#L615-L617
if (isDev && multipleDatasets && !usingCustomKeyProvider) {
var shouldWarn = false;
datasets.forEach(function (dataset) {
if (!dataset.label) {
shouldWarn = true;
}
});
ChartComponent.prototype.memoizeDataProps = function memoizeDataProps() {
if (!this.props.data) {
return;
if (shouldWarn) {
console.error('[react-chartjs-2] Warning: Each dataset needs a unique key. By default, the "label" property on each dataset is used. Alternatively, you may provide a "datasetKeyProvider" as a prop that returns a unique key.');
}
}
}
}, {
key: "getCurrentDatasets",
value: function getCurrentDatasets() {
return this.chartInstance && this.chartInstance.config.data && this.chartInstance.config.data.datasets || [];
}
}, {
key: "saveCurrentDatasets",
value: function saveCurrentDatasets() {
var _this2 = this;
var data = this.transformDataProp(this.props);
this.shadowDataProp = _extends({}, data, {
datasets: data.datasets && data.datasets.map(function (set) {
return _extends({}, set);
})
});
this.saveCurrentDatasets(); // to remove the dataset metadata from this chart when the chart is destroyed
return data;
};
ChartComponent.prototype.checkDatasets = function checkDatasets(datasets) {
var isDev = NODE_ENV !== 'production' && NODE_ENV !== 'prod';
var usingCustomKeyProvider = this.props.datasetKeyProvider !== ChartComponent.getLabelAsKey;
var multipleDatasets = datasets.length > 1;
if (isDev && multipleDatasets && !usingCustomKeyProvider) {
var shouldWarn = false;
datasets.forEach(function (dataset) {
if (!dataset.label) {
shouldWarn = true;
}
this.datasets = this.datasets || {};
var currentDatasets = this.getCurrentDatasets();
currentDatasets.forEach(function (d) {
_this2.datasets[_this2.props.datasetKeyProvider(d)] = d;
});
if (shouldWarn) {
console.error('[react-chartjs-2] Warning: Each dataset needs a unique key. By default, the "label" property on each dataset is used. Alternatively, you may provide a "datasetKeyProvider" as a prop that returns a unique key.');
}
}
};
}, {
key: "updateChart",
value: function updateChart() {
var _this3 = this;
ChartComponent.prototype.getCurrentDatasets = function getCurrentDatasets() {
return this.chartInstance && this.chartInstance.config.data && this.chartInstance.config.data.datasets || [];
};
var options = this.props.options;
var data = this.memoizeDataProps(this.props);
if (!this.chartInstance) return;
ChartComponent.prototype.saveCurrentDatasets = function saveCurrentDatasets() {
var _this2 = this;
if (options) {
this.chartInstance.options = _chart["default"].helpers.configMerge(this.chartInstance.options, options);
} // Pipe datasets to chart instance datasets enabling
// seamless transitions
this.datasets = this.datasets || {};
var currentDatasets = this.getCurrentDatasets();
currentDatasets.forEach(function (d) {
_this2.datasets[_this2.props.datasetKeyProvider(d)] = d;
});
};
ChartComponent.prototype.updateChart = function updateChart() {
var _this3 = this;
var currentDatasets = this.getCurrentDatasets();
var nextDatasets = data.datasets || [];
this.checkDatasets(currentDatasets);
var currentDatasetsIndexed = (0, _keyBy["default"])(currentDatasets, this.props.datasetKeyProvider); // We can safely replace the dataset array, as long as we retain the _meta property
// on each dataset.
var options = this.props.options;
this.chartInstance.config.data.datasets = nextDatasets.map(function (next) {
var current = currentDatasetsIndexed[_this3.props.datasetKeyProvider(next)];
if (current && current.type === next.type && next.data) {
// Be robust to no data. Relevant for other update mechanisms as in chartjs-plugin-streaming.
// The data array must be edited in place. As chart.js adds listeners to it.
current.data.splice(next.data.length);
next.data.forEach(function (point, pid) {
current.data[pid] = next.data[pid];
});
var data = this.memoizeDataProps(this.props);
var _data = next.data,
otherProps = _objectWithoutProperties(next, ["data"]); // Merge properties. Notice a weakness here. If a property is removed
// from next, it will be retained by current and never disappears.
// Workaround is to set value to null or undefined in next.
if (!this.chartInstance) return;
if (options) {
this.chartInstance.options = Chart.helpers.configMerge(this.chartInstance.options, options);
}
return _objectSpread(_objectSpread({}, current), otherProps);
} else {
return next;
}
});
// Pipe datasets to chart instance datasets enabling
// seamless transitions
var currentDatasets = this.getCurrentDatasets();
var nextDatasets = data.datasets || [];
this.checkDatasets(currentDatasets);
var datasets = data.datasets,
rest = _objectWithoutProperties(data, ["datasets"]);
var currentDatasetsIndexed = keyBy(currentDatasets, this.props.datasetKeyProvider);
this.chartInstance.config.data = _objectSpread(_objectSpread({}, this.chartInstance.config.data), rest);
this.chartInstance.update();
}
}, {
key: "renderChart",
value: function renderChart() {
var _this$props3 = this.props,
options = _this$props3.options,
legend = _this$props3.legend,
type = _this$props3.type,
plugins = _this$props3.plugins;
var node = this.element;
var data = this.memoizeDataProps();
// We can safely replace the dataset array, as long as we retain the _meta property
// on each dataset.
this.chartInstance.config.data.datasets = nextDatasets.map(function (next) {
var current = currentDatasetsIndexed[_this3.props.datasetKeyProvider(next)];
if (current && current.type === next.type && next.data) {
// Be robust to no data. Relevant for other update mechanisms as in chartjs-plugin-streaming.
// The data array must be edited in place. As chart.js adds listeners to it.
current.data.splice(next.data.length);
next.data.forEach(function (point, pid) {
current.data[pid] = next.data[pid];
});
var _data = next.data,
otherProps = _objectWithoutProperties(next, ['data']);
// Merge properties. Notice a weakness here. If a property is removed
// from next, it will be retained by current and never disappears.
// Workaround is to set value to null or undefined in next.
return _extends({}, current, otherProps);
} else {
return next;
if (typeof legend !== 'undefined' && !(0, _isEqual["default"])(ChartComponent.defaultProps.legend, legend)) {
options.legend = legend;
}
});
var datasets = data.datasets,
rest = _objectWithoutProperties(data, ['datasets']);
this.chartInstance.config.data = _extends({}, this.chartInstance.config.data, rest);
this.chartInstance.update();
};
ChartComponent.prototype.renderChart = function renderChart() {
var _props2 = this.props,
options = _props2.options,
legend = _props2.legend,
type = _props2.type,
plugins = _props2.plugins;
var node = this.element;
var data = this.memoizeDataProps();
if (typeof legend !== 'undefined' && !isEqual(ChartComponent.defaultProps.legend, legend)) {
options.legend = legend;
this.chartInstance = new _chart["default"](node, {
type: type,
data: data,
options: options,
plugins: plugins
});
}
}, {
key: "destroyChart",
value: function destroyChart() {
if (!this.chartInstance) {
return;
} // Put all of the datasets that have existed in the chart back on the chart
// so that the metadata associated with this chart get destroyed.
// This allows the datasets to be used in another chart. This can happen,
// for example, in a tabbed UI where the chart gets created each time the
// tab gets switched to the chart and uses the same data).
this.chartInstance = new Chart(node, {
type: type,
data: data,
options: options,
plugins: plugins
});
};
ChartComponent.prototype.destroyChart = function destroyChart() {
if (!this.chartInstance) {
return;
this.saveCurrentDatasets();
var datasets = Object.values(this.datasets);
this.chartInstance.config.data.datasets = datasets;
this.chartInstance.destroy();
}
}, {
key: "render",
value: function render() {
var _this$props4 = this.props,
height = _this$props4.height,
width = _this$props4.width,
id = _this$props4.id;
return /*#__PURE__*/_react["default"].createElement("canvas", {
ref: this.ref,
height: height,
width: width,
id: id,
onClick: this.handleOnClick
});
}
}]);
// Put all of the datasets that have existed in the chart back on the chart
// so that the metadata associated with this chart get destroyed.
// This allows the datasets to be used in another chart. This can happen,
// for example, in a tabbed UI where the chart gets created each time the
// tab gets switched to the chart and uses the same data).
this.saveCurrentDatasets();
var datasets = Object.values(this.datasets);
this.chartInstance.config.data.datasets = datasets;
this.chartInstance.destroy();
};
ChartComponent.prototype.render = function render() {
var _props3 = this.props,
height = _props3.height,
width = _props3.width,
id = _props3.id;
return React.createElement('canvas', {
ref: this.ref,
height: height,
width: width,
id: id,
onClick: this.handleOnClick
});
};
return ChartComponent;
}(React.Component);
}(_react["default"].Component);
ChartComponent.getLabelAsKey = function (d) {
_defineProperty(ChartComponent, "getLabelAsKey", function (d) {
return d.label;
};
});
ChartComponent.propTypes = {
data: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired,
getDatasetAtEvent: PropTypes.func,
getElementAtEvent: PropTypes.func,
getElementsAtEvent: PropTypes.func,
height: PropTypes.number,
legend: PropTypes.object,
onElementsClick: PropTypes.func,
options: PropTypes.object,
plugins: PropTypes.arrayOf(PropTypes.object),
redraw: PropTypes.bool,
_defineProperty(ChartComponent, "propTypes", {
data: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].func]).isRequired,
getDatasetAtEvent: _propTypes["default"].func,
getElementAtEvent: _propTypes["default"].func,
getElementsAtEvent: _propTypes["default"].func,
height: _propTypes["default"].number,
legend: _propTypes["default"].object,
onElementsClick: _propTypes["default"].func,
options: _propTypes["default"].object,
plugins: _propTypes["default"].arrayOf(_propTypes["default"].object),
redraw: _propTypes["default"].bool,
type: function type(props, propName, componentName) {
if (!Chart.controllers[props[propName]]) {
if (!_chart["default"].controllers[props[propName]]) {
return new Error('Invalid chart type `' + props[propName] + '` supplied to' + ' `' + componentName + '`.');
}
},
width: PropTypes.number,
datasetKeyProvider: PropTypes.func
};
ChartComponent.defaultProps = {
width: _propTypes["default"].number,
datasetKeyProvider: _propTypes["default"].func
});
_defineProperty(ChartComponent, "defaultProps", {
legend: {

@@ -328,215 +372,277 @@ display: true,

datasetKeyProvider: ChartComponent.getLabelAsKey
};
});
var _default = ChartComponent;
exports["default"] = _default;
export default ChartComponent;
export var Doughnut = function (_React$Component2) {
var Doughnut = /*#__PURE__*/function (_React$Component2) {
_inherits(Doughnut, _React$Component2);
var _super2 = _createSuper(Doughnut);
function Doughnut() {
_classCallCheck(this, Doughnut);
return _possibleConstructorReturn(this, _React$Component2.apply(this, arguments));
return _super2.apply(this, arguments);
}
Doughnut.prototype.render = function render() {
var _this5 = this;
_createClass(Doughnut, [{
key: "render",
value: function render() {
var _this4 = this;
return React.createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref) {
return _this5.chartInstance = _ref && _ref.chartInstance;
},
type: 'doughnut'
}));
};
return /*#__PURE__*/_react["default"].createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref) {
return _this4.chartInstance = _ref && _ref.chartInstance;
},
type: "doughnut"
}));
}
}]);
return Doughnut;
}(React.Component);
}(_react["default"].Component);
export var Pie = function (_React$Component3) {
exports.Doughnut = Doughnut;
var Pie = /*#__PURE__*/function (_React$Component3) {
_inherits(Pie, _React$Component3);
var _super3 = _createSuper(Pie);
function Pie() {
_classCallCheck(this, Pie);
return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));
return _super3.apply(this, arguments);
}
Pie.prototype.render = function render() {
var _this7 = this;
_createClass(Pie, [{
key: "render",
value: function render() {
var _this5 = this;
return React.createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref2) {
return _this7.chartInstance = _ref2 && _ref2.chartInstance;
},
type: 'pie'
}));
};
return /*#__PURE__*/_react["default"].createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref2) {
return _this5.chartInstance = _ref2 && _ref2.chartInstance;
},
type: "pie"
}));
}
}]);
return Pie;
}(React.Component);
}(_react["default"].Component);
export var Line = function (_React$Component4) {
exports.Pie = Pie;
var Line = /*#__PURE__*/function (_React$Component4) {
_inherits(Line, _React$Component4);
var _super4 = _createSuper(Line);
function Line() {
_classCallCheck(this, Line);
return _possibleConstructorReturn(this, _React$Component4.apply(this, arguments));
return _super4.apply(this, arguments);
}
Line.prototype.render = function render() {
var _this9 = this;
_createClass(Line, [{
key: "render",
value: function render() {
var _this6 = this;
return React.createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref3) {
return _this9.chartInstance = _ref3 && _ref3.chartInstance;
},
type: 'line'
}));
};
return /*#__PURE__*/_react["default"].createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref3) {
return _this6.chartInstance = _ref3 && _ref3.chartInstance;
},
type: "line"
}));
}
}]);
return Line;
}(React.Component);
}(_react["default"].Component);
export var Bar = function (_React$Component5) {
exports.Line = Line;
var Bar = /*#__PURE__*/function (_React$Component5) {
_inherits(Bar, _React$Component5);
var _super5 = _createSuper(Bar);
function Bar() {
_classCallCheck(this, Bar);
return _possibleConstructorReturn(this, _React$Component5.apply(this, arguments));
return _super5.apply(this, arguments);
}
Bar.prototype.render = function render() {
var _this11 = this;
_createClass(Bar, [{
key: "render",
value: function render() {
var _this7 = this;
return React.createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref4) {
return _this11.chartInstance = _ref4 && _ref4.chartInstance;
},
type: 'bar'
}));
};
return /*#__PURE__*/_react["default"].createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref4) {
return _this7.chartInstance = _ref4 && _ref4.chartInstance;
},
type: "bar"
}));
}
}]);
return Bar;
}(React.Component);
}(_react["default"].Component);
export var HorizontalBar = function (_React$Component6) {
exports.Bar = Bar;
var HorizontalBar = /*#__PURE__*/function (_React$Component6) {
_inherits(HorizontalBar, _React$Component6);
var _super6 = _createSuper(HorizontalBar);
function HorizontalBar() {
_classCallCheck(this, HorizontalBar);
return _possibleConstructorReturn(this, _React$Component6.apply(this, arguments));
return _super6.apply(this, arguments);
}
HorizontalBar.prototype.render = function render() {
var _this13 = this;
_createClass(HorizontalBar, [{
key: "render",
value: function render() {
var _this8 = this;
return React.createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref5) {
return _this13.chartInstance = _ref5 && _ref5.chartInstance;
},
type: 'horizontalBar'
}));
};
return /*#__PURE__*/_react["default"].createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref5) {
return _this8.chartInstance = _ref5 && _ref5.chartInstance;
},
type: "horizontalBar"
}));
}
}]);
return HorizontalBar;
}(React.Component);
}(_react["default"].Component);
export var Radar = function (_React$Component7) {
exports.HorizontalBar = HorizontalBar;
var Radar = /*#__PURE__*/function (_React$Component7) {
_inherits(Radar, _React$Component7);
var _super7 = _createSuper(Radar);
function Radar() {
_classCallCheck(this, Radar);
return _possibleConstructorReturn(this, _React$Component7.apply(this, arguments));
return _super7.apply(this, arguments);
}
Radar.prototype.render = function render() {
var _this15 = this;
_createClass(Radar, [{
key: "render",
value: function render() {
var _this9 = this;
return React.createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref6) {
return _this15.chartInstance = _ref6 && _ref6.chartInstance;
},
type: 'radar'
}));
};
return /*#__PURE__*/_react["default"].createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref6) {
return _this9.chartInstance = _ref6 && _ref6.chartInstance;
},
type: "radar"
}));
}
}]);
return Radar;
}(React.Component);
}(_react["default"].Component);
export var Polar = function (_React$Component8) {
exports.Radar = Radar;
var Polar = /*#__PURE__*/function (_React$Component8) {
_inherits(Polar, _React$Component8);
var _super8 = _createSuper(Polar);
function Polar() {
_classCallCheck(this, Polar);
return _possibleConstructorReturn(this, _React$Component8.apply(this, arguments));
return _super8.apply(this, arguments);
}
Polar.prototype.render = function render() {
var _this17 = this;
_createClass(Polar, [{
key: "render",
value: function render() {
var _this10 = this;
return React.createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref7) {
return _this17.chartInstance = _ref7 && _ref7.chartInstance;
},
type: 'polarArea'
}));
};
return /*#__PURE__*/_react["default"].createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref7) {
return _this10.chartInstance = _ref7 && _ref7.chartInstance;
},
type: "polarArea"
}));
}
}]);
return Polar;
}(React.Component);
}(_react["default"].Component);
export var Bubble = function (_React$Component9) {
exports.Polar = Polar;
var Bubble = /*#__PURE__*/function (_React$Component9) {
_inherits(Bubble, _React$Component9);
var _super9 = _createSuper(Bubble);
function Bubble() {
_classCallCheck(this, Bubble);
return _possibleConstructorReturn(this, _React$Component9.apply(this, arguments));
return _super9.apply(this, arguments);
}
Bubble.prototype.render = function render() {
var _this19 = this;
_createClass(Bubble, [{
key: "render",
value: function render() {
var _this11 = this;
return React.createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref8) {
return _this19.chartInstance = _ref8 && _ref8.chartInstance;
},
type: 'bubble'
}));
};
return /*#__PURE__*/_react["default"].createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref8) {
return _this11.chartInstance = _ref8 && _ref8.chartInstance;
},
type: "bubble"
}));
}
}]);
return Bubble;
}(React.Component);
}(_react["default"].Component);
export var Scatter = function (_React$Component10) {
exports.Bubble = Bubble;
var Scatter = /*#__PURE__*/function (_React$Component10) {
_inherits(Scatter, _React$Component10);
var _super10 = _createSuper(Scatter);
function Scatter() {
_classCallCheck(this, Scatter);
return _possibleConstructorReturn(this, _React$Component10.apply(this, arguments));
return _super10.apply(this, arguments);
}
Scatter.prototype.render = function render() {
var _this21 = this;
_createClass(Scatter, [{
key: "render",
value: function render() {
var _this12 = this;
return React.createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref9) {
return _this21.chartInstance = _ref9 && _ref9.chartInstance;
},
type: 'scatter'
}));
};
return /*#__PURE__*/_react["default"].createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref9) {
return _this12.chartInstance = _ref9 && _ref9.chartInstance;
},
type: "scatter"
}));
}
}]);
return Scatter;
}(React.Component);
}(_react["default"].Component);
export var defaults = Chart.defaults;
export { Chart };
exports.Scatter = Scatter;
var defaults = _chart["default"].defaults;
exports.defaults = defaults;

@@ -1,51 +0,76 @@

'use strict';
"use strict";
exports.__esModule = true;
exports.Chart = exports.defaults = exports.Scatter = exports.Bubble = exports.Polar = exports.Radar = exports.HorizontalBar = exports.Bar = exports.Line = exports.Pie = exports.Doughnut = undefined;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "Chart", {
enumerable: true,
get: function get() {
return _chart["default"];
}
});
exports.defaults = exports.Scatter = exports.Bubble = exports.Polar = exports.Radar = exports.HorizontalBar = exports.Bar = exports.Line = exports.Pie = exports.Doughnut = exports["default"] = void 0;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _react = _interopRequireDefault(require("react"));
var _react = require('react');
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react2 = _interopRequireDefault(_react);
var _chart = _interopRequireDefault(require("chart.js"));
var _propTypes = require('prop-types');
var _isEqual = _interopRequireDefault(require("lodash/isEqual"));
var _propTypes2 = _interopRequireDefault(_propTypes);
var _keyBy = _interopRequireDefault(require("lodash/keyBy"));
var _chart = require('chart.js');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var _chart2 = _interopRequireDefault(_chart);
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
var _isEqual = require('lodash/isEqual');
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
var _isEqual2 = _interopRequireDefault(_isEqual);
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
var _keyBy = require('lodash/keyBy');
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
var _keyBy2 = _interopRequireDefault(_keyBy);
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var NODE_ENV = typeof process !== 'undefined' && process.env && process.env.NODE_ENV;
var ChartComponent = function (_React$Component) {
var ChartComponent = /*#__PURE__*/function (_React$Component) {
_inherits(ChartComponent, _React$Component);
var _super = _createSuper(ChartComponent);
function ChartComponent() {
var _this;
_classCallCheck(this, ChartComponent);
var _this = _possibleConstructorReturn(this, _React$Component.call(this));
_this = _super.call(this);
_this.handleOnClick = function (event) {
_defineProperty(_assertThisInitialized(_this), "handleOnClick", function (event) {
var instance = _this.chartInstance;
var _this$props = _this.props,

@@ -56,4 +81,2 @@ getDatasetAtEvent = _this$props.getDatasetAtEvent,

onElementsClick = _this$props.onElementsClick;
getDatasetAtEvent && getDatasetAtEvent(instance.getDatasetAtEvent(event), event);

@@ -63,7 +86,7 @@ getElementAtEvent && getElementAtEvent(instance.getElementAtEvent(event), event);

onElementsClick && onElementsClick(instance.getElementsAtEvent(event), event); // Backward compatibility
};
});
_this.ref = function (element) {
_defineProperty(_assertThisInitialized(_this), "ref", function (element) {
_this.element = element;
};
});

@@ -74,266 +97,266 @@ _this.chartInstance = undefined;

ChartComponent.prototype.componentDidMount = function componentDidMount() {
this.renderChart();
};
ChartComponent.prototype.componentDidUpdate = function componentDidUpdate() {
if (this.props.redraw) {
this.destroyChart();
_createClass(ChartComponent, [{
key: "componentDidMount",
value: function componentDidMount() {
this.renderChart();
return;
}
}, {
key: "componentDidUpdate",
value: function componentDidUpdate() {
if (this.props.redraw) {
this.destroyChart();
this.renderChart();
return;
}
this.updateChart();
};
this.updateChart();
}
}, {
key: "shouldComponentUpdate",
value: function shouldComponentUpdate(nextProps) {
var _this$props2 = this.props,
redraw = _this$props2.redraw,
type = _this$props2.type,
options = _this$props2.options,
plugins = _this$props2.plugins,
legend = _this$props2.legend,
height = _this$props2.height,
width = _this$props2.width;
ChartComponent.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {
var _props = this.props,
redraw = _props.redraw,
type = _props.type,
options = _props.options,
plugins = _props.plugins,
legend = _props.legend,
height = _props.height,
width = _props.width;
if (nextProps.redraw === true) {
return true;
}
if (height !== nextProps.height || width !== nextProps.width) {
return true;
}
if (nextProps.redraw === true) {
return true;
}
if (type !== nextProps.type) {
return true;
}
if (height !== nextProps.height || width !== nextProps.width) {
return true;
}
if (!(0, _isEqual["default"])(legend, nextProps.legend)) {
return true;
}
if (type !== nextProps.type) {
return true;
}
if (!(0, _isEqual["default"])(options, nextProps.options)) {
return true;
}
if (!(0, _isEqual2.default)(legend, nextProps.legend)) {
return true;
}
var nextData = this.transformDataProp(nextProps);
if (!(0, _isEqual2.default)(options, nextProps.options)) {
return true;
}
if (!(0, _isEqual["default"])(this.shadowDataProp, nextData)) {
return true;
}
var nextData = this.transformDataProp(nextProps);
if (!(0, _isEqual2.default)(this.shadowDataProp, nextData)) {
return true;
return !(0, _isEqual["default"])(plugins, nextProps.plugins);
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
this.destroyChart();
}
}, {
key: "transformDataProp",
value: function transformDataProp(props) {
var data = props.data;
return !(0, _isEqual2.default)(plugins, nextProps.plugins);
};
if (typeof data == 'function') {
var node = this.element;
return data(node);
} else {
return data;
}
} // Chart.js directly mutates the data.dataset objects by adding _meta proprerty
// this makes impossible to compare the current and next data changes
// therefore we memoize the data prop while sending a fake to Chart.js for mutation.
// see https://github.com/chartjs/Chart.js/blob/master/src/core/core.controller.js#L615-L617
ChartComponent.prototype.componentWillUnmount = function componentWillUnmount() {
this.destroyChart();
};
}, {
key: "memoizeDataProps",
value: function memoizeDataProps() {
if (!this.props.data) {
return;
}
ChartComponent.prototype.transformDataProp = function transformDataProp(props) {
var data = props.data;
var data = this.transformDataProp(this.props);
this.shadowDataProp = _objectSpread(_objectSpread({}, data), {}, {
datasets: data.datasets && data.datasets.map(function (set) {
return _objectSpread({}, set);
})
});
this.saveCurrentDatasets(); // to remove the dataset metadata from this chart when the chart is destroyed
if (typeof data == 'function') {
var node = this.element;
return data(node);
} else {
return data;
}
};
}, {
key: "checkDatasets",
value: function checkDatasets(datasets) {
var isDev = NODE_ENV !== 'production' && NODE_ENV !== 'prod';
var usingCustomKeyProvider = this.props.datasetKeyProvider !== ChartComponent.getLabelAsKey;
var multipleDatasets = datasets.length > 1;
// Chart.js directly mutates the data.dataset objects by adding _meta proprerty
// this makes impossible to compare the current and next data changes
// therefore we memoize the data prop while sending a fake to Chart.js for mutation.
// see https://github.com/chartjs/Chart.js/blob/master/src/core/core.controller.js#L615-L617
if (isDev && multipleDatasets && !usingCustomKeyProvider) {
var shouldWarn = false;
datasets.forEach(function (dataset) {
if (!dataset.label) {
shouldWarn = true;
}
});
ChartComponent.prototype.memoizeDataProps = function memoizeDataProps() {
if (!this.props.data) {
return;
if (shouldWarn) {
console.error('[react-chartjs-2] Warning: Each dataset needs a unique key. By default, the "label" property on each dataset is used. Alternatively, you may provide a "datasetKeyProvider" as a prop that returns a unique key.');
}
}
}
}, {
key: "getCurrentDatasets",
value: function getCurrentDatasets() {
return this.chartInstance && this.chartInstance.config.data && this.chartInstance.config.data.datasets || [];
}
}, {
key: "saveCurrentDatasets",
value: function saveCurrentDatasets() {
var _this2 = this;
var data = this.transformDataProp(this.props);
this.shadowDataProp = _extends({}, data, {
datasets: data.datasets && data.datasets.map(function (set) {
return _extends({}, set);
})
});
this.saveCurrentDatasets(); // to remove the dataset metadata from this chart when the chart is destroyed
return data;
};
ChartComponent.prototype.checkDatasets = function checkDatasets(datasets) {
var isDev = NODE_ENV !== 'production' && NODE_ENV !== 'prod';
var usingCustomKeyProvider = this.props.datasetKeyProvider !== ChartComponent.getLabelAsKey;
var multipleDatasets = datasets.length > 1;
if (isDev && multipleDatasets && !usingCustomKeyProvider) {
var shouldWarn = false;
datasets.forEach(function (dataset) {
if (!dataset.label) {
shouldWarn = true;
}
this.datasets = this.datasets || {};
var currentDatasets = this.getCurrentDatasets();
currentDatasets.forEach(function (d) {
_this2.datasets[_this2.props.datasetKeyProvider(d)] = d;
});
if (shouldWarn) {
console.error('[react-chartjs-2] Warning: Each dataset needs a unique key. By default, the "label" property on each dataset is used. Alternatively, you may provide a "datasetKeyProvider" as a prop that returns a unique key.');
}
}
};
}, {
key: "updateChart",
value: function updateChart() {
var _this3 = this;
ChartComponent.prototype.getCurrentDatasets = function getCurrentDatasets() {
return this.chartInstance && this.chartInstance.config.data && this.chartInstance.config.data.datasets || [];
};
var options = this.props.options;
var data = this.memoizeDataProps(this.props);
if (!this.chartInstance) return;
ChartComponent.prototype.saveCurrentDatasets = function saveCurrentDatasets() {
var _this2 = this;
if (options) {
this.chartInstance.options = _chart["default"].helpers.configMerge(this.chartInstance.options, options);
} // Pipe datasets to chart instance datasets enabling
// seamless transitions
this.datasets = this.datasets || {};
var currentDatasets = this.getCurrentDatasets();
currentDatasets.forEach(function (d) {
_this2.datasets[_this2.props.datasetKeyProvider(d)] = d;
});
};
ChartComponent.prototype.updateChart = function updateChart() {
var _this3 = this;
var currentDatasets = this.getCurrentDatasets();
var nextDatasets = data.datasets || [];
this.checkDatasets(currentDatasets);
var currentDatasetsIndexed = (0, _keyBy["default"])(currentDatasets, this.props.datasetKeyProvider); // We can safely replace the dataset array, as long as we retain the _meta property
// on each dataset.
var options = this.props.options;
this.chartInstance.config.data.datasets = nextDatasets.map(function (next) {
var current = currentDatasetsIndexed[_this3.props.datasetKeyProvider(next)];
if (current && current.type === next.type && next.data) {
// Be robust to no data. Relevant for other update mechanisms as in chartjs-plugin-streaming.
// The data array must be edited in place. As chart.js adds listeners to it.
current.data.splice(next.data.length);
next.data.forEach(function (point, pid) {
current.data[pid] = next.data[pid];
});
var data = this.memoizeDataProps(this.props);
var _data = next.data,
otherProps = _objectWithoutProperties(next, ["data"]); // Merge properties. Notice a weakness here. If a property is removed
// from next, it will be retained by current and never disappears.
// Workaround is to set value to null or undefined in next.
if (!this.chartInstance) return;
if (options) {
this.chartInstance.options = _chart2.default.helpers.configMerge(this.chartInstance.options, options);
}
return _objectSpread(_objectSpread({}, current), otherProps);
} else {
return next;
}
});
// Pipe datasets to chart instance datasets enabling
// seamless transitions
var currentDatasets = this.getCurrentDatasets();
var nextDatasets = data.datasets || [];
this.checkDatasets(currentDatasets);
var datasets = data.datasets,
rest = _objectWithoutProperties(data, ["datasets"]);
var currentDatasetsIndexed = (0, _keyBy2.default)(currentDatasets, this.props.datasetKeyProvider);
this.chartInstance.config.data = _objectSpread(_objectSpread({}, this.chartInstance.config.data), rest);
this.chartInstance.update();
}
}, {
key: "renderChart",
value: function renderChart() {
var _this$props3 = this.props,
options = _this$props3.options,
legend = _this$props3.legend,
type = _this$props3.type,
plugins = _this$props3.plugins;
var node = this.element;
var data = this.memoizeDataProps();
// We can safely replace the dataset array, as long as we retain the _meta property
// on each dataset.
this.chartInstance.config.data.datasets = nextDatasets.map(function (next) {
var current = currentDatasetsIndexed[_this3.props.datasetKeyProvider(next)];
if (current && current.type === next.type && next.data) {
// Be robust to no data. Relevant for other update mechanisms as in chartjs-plugin-streaming.
// The data array must be edited in place. As chart.js adds listeners to it.
current.data.splice(next.data.length);
next.data.forEach(function (point, pid) {
current.data[pid] = next.data[pid];
});
var _data = next.data,
otherProps = _objectWithoutProperties(next, ['data']);
// Merge properties. Notice a weakness here. If a property is removed
// from next, it will be retained by current and never disappears.
// Workaround is to set value to null or undefined in next.
return _extends({}, current, otherProps);
} else {
return next;
if (typeof legend !== 'undefined' && !(0, _isEqual["default"])(ChartComponent.defaultProps.legend, legend)) {
options.legend = legend;
}
});
var datasets = data.datasets,
rest = _objectWithoutProperties(data, ['datasets']);
this.chartInstance.config.data = _extends({}, this.chartInstance.config.data, rest);
this.chartInstance.update();
};
ChartComponent.prototype.renderChart = function renderChart() {
var _props2 = this.props,
options = _props2.options,
legend = _props2.legend,
type = _props2.type,
plugins = _props2.plugins;
var node = this.element;
var data = this.memoizeDataProps();
if (typeof legend !== 'undefined' && !(0, _isEqual2.default)(ChartComponent.defaultProps.legend, legend)) {
options.legend = legend;
this.chartInstance = new _chart["default"](node, {
type: type,
data: data,
options: options,
plugins: plugins
});
}
}, {
key: "destroyChart",
value: function destroyChart() {
if (!this.chartInstance) {
return;
} // Put all of the datasets that have existed in the chart back on the chart
// so that the metadata associated with this chart get destroyed.
// This allows the datasets to be used in another chart. This can happen,
// for example, in a tabbed UI where the chart gets created each time the
// tab gets switched to the chart and uses the same data).
this.chartInstance = new _chart2.default(node, {
type: type,
data: data,
options: options,
plugins: plugins
});
};
ChartComponent.prototype.destroyChart = function destroyChart() {
if (!this.chartInstance) {
return;
this.saveCurrentDatasets();
var datasets = Object.values(this.datasets);
this.chartInstance.config.data.datasets = datasets;
this.chartInstance.destroy();
}
}, {
key: "render",
value: function render() {
var _this$props4 = this.props,
height = _this$props4.height,
width = _this$props4.width,
id = _this$props4.id;
return /*#__PURE__*/_react["default"].createElement("canvas", {
ref: this.ref,
height: height,
width: width,
id: id,
onClick: this.handleOnClick
});
}
}]);
// Put all of the datasets that have existed in the chart back on the chart
// so that the metadata associated with this chart get destroyed.
// This allows the datasets to be used in another chart. This can happen,
// for example, in a tabbed UI where the chart gets created each time the
// tab gets switched to the chart and uses the same data).
this.saveCurrentDatasets();
var datasets = Object.values(this.datasets);
this.chartInstance.config.data.datasets = datasets;
this.chartInstance.destroy();
};
ChartComponent.prototype.render = function render() {
var _props3 = this.props,
height = _props3.height,
width = _props3.width,
id = _props3.id;
return _react2.default.createElement('canvas', {
ref: this.ref,
height: height,
width: width,
id: id,
onClick: this.handleOnClick
});
};
return ChartComponent;
}(_react2.default.Component);
}(_react["default"].Component);
ChartComponent.getLabelAsKey = function (d) {
_defineProperty(ChartComponent, "getLabelAsKey", function (d) {
return d.label;
};
});
ChartComponent.propTypes = {
data: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]).isRequired,
getDatasetAtEvent: _propTypes2.default.func,
getElementAtEvent: _propTypes2.default.func,
getElementsAtEvent: _propTypes2.default.func,
height: _propTypes2.default.number,
legend: _propTypes2.default.object,
onElementsClick: _propTypes2.default.func,
options: _propTypes2.default.object,
plugins: _propTypes2.default.arrayOf(_propTypes2.default.object),
redraw: _propTypes2.default.bool,
_defineProperty(ChartComponent, "propTypes", {
data: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].func]).isRequired,
getDatasetAtEvent: _propTypes["default"].func,
getElementAtEvent: _propTypes["default"].func,
getElementsAtEvent: _propTypes["default"].func,
height: _propTypes["default"].number,
legend: _propTypes["default"].object,
onElementsClick: _propTypes["default"].func,
options: _propTypes["default"].object,
plugins: _propTypes["default"].arrayOf(_propTypes["default"].object),
redraw: _propTypes["default"].bool,
type: function type(props, propName, componentName) {
if (!_chart2.default.controllers[props[propName]]) {
if (!_chart["default"].controllers[props[propName]]) {
return new Error('Invalid chart type `' + props[propName] + '` supplied to' + ' `' + componentName + '`.');
}
},
width: _propTypes2.default.number,
datasetKeyProvider: _propTypes2.default.func
};
ChartComponent.defaultProps = {
width: _propTypes["default"].number,
datasetKeyProvider: _propTypes["default"].func
});
_defineProperty(ChartComponent, "defaultProps", {
legend: {

@@ -349,213 +372,277 @@ display: true,

datasetKeyProvider: ChartComponent.getLabelAsKey
};
exports.default = ChartComponent;
});
var Doughnut = exports.Doughnut = function (_React$Component2) {
var _default = ChartComponent;
exports["default"] = _default;
var Doughnut = /*#__PURE__*/function (_React$Component2) {
_inherits(Doughnut, _React$Component2);
var _super2 = _createSuper(Doughnut);
function Doughnut() {
_classCallCheck(this, Doughnut);
return _possibleConstructorReturn(this, _React$Component2.apply(this, arguments));
return _super2.apply(this, arguments);
}
Doughnut.prototype.render = function render() {
var _this5 = this;
_createClass(Doughnut, [{
key: "render",
value: function render() {
var _this4 = this;
return _react2.default.createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref) {
return _this5.chartInstance = _ref && _ref.chartInstance;
},
type: 'doughnut'
}));
};
return /*#__PURE__*/_react["default"].createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref) {
return _this4.chartInstance = _ref && _ref.chartInstance;
},
type: "doughnut"
}));
}
}]);
return Doughnut;
}(_react2.default.Component);
}(_react["default"].Component);
var Pie = exports.Pie = function (_React$Component3) {
exports.Doughnut = Doughnut;
var Pie = /*#__PURE__*/function (_React$Component3) {
_inherits(Pie, _React$Component3);
var _super3 = _createSuper(Pie);
function Pie() {
_classCallCheck(this, Pie);
return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));
return _super3.apply(this, arguments);
}
Pie.prototype.render = function render() {
var _this7 = this;
_createClass(Pie, [{
key: "render",
value: function render() {
var _this5 = this;
return _react2.default.createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref2) {
return _this7.chartInstance = _ref2 && _ref2.chartInstance;
},
type: 'pie'
}));
};
return /*#__PURE__*/_react["default"].createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref2) {
return _this5.chartInstance = _ref2 && _ref2.chartInstance;
},
type: "pie"
}));
}
}]);
return Pie;
}(_react2.default.Component);
}(_react["default"].Component);
var Line = exports.Line = function (_React$Component4) {
exports.Pie = Pie;
var Line = /*#__PURE__*/function (_React$Component4) {
_inherits(Line, _React$Component4);
var _super4 = _createSuper(Line);
function Line() {
_classCallCheck(this, Line);
return _possibleConstructorReturn(this, _React$Component4.apply(this, arguments));
return _super4.apply(this, arguments);
}
Line.prototype.render = function render() {
var _this9 = this;
_createClass(Line, [{
key: "render",
value: function render() {
var _this6 = this;
return _react2.default.createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref3) {
return _this9.chartInstance = _ref3 && _ref3.chartInstance;
},
type: 'line'
}));
};
return /*#__PURE__*/_react["default"].createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref3) {
return _this6.chartInstance = _ref3 && _ref3.chartInstance;
},
type: "line"
}));
}
}]);
return Line;
}(_react2.default.Component);
}(_react["default"].Component);
var Bar = exports.Bar = function (_React$Component5) {
exports.Line = Line;
var Bar = /*#__PURE__*/function (_React$Component5) {
_inherits(Bar, _React$Component5);
var _super5 = _createSuper(Bar);
function Bar() {
_classCallCheck(this, Bar);
return _possibleConstructorReturn(this, _React$Component5.apply(this, arguments));
return _super5.apply(this, arguments);
}
Bar.prototype.render = function render() {
var _this11 = this;
_createClass(Bar, [{
key: "render",
value: function render() {
var _this7 = this;
return _react2.default.createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref4) {
return _this11.chartInstance = _ref4 && _ref4.chartInstance;
},
type: 'bar'
}));
};
return /*#__PURE__*/_react["default"].createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref4) {
return _this7.chartInstance = _ref4 && _ref4.chartInstance;
},
type: "bar"
}));
}
}]);
return Bar;
}(_react2.default.Component);
}(_react["default"].Component);
var HorizontalBar = exports.HorizontalBar = function (_React$Component6) {
exports.Bar = Bar;
var HorizontalBar = /*#__PURE__*/function (_React$Component6) {
_inherits(HorizontalBar, _React$Component6);
var _super6 = _createSuper(HorizontalBar);
function HorizontalBar() {
_classCallCheck(this, HorizontalBar);
return _possibleConstructorReturn(this, _React$Component6.apply(this, arguments));
return _super6.apply(this, arguments);
}
HorizontalBar.prototype.render = function render() {
var _this13 = this;
_createClass(HorizontalBar, [{
key: "render",
value: function render() {
var _this8 = this;
return _react2.default.createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref5) {
return _this13.chartInstance = _ref5 && _ref5.chartInstance;
},
type: 'horizontalBar'
}));
};
return /*#__PURE__*/_react["default"].createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref5) {
return _this8.chartInstance = _ref5 && _ref5.chartInstance;
},
type: "horizontalBar"
}));
}
}]);
return HorizontalBar;
}(_react2.default.Component);
}(_react["default"].Component);
var Radar = exports.Radar = function (_React$Component7) {
exports.HorizontalBar = HorizontalBar;
var Radar = /*#__PURE__*/function (_React$Component7) {
_inherits(Radar, _React$Component7);
var _super7 = _createSuper(Radar);
function Radar() {
_classCallCheck(this, Radar);
return _possibleConstructorReturn(this, _React$Component7.apply(this, arguments));
return _super7.apply(this, arguments);
}
Radar.prototype.render = function render() {
var _this15 = this;
_createClass(Radar, [{
key: "render",
value: function render() {
var _this9 = this;
return _react2.default.createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref6) {
return _this15.chartInstance = _ref6 && _ref6.chartInstance;
},
type: 'radar'
}));
};
return /*#__PURE__*/_react["default"].createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref6) {
return _this9.chartInstance = _ref6 && _ref6.chartInstance;
},
type: "radar"
}));
}
}]);
return Radar;
}(_react2.default.Component);
}(_react["default"].Component);
var Polar = exports.Polar = function (_React$Component8) {
exports.Radar = Radar;
var Polar = /*#__PURE__*/function (_React$Component8) {
_inherits(Polar, _React$Component8);
var _super8 = _createSuper(Polar);
function Polar() {
_classCallCheck(this, Polar);
return _possibleConstructorReturn(this, _React$Component8.apply(this, arguments));
return _super8.apply(this, arguments);
}
Polar.prototype.render = function render() {
var _this17 = this;
_createClass(Polar, [{
key: "render",
value: function render() {
var _this10 = this;
return _react2.default.createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref7) {
return _this17.chartInstance = _ref7 && _ref7.chartInstance;
},
type: 'polarArea'
}));
};
return /*#__PURE__*/_react["default"].createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref7) {
return _this10.chartInstance = _ref7 && _ref7.chartInstance;
},
type: "polarArea"
}));
}
}]);
return Polar;
}(_react2.default.Component);
}(_react["default"].Component);
var Bubble = exports.Bubble = function (_React$Component9) {
exports.Polar = Polar;
var Bubble = /*#__PURE__*/function (_React$Component9) {
_inherits(Bubble, _React$Component9);
var _super9 = _createSuper(Bubble);
function Bubble() {
_classCallCheck(this, Bubble);
return _possibleConstructorReturn(this, _React$Component9.apply(this, arguments));
return _super9.apply(this, arguments);
}
Bubble.prototype.render = function render() {
var _this19 = this;
_createClass(Bubble, [{
key: "render",
value: function render() {
var _this11 = this;
return _react2.default.createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref8) {
return _this19.chartInstance = _ref8 && _ref8.chartInstance;
},
type: 'bubble'
}));
};
return /*#__PURE__*/_react["default"].createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref8) {
return _this11.chartInstance = _ref8 && _ref8.chartInstance;
},
type: "bubble"
}));
}
}]);
return Bubble;
}(_react2.default.Component);
}(_react["default"].Component);
var Scatter = exports.Scatter = function (_React$Component10) {
exports.Bubble = Bubble;
var Scatter = /*#__PURE__*/function (_React$Component10) {
_inherits(Scatter, _React$Component10);
var _super10 = _createSuper(Scatter);
function Scatter() {
_classCallCheck(this, Scatter);
return _possibleConstructorReturn(this, _React$Component10.apply(this, arguments));
return _super10.apply(this, arguments);
}
Scatter.prototype.render = function render() {
var _this21 = this;
_createClass(Scatter, [{
key: "render",
value: function render() {
var _this12 = this;
return _react2.default.createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref9) {
return _this21.chartInstance = _ref9 && _ref9.chartInstance;
},
type: 'scatter'
}));
};
return /*#__PURE__*/_react["default"].createElement(ChartComponent, _extends({}, this.props, {
ref: function ref(_ref9) {
return _this12.chartInstance = _ref9 && _ref9.chartInstance;
},
type: "scatter"
}));
}
}]);
return Scatter;
}(_react2.default.Component);
}(_react["default"].Component);
var defaults = exports.defaults = _chart2.default.defaults;
exports.Chart = _chart2.default;
exports.Scatter = Scatter;
var defaults = _chart["default"].defaults;
exports.defaults = defaults;
{
"name": "react-chartjs-2",
"version": "2.9.0",
"version": "2.10.0",
"description": "react-chartjs-2",

@@ -10,3 +10,3 @@ "main": "lib/index.js",

"homepage": "https://github.com/jerairrest/react-chartjs-2",
"license" : "MIT" ,
"license": "MIT",
"repository": {

@@ -20,48 +20,50 @@ "type": "git",

"dependencies": {
"lodash": "^4.17.4",
"prop-types": "^15.5.8"
"lodash": "^4.17.19",
"prop-types": "^15.7.2"
},
"devDependencies": {
"@babel/cli": "^7.10.5",
"@babel/core": "^7.10.5",
"@babel/plugin-proposal-class-properties": "^7.10.4",
"@babel/plugin-transform-runtime": "^7.10.5",
"@babel/preset-env": "^7.10.4",
"@babel/preset-react": "^7.10.4",
"@babel/register": "^7.10.5",
"@babel/runtime": "^7.10.5",
"@kadira/storybook": "^2.35.3",
"babel-cli": "^6.26.0",
"babel-core": "^6.18.2",
"babel-eslint": "^4.1.3",
"babel-loader": "^7.1.1",
"babel-plugin-external-helpers": "^6.22.0",
"babel-preset-es2015": "^6.13.2",
"babel-preset-react": "^6.11.1",
"babel-preset-stage-1": "^6.13.0",
"babel-register": "^6.18.0",
"babelify": "^7.3.0",
"brfs": "^1.4.3",
"canvas": "^1.6.2",
"canvas-prebuilt": "^1.6.5-prerelease.1",
"chai": "^3.5.0",
"@rollup/plugin-alias": "^3.1.1",
"@rollup/plugin-babel": "^5.1.0",
"@rollup/plugin-commonjs": "^14.0.0",
"@rollup/plugin-node-resolve": "^8.4.0",
"@rollup/plugin-replace": "^2.3.3",
"@storybook/react": "^5.3.19",
"babelify": "^10.0.0",
"brfs": "^2.0.2",
"canvas": "^2.6.1",
"chai": "^4.2.0",
"chart.js": "2.6.0",
"cross-env": "^5.0.0",
"css-loader": "^0.28.5",
"debug": "^2.4.1",
"enzyme": "^2.6.0",
"eslint": "^1.6.0",
"eslint-plugin-react": "^3.5.1",
"extract-text-webpack-plugin": "^3.0.0",
"gh-pages": "^1.0.0",
"gulp": "^3.9.0",
"html-webpack-plugin": "^2.30.1",
"jsdom": "^9.8.3",
"mocha": "^3.1.2",
"rcolor": "^1.0.1",
"cross-env": "^7.0.2",
"css-loader": "^3.6.0",
"debug": "^4.1.1",
"enzyme": "^3.11.0",
"enzyme-adapter-react-15": "^1.4.1",
"eslint": "^7.5.0",
"eslint-plugin-react": "^7.20.3",
"gh-pages": "^3.1.0",
"gulp": "^4.0.2",
"jsdom": "^16.3.0",
"mocha": "^8.0.1",
"rcolor": "^2.0.2",
"react": "^0.14 || ^15.0.0-rc || ^15.0",
"react-addons-test-utils": "^15.3.2",
"react-addons-test-utils": "^15.6.2",
"react-dom": "^0.14 || ^15.0.0-rc || ^15.0",
"rimraf": "^2.6.1",
"rollup": "^0.47.6",
"rollup-plugin-babel": "^3.0.2",
"rollup-plugin-commonjs": "^8.1.0",
"rollup-plugin-node-resolve": "^3.0.0",
"rollup-plugin-replace": "^2.0.0",
"rollup-plugin-uglify": "^2.0.1",
"sinon": "^1.17.6",
"webpack": "^3.5.5",
"webpack-dev-server": "^2.7.1"
"react-test-renderer": "15",
"rimraf": "^3.0.2",
"rollup": "^2.22.1",
"rollup-plugin-generate-html-template": "^1.7.0",
"rollup-plugin-uglify": "^6.0.4",
"serve": "^11.3.2",
"sinon": "^9.0.2",
"webpack": "^4.43.0",
"webpack-dev-server": "^3.11.0"
},

@@ -85,6 +87,5 @@ "peerDependencies": {

"build": "npm run clean && npm run build:cjs && npm run build:es && npm run build:umd && npm run build:umd:min",
"examples": "webpack-dev-server --config example/webpack.config.babel.js --progress",
"examples": "rollup -c example/rollup.config.js",
"examples:clean": "rimraf example/dist",
"examples:build": "cross-env BABEL_ENV=development NODE_ENV=production webpack --config example/webpack.config.babel.js --progress",
"examples:deploy": "npm run examples:clean && npm run examples:build && gh-pages -d example/dist",
"examples:deploy": "npm run examples:clean && npm run examples && gh-pages -d example/dist",
"start": "npm run examples",

@@ -91,0 +92,0 @@ "lint": "eslint ./; true",

@@ -47,3 +47,9 @@ [![build status]( https://img.shields.io/travis/jerairrest/react-chartjs-2.svg?branch=master&style=flat-square)](https://travis-ci.org/jerairrest/react-chartjs-2)

## Installation via YARN
```bash
yarn add react-chartjs-2 chart.js
```
## Usage

@@ -180,3 +186,3 @@

A function to be called when mouse clicked on chart elememts, will return all element at that point as an array. [Check](https://github.com/chartjs/Chart.js/blob/master/docs/09-Advanced.md#getelementsatevente)
A function to be called when mouse clicked on chart elememts, will return all element at that point as an array. [Check](https://github.com/chartjs/Chart.js/blob/master/docs/docs/developers/api.md#getelementsatevente)

@@ -193,3 +199,3 @@ ```js

Calling getElementAtEvent(event) on your Chart instance passing an argument of an event, or jQuery event, will return the single element at the event position. If there are multiple items within range, only the first is returned [Check](https://github.com/chartjs/Chart.js/blob/master/docs/09-Advanced.md#getelementatevente)
Calling getElementAtEvent(event) on your Chart instance passing an argument of an event, or jQuery event, will return the single element at the event position. If there are multiple items within range, only the first is returned [Check](https://github.com/chartjs/Chart.js/blob/master/docs/docs/developers/api.md#getelementatevente)

@@ -205,3 +211,3 @@ ```js

Looks for the element under the event point, then returns all elements from that dataset. This is used internally for 'dataset' mode highlighting [Check](https://github.com/chartjs/Chart.js/blob/master/docs/09-Advanced.md#getdatasetatevente)
Looks for the element under the event point, then returns all elements from that dataset. This is used internally for 'dataset' mode highlighting [Check](https://github.com/chartjs/Chart.js/blob/master/docs/docs/developers/api.md#getdatasetatevente)

@@ -208,0 +214,0 @@ ```js

@@ -1,28 +0,34 @@

import React from 'react';
import { mount } from 'enzyme';
import { expect } from 'chai';
import { jsdom } from 'jsdom';
import sinon from 'sinon';
import React from "react";
import { mount, configure, shallow } from "enzyme";
import { expect } from "chai";
import { JSDOM } from "jsdom";
import sinon from "sinon";
import Adapter from "enzyme-adapter-react-15";
import Chart, { Chart as ChartConstructor } from '../../src/index';
configure({ adapter: new Adapter() });
import Chart, { Chart as ChartConstructor } from "../../src/index";
const noop = () => {};
const createDOM = () => jsdom('<!doctype html><html><body><div></div></body></html>');
const createDOM = () =>
new JSDOM("<!doctype html><html><body><div></div></body></html>", {
url: "https://localhost",
});
describe('<Chart />', () => {
describe("<Chart />", () => {
let DOM;
const data = {
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
labels: ["January", "February", "March", "April", "May", "June", "July"],
datasets: [
{
label: 'My First dataset',
backgroundColor: 'rgba(255,99,132,0.2)',
borderColor: 'rgba(255,99,132,1)',
label: "My First dataset",
backgroundColor: "rgba(255,99,132,0.2)",
borderColor: "rgba(255,99,132,1)",
borderWidth: 1,
hoverBackgroundColor: 'rgba(255,99,132,0.4)',
hoverBorderColor: 'rgba(255,99,132,1)',
data: [65, 59, 80, 81, 56, 55, 40]
}
]
hoverBackgroundColor: "rgba(255,99,132,0.4)",
hoverBorderColor: "rgba(255,99,132,1)",
data: [65, 59, 80, 81, 56, 55, 40],
},
],
};

@@ -33,11 +39,15 @@

chartInstance.getDatasetAtEvent = function (e) {
return ChartConstructor.Interaction.modes.dataset(this, e, this.options);
return ChartConstructor.Interaction.modes.dataset(
this,
e,
this.options
);
};
}
},
});
const mountComponent = props => mount(
<Chart data={data} {...props} />,
{ attachTo: DOM.body.firstChild }
);
const mountComponent = (props) =>
mount(<Chart data={data} {...props} />, {
attachTo: DOM.window.document.body.firstChild,
});

@@ -48,11 +58,6 @@ beforeEach(() => {

it('renders', () => {
it("renders chart on props.redraw(true)", () => {
const spy = sinon.spy(Chart.prototype, "renderChart");
const wrapper = mountComponent();
expect(wrapper).to.be.truthy;
});
it('renders chart on props.redraw(true)', () => {
const spy = sinon.spy(Chart.prototype, 'renderChart');
const wrapper = mountComponent();
expect(spy.callCount).to.equal(1);

@@ -66,4 +71,4 @@

it('renders on props.height change', () => {
const spy = sinon.spy(Chart.prototype, 'render');
it("renders on props.height change", () => {
const spy = sinon.spy(Chart.prototype, "render");
const wrapper = mountComponent({ height: 100 });

@@ -79,4 +84,4 @@

it('renders on props.width change', () => {
const spy = sinon.spy(Chart.prototype, 'render');
it("renders on props.width change", () => {
const spy = sinon.spy(Chart.prototype, "render");
const wrapper = mountComponent({ width: 100 });

@@ -92,13 +97,13 @@

it('renders on props.type change', () => {
const spy = sinon.spy(Chart.prototype, 'render');
const wrapper = mountComponent({ type: 'line' });
it("renders on props.type change", () => {
const spy = sinon.spy(Chart.prototype, "render");
const wrapper = mountComponent({ type: "line" });
expect(spy.callCount).to.equal(1);
wrapper.setProps({ type: 'line' });
wrapper.setProps({ type: "line" });
expect(spy.callCount).to.equal(1);
wrapper.setProps({ type: 'bar' });
wrapper.setProps({ type: "bar" });

@@ -110,4 +115,4 @@ expect(spy.callCount).to.equal(2);

it('renders on props.legend change', () => {
const spy = sinon.spy(Chart.prototype, 'render');
it("renders on props.legend change", () => {
const spy = sinon.spy(Chart.prototype, "render");
const wrapper = mountComponent({ legend: {} });

@@ -128,4 +133,4 @@

it('renders on props.options change', () => {
const spy = sinon.spy(Chart.prototype, 'render');
it("renders on props.options change", () => {
const spy = sinon.spy(Chart.prototype, "render");
const wrapper = mountComponent({ options: {} });

@@ -146,4 +151,4 @@

it('renders on props.data change', () => {
const spy = sinon.spy(Chart.prototype, 'render');
it("renders on props.data change", () => {
const spy = sinon.spy(Chart.prototype, "render");
const wrapper = mountComponent();

@@ -159,4 +164,4 @@

it('doesn\'t render when props didn\'t change', () => {
const spy = sinon.spy(Chart.prototype, 'render');
it("doesn't render when props didn't change", () => {
const spy = sinon.spy(Chart.prototype, "render");
const wrapper = mountComponent();

@@ -172,4 +177,4 @@

it('doesn\'t render when function references are changed', () => {
const spy = sinon.spy(Chart.prototype, 'render');
it("doesn't render when function references are changed", () => {
const spy = sinon.spy(Chart.prototype, "render");
const wrapper = mountComponent();

@@ -187,7 +192,7 @@

it('calls getDatasetAtEvent', () => {
it("calls getDatasetAtEvent", () => {
const getDatasetAtEvent = sinon.spy();
const wrapper = mountComponent({ getDatasetAtEvent });
wrapper.find('canvas').simulate('click');
wrapper.find("canvas").simulate("click");

@@ -197,7 +202,7 @@ expect(getDatasetAtEvent.called).to.equal(true);

it('calls getElementAtEvent', () => {
it("calls getElementAtEvent", () => {
const getElementAtEvent = sinon.spy();
const wrapper = mountComponent({ getElementAtEvent });
wrapper.find('canvas').simulate('click');
wrapper.find("canvas").simulate("click");

@@ -207,7 +212,7 @@ expect(getElementAtEvent.called).to.equal(true);

it('calls getElementsAtEvent', () => {
it("calls getElementsAtEvent", () => {
const getElementsAtEvent = sinon.spy();
const wrapper = mountComponent({ getElementsAtEvent });
wrapper.find('canvas').simulate('click');
wrapper.find("canvas").simulate("click");

@@ -217,7 +222,7 @@ expect(getElementsAtEvent.called).to.equal(true);

it('calls onElementsClick', () => {
it("calls onElementsClick", () => {
const onElementsClick = sinon.spy();
const wrapper = mountComponent({ onElementsClick });
wrapper.find('canvas').simulate('click');
wrapper.find("canvas").simulate("click");

@@ -227,4 +232,4 @@ expect(onElementsClick.called).to.equal(true);

describe('props.data function', () => {
it('calls data func with canvas node', () => {
describe("props.data function", () => {
it("calls data func with canvas node", () => {
const resultData = { test: 1 };

@@ -234,3 +239,3 @@ const dataFn = sinon.spy((canvas) => resultData);

const canvas = wrapper.find('canvas').at(0).node;
const canvas = wrapper.find("canvas").at(0).getDOMNode();

@@ -242,6 +247,6 @@ expect(dataFn.callCount).to.equal(1);

describe('checkDatasets', () => {
describe("checkDatasets", () => {
let consoleStub = null;
beforeEach(() => {
consoleStub = sinon.stub(global.console, 'error');
consoleStub = sinon.stub(global.console, "error");
});

@@ -254,24 +259,42 @@

it('should log error to console if datasets don\'t have a label', () => {
it("should log error to console if datasets don't have a label", () => {
const wrapper = mountComponent({ data: {} });
wrapper.setProps({
data: {
datasets: [
{
_id: '238940890234809234',
data: [10, 20, 10, 20, 10, 20, 10]
},
{
_id: '098340598345839455',
data: [50, 100, 50, 100, 50, 100, 50]
}
]
}
data: {
datasets: [
{
_id: "23894089023809234",
data: [10, 20, 10, 20, 10, 20, 10],
},
{
_id: "098340598345839455",
data: [50, 100, 50, 100, 50, 100, 50],
},
],
},
});
wrapper.update();
// Updating twice since 'update' doesn't call the entire lifecycle
wrapper.setProps({
data: {
datasets: [
{
_id: "23894089023809234",
data: [10, 20, 10, 20, 11, 20, 10],
},
{
_id: "098340598345839455",
data: [50, 100, 50, 100, 50, 100, 50],
},
],
},
});
wrapper.update();
expect(consoleStub.callCount).to.equal(1);
});
it('should not log error to console if all datasets have a label', () => {
it("should not log error to console if all datasets have a label", () => {
const wrapper = mountComponent({ data: {} });

@@ -282,11 +305,11 @@ wrapper.setProps({

{
label: 'My first dataset',
data: [10, 20, 10, 20, 10, 20, 10]
label: "My first dataset",
data: [10, 20, 10, 20, 10, 20, 10],
},
{
label: 'My second dataset',
data: [50, 100, 50, 100, 50, 100, 50]
}
]
}
label: "My second dataset",
data: [50, 100, 50, 100, 50, 100, 50],
},
],
},
});

@@ -298,17 +321,17 @@ wrapper.update();

it('should not log error to console if a custom datasetKeyProvider is provided', () => {
it("should not log error to console if a custom datasetKeyProvider is provided", () => {
const wrapper = mountComponent({ datasetKeyProvider: (d) => d._id });
wrapper.setProps({
data: {
datasets: [
{
_id: '238940890234809234',
data: [10, 20, 10, 20, 10, 20, 10]
},
{
_id: '098340598345839455',
data: [50, 100, 50, 100, 50, 100, 50]
}
]
}
data: {
datasets: [
{
_id: "238940890234809234",
data: [10, 20, 10, 20, 10, 20, 10],
},
{
_id: "098340598345839455",
data: [50, 100, 50, 100, 50, 100, 50],
},
],
},
});

@@ -315,0 +338,0 @@ wrapper.update();

@@ -1,15 +0,9 @@

require('babel-register')();
require('@babel/register')();
var canvas;
try{
canvas = require('canvas');
}
catch(e){
canvas = require('canvas-prebuilt');
}
var canvas = require('canvas');
const jsdom = require('jsdom');
const document = jsdom.jsdom();
const window = document.defaultView;
const { window } = new jsdom.JSDOM(`<!DOCTYPE html>`, { url: 'https://localhost' });
const canvasMethods = [

@@ -16,0 +10,0 @@ 'HTMLCanvasElement',

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc