Cube('pandav:/com/pieChart3d/1.0.1/src/pie.jsx',['pandav:/npm/react/17.0.2','pandav:/com/pieChart3d/1.0.1/src/three','pandav:/npm/d3/5.16.0/dist/d3','pandav:/npm/jquery/2.1.4','pandav:/com/pieChart3d/1.0.1/animate','pandav:/npm/d3-color/3.0.1','pandav:/com/cube-chart/0.0.1/Legend','pandav:/com/cube-chart/0.0.1/pieLegendFormatter','pandav:/com/cube-chart/0.0.1/util'],function(a,b,c){function d(a){"@babel/helpers - typeof";return d='function'==typeof Symbol&&'symbol'==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&'function'==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?'symbol':typeof a},d(a)}function f(a,b){if(!(a instanceof b))throw new TypeError('Cannot call a class as a function')}function g(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,'value'in c&&(c.writable=!0),Object.defineProperty(a,j(c.key),c)}function h(a,b,c){return b&&g(a.prototype,b),c&&g(a,c),Object.defineProperty(a,'prototype',{writable:!1}),a}function j(a){var b=k(a,'string');return'symbol'==d(b)?b:b+''}function k(a,b){if('object'!=d(a)||!a)return a;var c=a[Symbol.toPrimitive];if(void 0!==c){var f=c.call(a,b||'default');if('object'!=d(f))return f;throw new TypeError('@@toPrimitive must return a primitive value.')}return('string'===b?String:Number)(a)}function l(a,b,c){return b=q(b),m(a,p()?Reflect.construct(b,c||[],q(a).constructor):b.apply(a,c))}function m(a,b){if(b&&('object'===d(b)||'function'==typeof b))return b;if(void 0!==b)throw new TypeError('Derived constructors may only return object or undefined');return n(a)}function n(a){if(void 0===a)throw new ReferenceError('this hasn\'t been initialised - super() hasn\'t been called');return a}function p(){try{var a=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(a){}return(p=function b(){return!!a})()}function q(a){return q=Object.setPrototypeOf?Object.getPrototypeOf.bind():function b(a){return a.__proto__||Object.getPrototypeOf(a)},q(a)}function r(a,b){if('function'!=typeof b&&null!==b)throw new TypeError('Super expression must either be null or a function');a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,writable:!0,configurable:!0}}),Object.defineProperty(a,'prototype',{writable:!1}),b&&s(a,b)}function s(a,b){return s=Object.setPrototypeOf?Object.setPrototypeOf.bind():function c(a,b){return a.__proto__=b,a},s(a,b)}function t(a){a&&(a.map&&(a.map.dispose(),a.map=void 0),a.normalMap&&(a.normalMap.dispose(),a.normalMap=void 0),a.specularMap&&(a.specularMap.dispose(),a.specularMap=void 0),a.bumpMap&&(a.bumpMap.dispose(),a.bumpMap=void 0),a.dispose(),a=void 0)}function u(a){a.geometry&&(a.geometry.dispose(),a.geometry=void 0),a.material&&a.material instanceof Array?a.material.forEach(function(a){return t(a)}):a.material&&t(a.material)}function v(a){a.traverse(function(a){return u(a)})}var w=c('pandav:/npm/react/17.0.2'),z=c('pandav:/com/pieChart3d/1.0.1/src/three'),A=c('pandav:/npm/d3/5.16.0/dist/d3'),i=c('pandav:/npm/jquery/2.1.4'),o=c('pandav:/com/pieChart3d/1.0.1/animate'),x=c('pandav:/npm/d3-color/3.0.1'),y=c('pandav:/com/cube-chart/0.0.1/Legend'),B=c('pandav:/com/cube-chart/0.0.1/pieLegendFormatter'),C=c('pandav:/com/cube-chart/0.0.1/util'),D=function c(a){var d=1<arguments.length&&void 0!==arguments[1]?arguments[1]:255,f=x.color(a),h=f.r,i=f.g,g=f.b,b=f.opacity,j=void 0===b?1:b;return{r:h/d,g:i/d,b:g/d,a:j}},E=function b(a){var c=1<arguments.length&&void 0!==arguments[1]?arguments[1]:['y','z','p'];return a.map(function(a){for(var b,d=0;d<c.length;d++)if(b=c[d],b in a){var f=a[b];return'string'==typeof f?C.createObject(C.createObject({},a),{},C.defineProperty({},b,+f)):a}return a})},F=function c(a,b){'{}'==JSON.stringify(b)&&(b=[]);var d,f={};return d=a.some(function(a){return''!=a.mapping.fieldName}),d?(a.map(function(a){f[a.mapping.fieldName]={color:a.color,displayName:a.mapping.displayName}}),f.other={color:a[a.length-1].color,displayName:a[a.length-1].mapping.displayName}):(f.arr=[],a.map(function(a){f.arr.push({color:a.color,displayName:a.displayName})})),E(b).map(function(a,b){var c=d?f[a.s]?f[a.s]:f.other:f.arr[b];return{s:c.displayName?c.displayName:a.s,color:c.color,value:a.value}})},G=function(a){var c=Math.PI;function d(a){var b;f(this,d),b=l(this,d,[a]);var c=a.data,g=a.config;b.config=g;var h=g.chart,i=h.margin,j=h.devicePixelRatio,k=g.series.order;b.left=i.marginLeft,b.top=i.marginTop;var m=g.series.series,n=F(m,c);return b.data=''==k?n.reverse():'asc'==k?n.slice(0).sort(function(c,a){return a.value-c.value}):n.slice(0).sort(function(c,a){return c.value-a.value}),b.container=w.createRef(),b.scene=new z.Scene,b.renderer=new z.WebGLRenderer({alpha:!0,antialias:!0}),b.radius=20,b.opacity=[],b.state={currentIndex:0,value:b.data[0]&&b.data[0].value||0,s:b.data[0]&&b.data[0].s||'',devicePixelRatio:j||window.devicePixelRatio},b.leaveLock=!1,b.paintData=b.getPaintData(b.data,b.config).reverse(),b}return r(d,a),h(d,[{key:'setCameraType',value:function b(a){'perspective'===a?this.camera=new z.PerspectiveCamera(75,1,1,1e3):'orthographic'==a&&(this.camera=new z.OrthographicCamera(-24,24,24,-24,1,1e3))}},{key:'setCameraPosition',value:function d(a,b){this.camera.position.z=a.z,this.camera.position.y=a.y,this.camera.position.x=a.x,this.camera.rotation.x=b.x*c/180,this.camera.rotation.y=b.y*c/180,this.camera.rotation.z=b.z*c/180}},{key:'initRenderer',value:function a(){var b=this.config.chart,c=this.props,d=c.width,f=c.height,g=b.margin,h=g.top,i=void 0===h?0:h,j=g.right,k=void 0===j?0:j,l=g.bottom,m=void 0===l?0:l,n=g.left,o=void 0===n?0:n;this.setRendererSize(d-o-k,f-i-m),this.container.current.appendChild(this.renderer.domElement)}},{key:'setRendererSize',value:function c(a,b){this.renderer.setSize(a,b)}},{key:'addLight',value:function a(){this.ambientLight=new z.AmbientLight('#fff',1),this.scene.add(this.ambientLight),this.directionLight=new z.DirectionalLight('#fff',.3),this.directionLight.position.set(0,0,40),this.scene.add(this.directionLight)}},{key:'addPie',value:function d(a,b){var f=this;if(a&&0<a.length){a.reverse();var g=b.pie.pie,h=g.outerRadius,i=void 0===h?1:h,j=g.innerRadius,k=void 0===j?0:j;this.cleanPie(),this.pieChartGroup=new z.Group,this.pieShapeGroup=new z.Group,this.opacity=[],a.map(function(d,h){var j=D(d.color),l=j.r,m=j.g,g=j.b,b=j.a,a=new z.Color(l,m,g),n=new z.MeshLambertMaterial({color:a,transparent:!0,opacity:b});f.opacity.push(b);var o={depth:d.height,bevelEnabled:!1},p=new z.Shape;p.absarc(0,0,i*f.radius,d.startAngle,d.endAngle,!1),0==k*f.radius?p.lineTo(0,0):p.absarc(0,0,k*f.radius,d.endAngle,d.startAngle,!0);var q=new z.ExtrudeGeometry(p,o),r=new z.Mesh(q,n);f.pieShapeGroup.add(r),f.pieChartGroup.rotation.x=-c/2}),this.pieChartGroup.add(this.pieShapeGroup),this.scene.add(this.pieChartGroup)}else this.cleanPie()}},{key:'renderDom',value:function a(){this.renderer.render(this.scene,this.camera)}},{key:'startInterval',value:function c(a,b){var d=this;this.clearInterval(),this.animateHandler(a,b),this.leaveLock=!1;var f=this;this.interval=A.interval(function(){var b=d.state.currentIndex,c=d.data;d.paintData&&d.paintData.length&&(b=++b>=c.length?0:b,d.setState({currentIndex:b},function(){f.animateHandler(a,b)}),d.getRelativeData(b,d.props))},1e3*a.interval)}},{key:'animateHandler',value:function c(a,b){var d=this;if(this.pieShapeGroup&&this.pieShapeGroup.children&&this.pieShapeGroup.children[this.state.currentIndex]){this.bieTween&&this.bieTween.forEach(function(a){a.stop()}),this.bieTween=[];var f=this.paintData,g=f&&f[b]&&f[b].value||0,h=f&&f[b]&&f[b].s||'';this.pieShapeGroup.children.forEach(function(c,f){var i=f===b;'Mesh'===c.type&&(d.bieTween.push(o.tween({from:{x:c.scale.z},to:{x:i?a.current.heighten:1},ease:o.easing.anticipate,duration:1e3}).start({update:function b(a){var f=a.x;d.setState({value:g,s:h}),c.scale.z=f,d.renderDom()},complete:function a(){d.setState({value:g,s:h})}})),o.tween({from:{x:c.material.opacity},to:{x:i?a.current.opacity/100:d.opacity[f]},ease:o.easing.anticipate,duration:1e3}).start({update:function b(a){var f=a.x;c.material.opacity=f,d.renderDom()}}))})}}},{key:'raycastMeshes',value:function d(a,b,c){var f=[],g=this.scene||new z.Scene;for(var h in b=b||new z.Raycaster,g.children)if(g.children[h]instanceof z.Group||g.children[h]instanceof z.Scene){var i=b.intersectObjects(g.children[h].children,!0),j=void 0;(j=f).push.apply(j,i)}else g.children[h],z.Mesh;return(f=this.filtersVisibleFalse(f))&&0<f.length?a(f,c):'hover'==c?a(f,'leave'):null}},{key:'filtersVisibleFalse',value:function b(a){var c=a;if(a&&0<a.length){c=[];for(var d=0;d<a.length;d++)a[d].object.visible&&c.push(a[d])}return c}},{key:'clickApp',value:function c(a,b){var d=this.config.animation,f=this.scene.children[2].children[0].children;if(!(a[0]&&void 0!==a[0].object))'leave'==b&&1==this.leaveLock&&this.startInterval(d,this.state.currentIndex);else if('click'===b){for(var g=0;g<f.length;g++)if(f[g].id==a[0].object.id){this.state.currentIndex!=g&&(this.getRelativeData(g,this.props),this.startInterval(d,g),this.setState({currentIndex:g}));break}}else for(var h=0;h<f.length;h++)if(f[h].id==a[0].object.id){this.clearInterval(),this.state.currentIndex!=h&&(this.getRelativeData(h,this.props),this.animateHandler(d,h),this.setState({currentIndex:h})),this.leaveLock=!0;break}}},{key:'componentDidMount',value:function a(){var b=this.config,c=b.chart.camera,d=c.cameraType,f=c.rotate,g=c.translate,h=b.animation,i=this.data;this.setCameraType(d),this.setCameraPosition({x:g.cameraX,y:g.cameraY,z:g.cameraZ},{x:f.rotateX,y:f.rotateY,z:f.rotateZ}),this.initRenderer(),this.addLight();var j=this.getPaintData(i,this.config);this.addPie(j,this.config),this.renderDom(),h.on&&this.startInterval(h,0),this.initEvent(),this.detectVisibility()}},{key:'getPaintData',value:function a(){var b=0<arguments.length&&void 0!==arguments[0]?arguments[0]:[],d=1<arguments.length?arguments[1]:void 0,f=d.pie.pie,g=f.sameHeight,h=f.maxHeight1,i=f.maxHeight2;if(b&&0<b.length){var j=+A.sum(b,function(a){return a.value});0==j&&(b=b.map(function(a){return{name:a.name,value:1}}));var k=A.max(b,function(a){return a.value})||1,l=A.min(b,function(a){return a.value})||1,m=A.scaleLinear().domain([+l,+k]).range([1,+h]),n=[],o=c/2;return b.map(function(a,b){var d=C.createObject({},a),f=d.value;d.height=!0===g?+i:m(f),d.percent=(100*(f/j)).toFixed(0),d.angle=2*(f/j)*c,d.color=a.color,0===b?(d.startAngle=+o,d.endAngle=d.startAngle+d.angle):(d.startAngle=n[b-1].endAngle,d.endAngle=d.startAngle+d.angle),d.midAngle=(d.startAngle+d.endAngle)/2,n.push(d)}),n}}},{key:'onMouseEvent',value:function c(a,b){var d=new z.Raycaster,f=new z.Vector2,g=this.container.current,h=g.getBoundingClientRect(),i=h.left,j=h.top,k=h.width,l=h.height,m=b.clientX-i,n=b.clientY-j;f.x=2*(m*(parseInt(g.clientWidth)/k)/g.clientWidth)-1,f.y=2*(-n*(parseInt(g.clientHeight)/l)/g.clientHeight)+1,d.setFromCamera(f,this.camera),this.raycastMeshes(this.clickApp.bind(this),d,a)}},{key:'restart',value:function a(){var b=this,c=this.config.animation;c.on&&this.setState({currentIndex:0},function(){b.getRelativeData(0,b.props),b.startInterval(c,0)})}},{key:'getRelativeData',value:function a(){}},{key:'handleVisibility',value:function a(){this.interval&&(document.hidden?this.interval.stop():this.interval.restart(e.restart))}},{key:'cleanPie',value:function a(){this.pieChartGroup&&(v(this.pieChartGroup),v(this.pieShapeGroup),this.pieChartGroup.remove(this.pieShapeGroup),this.scene.remove(this.pieChartGroup),this.pieChartGroup=null,this.pieShapeGroup=null)}},{key:'UNSAFE_componentWillReceiveProps',value:function c(a,b){var d=this,f=this.config,g=f.chart,h=f.series,i=f.animation,j=f.pie,k=g.margin,l=g.camera,m=g.devicePixelRatio,n=a.config,o=n.chart,p=n.series,q=n.animation,r=n.pipe,s=o.margin,t=o.devicePixelRatio,u=o.camera;if(_.isEqual(this.props.width,a.width)&&_.isEqual(this.props.height,a.height)&&_.isEqual(s,k)||(this.config=a.config,this.setRendererSize(a.width-a.config.chart.margin.left-a.config.chart.margin.right,a.height-a.config.chart.margin.top-a.config.chart.margin.bottom)),_.isEqual(m,a.config.chart.devicePixelRatio)){var v=t||window.devicePixelRatio;this.setState({devicePixelRatio:v}),this.renderer.setPixelRatio(v)}if(_.isEqual(this.props.config,n)||this.initEvent(),_.isEqual(l!==u)||(this.config=n,l.cameraType!=u.cameraType&&this.setCameraType(u.cameraType),this.setCameraPosition({x:u.translate.cameraX,y:u.translate.cameraY,z:u.translate.cameraZ},{x:u.rotate.rotateX,y:u.rotate.rotateY,z:u.rotate.rotateZ}),this.renderDom()),!(_.isEqual(this.props.data,a.data)&&_.isEqual(i,q)&&_.isEqual(h,p)&&_.isEqual(j,r))){var w=F(this.config.series.series,a.data);this.data=''==this.config.series.order?w.reverse():'asc'==this.config.series.order?w.slice(0).sort(function(c,a){return a.value-c.value}):w.slice(0).sort(function(c,a){return c.value-a.value});var x=this.getPaintData(this.data,this.config);this.addPie(x,this.config),this.clearInterval(),this.bieTween&&(this.bieTween.forEach(function(a){return a.stop()}),this.bieTween=null),this.paintData=x,this.setState({currentIndex:0,value:this.data[0]&&this.data[0].value||0,s:this.data[0]&&this.data[0].s||''},function(){d.renderDom(),d.restart()})}}},{key:'clearScene',value:function a(){this.cleanPie(),this.scene.remove(this.ambientLight),this.spotLight&&this.scene.remove(this.spotLight),this.scene.remove(this.directionLight)}},{key:'clearInterval',value:function a(){this.interval&&(this.interval.stop(),this.interval=null)}},{key:'initEvent',value:function a(){var b=this,c=this.config,d=c.animation,f=d.on,g=d.interactive;i(this.props.container).on('click',function(a){f&&'click'==g&&b.onMouseEvent('click',a)}),i(this.props.container).on('mousemove',function(a){f&&'hover'==g&&b.onMouseEvent('click',a)}),i(this.props.container).on('mouseleave',function(a){f&&'hover'==g&&b.onMouseEvent('click',a)})}},{key:'render',value:function a(){var b=Math.round,c=this.config,d=c.series.series,f=c.chart,g=f.margin,h=f.legend,i=g.top,j=void 0===i?0:i,k=g.right,l=void 0===k?0:k,m=g.bottom,n=void 0===m?0:m,o=g.left,p=void 0===o?0:o,q=c.animation,r=q.on,s=q.interactive,t=c.pie.currentValue,u=+A.sum(this.data,function(a){return a.value});A.format('.'+b(t.percent.precision)+'f');var v=F(c.series.series,this.props.data).map(function(a){return C.createObject(C.createObject({},a),{},{percent:(100*a.value/u).toFixed(t.percent.precision)})}),x=(v=''==h.order?v:'asc'==h.order?v.slice(0).sort(function(c,a){return a.value-c.value}):v.slice(0).sort(function(c,a){return c.value-a.value})).map(function(a,b){return{displayName:a.s,percent:a.percent,value:a.value,data:{y:a.value},series:{color:a.color,icon:{minWidth:h.iconSize.width,minHeight:h.iconSize.height,gap:h.iconGap,background:a.color}},type:'pie'}});return w.createElement(w.Fragment,null,w.createElement('div',{ref:this.container,style:{margin:j+'px '+l+'px '+n+'px '+p+'px'}}),x&&0<x.length&&w.createElement(y,{series:x,config:h,formatter:B}),this.paintData&&this.paintData[this.state.currentIndex]&&t.show&&w.createElement('div',{style:{display:'flex',flexDirection:'column',alignItems:'center',position:'absolute',opacity:1,top:this.props.height/2,left:this.props.width/2,transform:'translate(-50%,-50%)'}},t.percent.show&&w.createElement('div',{style:C.createObject(C.createObject({},t.percent.font),{},{fontWeight:t.percent.font.fontWeight,fontStyle:t.percent.font.italic,marginBottom:t.grap,transform:'translate('.concat(t.percent.translate.x,'px,').concat(t.percent.translate.y,'px)')})},u?(100*this.state.value/u).toFixed(t.percent.precision):0,'%'),t.value.show&&w.createElement('div',{style:C.createObject(C.createObject({},t.value.font),{},{fontWeight:t.value.font.fontWeight,fontStyle:t.value.font.italic,marginBottom:t.grap,transform:'translate('.concat(t.value.translate.x,'px,').concat(t.value.translate.y,'px)')})},+this.state.value,t.value.suffix.show&&w.createElement('span',{style:{fontSize:t.value.suffix.fontSize,transform:'translate('.concat(t.value.suffix.translate.x,'px,').concat(t.value.suffix.translate.y,')px')}},t.value.suffix.text)),t.category.show&&w.createElement('div',{style:C.createObject(C.createObject({},t.category.font),{},{fontWeight:t.category.font.fontWeight,fontStyle:t.category.font.italic,transform:'translate('.concat(t.category.translate.x,'px,').concat(t.category.translate.y,'px)')})},this.state.s)))}},{key:'componentWillUnmount',value:function a(){this.bieTween&&(this.bieTween.forEach(function(a){return a.stop()}),this.bieTween=null),this.opacity=null,this.clearScene(),this.clearInterval(),this.data=null,document.removeEventListener('visibilitychange',this.handleVisibility),this.handleVisibility=null,this.renderer.dispose(),this.renderer=null,this.scene=null}},{key:'detectVisibility',value:function a(){document.addEventListener('visibilitychange',this.handleVisibility)}}]),d}(w.Component);return a.exports=G,a.exports});