turnilo
Version:
Business intelligence, data exploration and visualization web application for Druid, formerly known as Swiv and Pivot
2 lines • 41.7 kB
JavaScript
(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{480:function(e,t,a){"use strict";a.d(t,"d",(function(){return s})),a.d(t,"e",(function(){return i})),a.d(t,"a",(function(){return c})),a.d(t,"f",(function(){return o})),a.d(t,"b",(function(){return l})),a.d(t,"c",(function(){return u}));var n=a(18),r=a(6);const s=e=>e.data[0],i=e=>e[r.l],c=e=>e.data,o=Object(n.c)(i,c),l=Object(n.c)(s,i),u=Object(n.c)(l,c)},481:function(e,t,a){"use strict";a.d(t,"c",(function(){return s})),a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return c})),a.d(t,"e",(function(){return o})),a.d(t,"f",(function(){return l})),a.d(t,"d",(function(){return u}));var n=a(8);function r(e,t){return Object(n.d)(e.dataCube.dimensions,t.reference)}function s({splits:{splits:e}}){return e.last()}function i(e){return r(e,s(e))}function c(e){return s(e).reference}function o({splits:{splits:e}}){return 1===e.count()?null:e.first()}function l(e){return null!==o(e)}function u(e){const t=o(e);return t&&r(e,t)}},483:function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(0),r=a.n(n),s=a(3);const i=({title:e})=>{const t=Object(s.a)(8*e.length,80,300);return r.a.createElement("div",{className:"title",style:{minWidth:t}},e)}},486:function(e,t,a){"use strict";a.d(t,"b",(function(){return r})),a.d(t,"a",(function(){return s}));var n=a(82);function r(e,t=5){return e.ticks(t).filter(e=>0!==e)}function s([e,t],a){return isNaN(e)||isNaN(t)?null:n.k().domain([Math.min(e,0),Math.max(t,0)]).nice(5).range([a,0])}},487:function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(0),r=a.n(n),s=a(19),i=a(490);const c=e=>{const{series:t,datum:a,showPrevious:n}=e;if(!n)return r.a.createElement(r.a.Fragment,null,t.formatValue(a));const c=t.selectValue(a),o=t.selectValue(a,s.b.PREVIOUS),l=t.formatter();return r.a.createElement(i.a,{lowerIsBetter:t.measure.lowerIsBetter,formatter:l,current:c,previous:o})}},488:function(e,t,a){"use strict";a.d(t,"a",(function(){return g}));var n=a(0),r=a.n(n),s=a(6),i=a(483),c=a(51),o=a(1),l=a(3),u=a(84),h=a(116),m=a(163);class d extends r.a.Component{constructor(...e){super(...e),Object(o.a)(this,"modalRef",void 0),Object(o.a)(this,"setModalRef",e=>{this.modalRef=e}),Object(o.a)(this,"onMouseDown",e=>{const t=e.target;Object(l.h)(t,this.modalRef)||this.props.onClose()})}render(){const{className:e,children:t,left:a,top:n}=this.props;return r.a.createElement(r.a.Fragment,null,r.a.createElement(h.a,{mouseDown:this.onMouseDown}),r.a.createElement(u.a,{left:a,top:n},r.a.createElement("div",{className:Object(l.b)("modal-bubble",e),ref:this.setModalRef},t,r.a.createElement(m.a,{direction:"up"}))))}}const g=({title:e,children:t,left:a,top:n,acceptHighlight:o,dropHighlight:l})=>r.a.createElement(d,{className:"highlight-modal",left:a,top:n,onClose:l},r.a.createElement(i.a,{title:e}),r.a.createElement("div",{className:"value"},t),r.a.createElement("div",{className:"actions"},r.a.createElement(c.a,{type:"primary",className:"accept mini",onClick:o,title:s.m.select}),r.a.createElement(c.a,{type:"secondary",className:"drop mini",onClick:l,title:s.m.cancel})))},489:function(e,t,a){"use strict";a.d(t,"a",(function(){return o})),a.d(t,"b",(function(){return l}));var n=a(0),r=a.n(n),s=a(84),i=a(483),c=a(163);const o=e=>{const{left:t,top:a,title:n,content:i}=e;return r.a.createElement(s.a,{left:t,top:a+-10},r.a.createElement("div",{className:"segment-bubble"},r.a.createElement(l,{title:n,content:i}),r.a.createElement(c.a,{direction:"up"})))},l=({title:e,content:t})=>r.a.createElement("div",{className:"segment-bubble-text"},r.a.createElement(i.a,{title:e}),t?r.a.createElement("div",{className:"content"},t):null)},490:function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(0),r=a.n(n),s=a(484);const i=({lowerIsBetter:e,formatter:t,current:a,previous:n})=>{const i=t(a),c=t(n);return r.a.createElement(r.a.Fragment,null,r.a.createElement("strong",{className:"current-value"},i),r.a.createElement("span",{className:"previous-value"},c),r.a.createElement(s.a,{formatter:t,currentValue:a,previousValue:n,lowerIsBetter:e}))}},493:function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(0),r=a.n(n),s=a(3);const i=e=>{const{orientation:t,stage:a,ticks:n,scale:i}=e;return r.a.createElement("g",{className:Object(s.b)("grid-lines",t),transform:a.getTransform()},n.map(e=>{const n=Object(s.k)(i(e)),c=function(e,t,a){switch(e){case"horizontal":return{x1:0,x2:a.width,y1:t,y2:t};case"vertical":return{x1:t,x2:t,y1:0,y2:a.height}}}(t,n,a);return r.a.createElement("line",Object.assign({key:String(e)},c))}))}},495:function(e,t,a){"use strict";a.d(t,"a",(function(){return o})),a.d(t,"b",(function(){return l}));var n=a(4),r=a(2),s=a(54),i=a(7),c=a(502);function o(e,t){if(r.TimeRange.isTimeRange(e)){const a=new s.a(e),r=n.a.of(a);return new i.c({reference:t,values:r})}if(r.NumberRange.isNumberRange(e)){const a=new i.e(e),r=n.a.of(a);return new i.d({reference:t,values:r})}throw new Error("Expected Number or Time range, got: "+e)}function l(e){if(!Object(c.a)(e))throw new Error("Expected Number or FixedTime Filter Clause. Got "+e);const t=e.values.first();return r.Range.fromJS(t)}},502:function(e,t,a){"use strict";a.d(t,"a",(function(){return r}));var n=a(7);function r(e){return e instanceof n.c||e instanceof n.d}},503:function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(10),r=a(0),s=a.n(r),i=a(19),c=a(484);function o({color:e,name:t,series:a,datum:r,hasComparison:o}){const l={color:e,name:t,value:a.formatValue(r)};return o?Object(n.a)(Object(n.a)({},l),{},{previous:a.formatValue(r,i.b.PREVIOUS),delta:s.a.createElement(c.a,{currentValue:a.selectValue(r),previousValue:a.selectValue(r,i.b.PREVIOUS),lowerIsBetter:a.measure.lowerIsBetter,formatter:a.formatter()})}):l}},505:function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(0),r=a.n(n),s=a(19),i=a(484);const c=({series:e,datum:t,showPrevious:a})=>r.a.createElement("div",{className:"vis-measure-label"},r.a.createElement("span",{className:"measure-title"},e.title()),r.a.createElement("span",{className:"colon"},": "),r.a.createElement("span",{className:"measure-value"},e.formatValue(t)),a&&function(e,t){const a=t.selectValue(e,s.b.CURRENT),n=t.selectValue(e,s.b.PREVIOUS),c=t.formatter();return r.a.createElement(r.a.Fragment,null,r.a.createElement("span",{className:"measure-previous-value"},c(n)),r.a.createElement(i.a,{formatter:c,lowerIsBetter:t.measure.lowerIsBetter,currentValue:a,previousValue:n}))}(t,e))},506:function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(0),r=a.n(n),s=a(3);const i=({formatter:e,stage:t,tickSize:a,ticks:n,scale:i,topLineExtend:c=0,hideZero:o})=>{const l=o?n.filter(e=>0!==e):n,u=l.map(e=>{const t=Object(s.k)(i(e));return r.a.createElement("line",{className:"tick",key:String(e),x1:0,y1:t,x2:a,y2:t})}),h=a+2,m=l.map(t=>{const a=i(t);return r.a.createElement("text",{className:"tick",key:String(t),x:h,y:a,dy:"0.31em"},e(t))});return r.a.createElement("g",{className:"vertical-axis",transform:t.getTransform()},r.a.createElement("line",{className:"border",x1:.5,y1:-c,x2:.5,y2:t.height}),u,m)}},509:function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(0),r=a.n(n);const s=({colorEntries:e})=>{const t=e.map(({color:e,name:t,value:a,previous:n,delta:s})=>{const i={background:e};return r.a.createElement("tr",{key:t},r.a.createElement("td",null,r.a.createElement("div",{className:"color-swab",style:i})),r.a.createElement("td",{className:"color-name"},t),r.a.createElement("td",{className:"color-value"},a),n&&r.a.createElement("td",{className:"color-previous"},n),s&&r.a.createElement("td",{className:"color-delta"},s))});return r.a.createElement("table",{className:"color-swabs"},r.a.createElement("tbody",null,t))}},515:function(e,t,a){"use strict";a.d(t,"b",(function(){return i})),a.d(t,"a",(function(){return c}));var n=a(82),r=a(19),s=a(9);function i(e,t){const a=t=>Object(s.s)(e.selectValue(t));return t?[a,t=>Object(s.s)(e.selectValue(t,r.b.PREVIOUS))]:[a]}function c(e,t){return t.reduce((t,a)=>{const r=n.b(e,a);return n.b([...r,...t])},[0,0])}},523:function(e,t,a){"use strict";a.d(t,"a",(function(){return O}));var n=a(0),r=a.n(n),s=a(485),i=a(518),c=a(504),o=a(165),l=a(100),u=a(41),h=a(115),m=a(481),d=a(498),g=a(499),f=a(500),b=a(501);const p=e=>{const{saveSplit:t,containerStage:a,split:s,dimension:i,onClose:c,openOn:o}=e,[u,h]=Object(n.useState)(()=>s.bucket&&Object(l.f)(s.bucket)),m=Object(b.c)({split:s,dimension:i,granularity:u});return r.a.createElement(b.a,{openOn:o,containerStage:a,onClose:c,onSave:()=>{const e=Object(b.b)({dimension:i,split:s,granularity:u});t(s,e)},dimension:i,isValid:m},r.a.createElement(d.a,{granularity:u,dimension:i,granularityChange:h}))},E=e=>{const{openOn:t,containerStage:a,onClose:s,dimension:i,saveSplit:c,split:l,essence:m}=e,d=[new u.a(i),...m.seriesSortOns(!0).toArray()],{customization:{visualizationColors:{series:p}}}=Object(h.b)(),E=Object(n.useMemo)(()=>Object(o.b)(p.length),[p.length]),[S,v]=Object(n.useState)(l.sort),[y,O]=Object(n.useState)(l.limit),x=Object(b.c)({split:l,dimension:i,limit:y,sort:S});return r.a.createElement(b.a,{openOn:t,containerStage:a,onClose:s,onSave:()=>{const e=Object(b.b)({dimension:i,split:l,limit:y,sort:S});c(l,e)},dimension:i,isValid:x},r.a.createElement(f.a,{direction:S.direction,selected:u.c.fromSort(S,m),options:d,onChange:v}),r.a.createElement(g.a,{selectedLimit:y,limits:E,includeNone:!1,onLimitSelect:O}))},S=e=>{const{essence:t,split:a}=e;return a.equals(Object(m.c)(t))?r.a.createElement(p,e):r.a.createElement(E,e)},v=e=>r.a.createElement(i.b,Object.assign({splitMenuComponent:S},e)),y=e=>r.a.createElement(c.b,Object.assign({},e,{splitTileComponent:v})),O=e=>r.a.createElement(s.c,Object.assign({},e,{splitTilesRow:y}))},530:function(e,t,a){"use strict";a.d(t,"a",(function(){return i})),a.d(t,"b",(function(){return c}));var n=a(0),r=a.n(n),s=a(3);const i=({stage:e,tickLength:t})=>r.a.createElement("line",{className:"grid-border grid-bottom-border",transform:e.getTransform(),x1:0,x2:e.width+t,y1:Object(s.k)(e.height-1),y2:Object(s.k)(e.height-1)}),c=({stage:e})=>r.a.createElement("line",{className:"grid-border grid-right-border",transform:e.getTransform(),x1:Object(s.k)(e.width-1),x2:Object(s.k)(e.width-1),y1:0,y2:e.height})},531:function(e,t,a){"use strict";a.d(t,"a",(function(){return s}));var n=a(0),r=a.n(n);function s(e){const{left:t,bottom:a=0,right:n,top:s=0}=e,i={width:Math.max(t,0)},c={left:t,top:s,bottom:a,width:Math.max(n-t,0)},o={left:n};return r.a.createElement("div",{className:"highlighter"},r.a.createElement("div",{className:"whiteout left",style:i}),r.a.createElement("div",{className:"frame",style:c}),r.a.createElement("div",{className:"whiteout right",style:o}))}},574:function(e,t,a){"use strict";a.r(t),a.d(t,"default",(function(){return De}));var n=a(0),r=a.n(n),s=a(18),i=a(20),c=a(523),o=a(485),l=a(101);function u(e){return(u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function h(e){var t=function(e,t){if("object"!==u(e)||null===e)return e;var a=e[Symbol.toPrimitive];if(void 0!==a){var n=a.call(e,t||"default");if("object"!==u(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===u(t)?t:String(t)}var m,d=a(26),g=a(522),f=a(167),b=a(6),p=a(480),E=a(115),S=a(166),v=a(1),y=a(505),O=a(486),x=a(489),j=a(503),w=a(509),C=a(487),N=a(10),V=a(4),k=a(481);function H(e){return e.variant===m.STACKED}function R(e,t,a){const{visualizationColors:n}=a,r=function(e){return{continuousSplit:Object(k.c)(e),hasComparison:e.hasComparison(),timezone:e.timezone,series:e.getConcreteSeries()}}(e);if(!Object(k.f)(e))return Object(N.a)(Object(N.a)({},r),{},{variant:m.BASE});const s=Object(k.e)(e),i=Object(k.d)(e),c=function(e,t,a){return Object(p.c)(t).reduce((t,n,r)=>{const s=String(e.selectValue(n)),i=r%a.series.length,c=a.series[i];return t.set(s,c)},Object(V.c)())}(s,t,n);return Object(N.a)(Object(N.a)({},r),{},{variant:m.STACKED,nominalSplit:s,nominalDimension:i,colors:c})}!function(e){e[e.BASE=0]="BASE",e[e.STACKED=1]="STACKED"}(m||(m={}));const M=e=>{const{model:t,series:a,datum:n}=e;if(H(t)){const e=function(e,t,a){const{nominalSplit:n,colors:r,hasComparison:s}=a,i=Object(p.f)(e);return r.entrySeq().toArray().map(([e,a])=>{const r=i.find(t=>String(n.selectValue(t))===e);return r?Object(j.a)({color:a,name:e,hasComparison:s,datum:r,series:t}):{color:a,name:e,value:"-"}})}(n,a,t);return r.a.createElement(w.a,{colorEntries:e})}return r.a.createElement(C.a,{series:a,datum:n,showPrevious:t.hasComparison})},B=e=>{const{model:t,rect:{left:a,top:n},interaction:{datum:s},series:i,xScale:c,yScale:o}=e,{continuousSplit:l,timezone:u}=t,h=o(i.selectValue(s)),m=l.selectValue(s),d=c.calculate(m)+c.bandwidth()/2;return r.a.createElement(x.a,{top:n+h,left:a+d,title:l.formatValue(s,u),content:r.a.createElement(M,{model:t,datum:s,series:i})})};var L,T=a(169);!function(e){e[e.HOVER=0]="HOVER",e[e.HIGHLIGHT=1]="HIGHLIGHT"}(L||(L={}));var I=a(488);const A=e=>{const{model:{timezone:t,continuousSplit:a},rect:{left:n,top:s},interaction:{datum:i},dropHighlight:c,acceptHighlight:o,yScale:l,series:u,xScale:h}=e,m=a.selectValue(i),d=h.calculate(m)+h.bandwidth()/2,g=l(u.selectValue(i));return r.a.createElement(I.a,{title:a.formatValue(i,t),left:n+d,top:s+g,dropHighlight:c,acceptHighlight:o})};var P=a(19),W=a(531);const F=e=>{const{stage:t,yScale:a,series:n,xScale:s,model:{hasComparison:i,continuousSplit:c},interaction:{datum:o}}=e,l=c.selectValue(o),u=s.calculate(l),h=u+s.bandwidth(),m=a(function(e,t,a){return a?Math.max(t.selectValue(e),t.selectValue(e,P.b.PREVIOUS)):t.selectValue(e)}(o,n,i))+t.y-5;return r.a.createElement(W.a,{left:u,right:h,top:m})},z=e=>{const{stage:t,dropHighlight:a,acceptHighlight:n,container:s,model:i,series:c,xScale:o,yScale:l,interaction:u}=e,h=s.current.getBoundingClientRect();return r.a.createElement(r.a.Fragment,null,(e=>e&&e.kind===L.HIGHLIGHT)(u)&&r.a.createElement(r.a.Fragment,null,r.a.createElement(A,{interaction:u,dropHighlight:a,acceptHighlight:n,xScale:o,yScale:l,model:i,series:c,rect:h}),r.a.createElement(F,{interaction:u,stage:t,xScale:o,yScale:l,series:c,model:i})),(e=>e&&e.kind===L.HOVER)(u)&&r.a.createElement(B,{rect:h,interaction:u,xScale:o,yScale:l,series:c,model:i}))};const D={left:5,right:60,bottom:40};function X(e,t,a){const n=function(e,t,a){const n=Math.max(e.width,30*t),r=e.height,s=Math.floor(r/a),i=Math.max(200,s);return d.a.fromSize(n,i)}(e.within(D),t,a);return{scroller:{bodyHeight:n.height*a,bodyWidth:n.width,top:0,left:D.left,right:D.right,bottom:D.bottom},segment:n}}var G=a(515);function K(e,t,a){return Object(G.a)(e,Object(G.b)(t,a))}const U=e=>{const{customization:{visualizationColors:t}}=Object(E.b)(),{datum:a,xScale:n,yScale:s,model:{continuousSplit:i},series:c}=e,[o]=s.range(),l=i.selectValue(a),u=n.calculate(l)+5,h=n.bandwidth()-10,m=s(c.selectValue(a)),d=o-m,g=t.main;return r.a.createElement("rect",{className:"bar-chart-bar",x:u,y:m,fill:g,width:h,height:d})};var Y=a(165);const q=e=>{const{customization:{visualizationColors:t}}=Object(E.b)(),{datum:a,xScale:n,yScale:s,model:{continuousSplit:i},series:c}=e,[o]=s.range(),l=i.selectValue(a),u=n.calculate(l),h=n.bandwidth(),m=2*(h-10)/3,d=c.selectValue(a),g=c.selectValue(a,P.b.PREVIOUS),f=s(d),b=s(g),p=t.main,S=Object(Y.a)(t);return r.a.createElement(r.a.Fragment,null,r.a.createElement("rect",{className:"bar-chart-bar-previous",x:u+h-5-m,y:b,fill:S,width:m,height:o-b}),r.a.createElement("rect",{className:"bar-chart-bar",x:u+5,y:f,fill:p,width:m,height:o-f}))};function _(e,t,a=P.b.CURRENT){return e[J(t,a)]}function J(e,t=P.b.CURRENT){return"__stack_base_"+e.plywoodKey(t)}function Z(e,t=P.b.CURRENT){return a=>{const n=Object(p.f)(a),{y0:r,stacked:i}=n.reduce(({y0:a,stacked:n},r)=>{const i=e.selectValue(r,t),c=J(e,t);return{y0:i+a,stacked:Object(s.e)(n,Object(N.a)(Object(N.a)({},r),{},{[c]:a}))}},{y0:0,stacked:[]}),c=e.plywoodKey(t);return Object(N.a)(Object(N.a)({},a),{},{[c]:r,[b.l]:Object(p.e)(a).changeData(i)})}}const $=e=>{const{datum:t,xScale:a,yScale:n,series:s,model:{colors:i,continuousSplit:c,nominalSplit:o}}=e,l=Object(p.f)(t),u=c.selectValue(t),h=a.calculate(u)+5,m=a.bandwidth()-10;return r.a.createElement(r.a.Fragment,null,l.map(e=>{const t=String(o.selectValue(e)),a=s.selectValue(e),c=_(e,s),l=n(a+c),u=n(c)-n(a+c);return r.a.createElement("rect",{className:"bar-chart-bar-segment",key:String(t),x:h,y:l,width:m,height:u,fill:(d=e,i.get(String(o.selectValue(d))))});var d}))};var Q=a(82);const ee=e=>{const{datum:t,xScale:a,yScale:n,series:s,model:{nominalSplit:i,continuousSplit:c,colors:o}}=e,l=Object(p.f)(t),u=c.selectValue(t),h=a.calculate(u),m=a.bandwidth(),d=2*(m-10)/3,g=e=>o.get(String(i.selectValue(e)));return r.a.createElement(r.a.Fragment,null,l.map(e=>{const t=i.selectValue(e)+"--previous",a=s.selectValue(e,P.b.PREVIOUS),c=_(e,s,P.b.PREVIOUS),o=n(a+c),l=n(c)-n(a+c),u=Q.i(g(e)).darker(.8);return r.a.createElement("rect",{className:"bar-chart-bar-segment",key:String(t),x:h+m-5-d,y:o,width:d,height:l,opacity:.8,fill:u.toString()})}),l.map(e=>{const t=i.selectValue(e)+"--current",a=s.selectValue(e),c=_(e,s),o=n(a+c),l=n(c)-n(a+c),u=g(e);return r.a.createElement("rect",{className:"bar-chart-bar-previous-segment",key:t,x:h+5,y:o,width:d,height:l,fill:u})}))};var te=a(530),ae=a(493),ne=a(506);const re=e=>{const{scale:t,series:a,stage:n}=e;return r.a.createElement("div",null,r.a.createElement("svg",{viewBox:n.getViewBox()},r.a.createElement("g",{transform:"translate(-1, 0)"},r.a.createElement(ne.a,{stage:n,ticks:Object(O.b)(t),tickSize:10,scale:t,formatter:a.formatter()}))))},se=e=>{const{gridStage:t,yScale:a}=e,n=Object(O.b)(a);return r.a.createElement(r.a.Fragment,null,r.a.createElement(ae.a,{orientation:"horizontal",scale:a,ticks:n,stage:t}),r.a.createElement(te.a,{stage:t,tickLength:10}),r.a.createElement(te.b,{stage:t}))},ie=["model"],ce=e=>{const{model:t}=e,a=Object(l.a)(e,ie),n=t.hasComparison;return H(t)?n?r.a.createElement(ee,Object.assign({},a,{model:t})):r.a.createElement($,Object.assign({},a,{model:t})):n?r.a.createElement(q,Object.assign({},a,{model:t})):r.a.createElement(U,Object.assign({},a,{model:t}))},oe=e=>{const{model:t,stage:a,xScale:n,series:s,datums:i}=e,c=K(i,s,t.hasComparison),o=Object(O.a)(c,a.height);return o?r.a.createElement(r.a.Fragment,null,r.a.createElement("svg",{viewBox:a.getViewBox()},r.a.createElement(se,{gridStage:a,yScale:o}),r.a.createElement("g",{transform:a.getTransform()},i.map((e,a)=>r.a.createElement(ce,{key:a,datum:e,model:t,yScale:o,xScale:n,series:s}))))):null};class le extends r.a.Component{constructor(...e){super(...e),Object(v.a)(this,"container",r.a.createRef())}render(){const{dropHighlight:e,acceptHighlight:t,interaction:a,model:n,stage:s,scrollLeft:i,series:c,totals:o,datums:l,xScale:u}=this.props,h=n.hasComparison,m=s.within({top:30,bottom:0});const d=K(l,c,h),g=Object(O.a)(d,m.height);return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{ref:this.container,className:"bar-chart-bars",style:s.getWidthHeight()},r.a.createElement("div",{className:"bar-chart-total",style:{left:i+10}},r.a.createElement(y.a,{series:c,datum:o,showPrevious:h})),r.a.createElement(oe,{model:n,stage:m,xScale:u,series:c,datums:l}),a&&r.a.createElement(z,{interaction:a,container:this.container,stage:m,dropHighlight:e,acceptHighlight:t,model:n,xScale:u,series:c,yScale:g})))}}const ue=({colors:e})=>r.a.createElement("div",{className:"legend-values"},r.a.createElement("table",{className:"legend-values-table"},r.a.createElement("tbody",null,e.entrySeq().toArray().map(([e,t])=>{const a={background:t};return r.a.createElement("tr",{key:e,className:"legend-value"},r.a.createElement("td",{className:"legend-value-color-cell"},r.a.createElement("div",{className:"legend-value-color",style:a})),r.a.createElement("td",{className:"legend-value-label"},r.a.createElement("span",{className:"legend-value-name"},e)))})))),he=e=>{const{model:{nominalSplit:t,nominalDimension:a,colors:n}}=e,s=t.getTitle(a);return r.a.createElement("div",{className:"bar-chart-legend"},r.a.createElement("div",{className:"legend-header"},s),r.a.createElement(ue,{colors:n}))},me=e=>{const{dropHighlight:t,acceptHighlight:a,interaction:n,model:s,datums:i,xScale:c,scrollLeft:o,stage:l,totals:u}=e,h=s.series.toArray();return r.a.createElement(r.a.Fragment,null,H(s)&&r.a.createElement(S.a,null,r.a.createElement(he,{model:s})),h.map(e=>{const h=!!n&&n.key===e.plywoodKey();return r.a.createElement(le,{key:e.reactKey(),stage:l,scrollLeft:o,interaction:h&&n,series:e,xScale:c,datums:i,totals:u,model:s,acceptHighlight:a,dropHighlight:t})}))};var de=a(2),ge=a(54),fe=a(7),be=a(495);class pe extends r.a.Component{constructor(...e){super(...e),Object(v.a)(this,"state",{hover:null,scrollLeft:0,scrollTop:0}),Object(v.a)(this,"saveScroll",(e,t)=>{this.setState({hover:null,scrollLeft:t,scrollTop:e})}),Object(v.a)(this,"saveHover",(e,t,a)=>{const{highlight:n}=this.props;if(n)return;const r=this.getValueFromEvent(e,a);if(!de.Range.isRange(r))return;const s=this.getSeriesFromEvent(t,a);if(null===s)return;const i=this.findDatumByValue(r),c=((e,t)=>({kind:L.HOVER,datum:t,key:e}))(s.plywoodKey(),i),{hover:o}=this.state;var l,u;o&&(u=c,(l=o).kind===u.kind&&l.key===u.key&&Object(T.b)(l.datum,u.datum))||this.setState({hover:c})}),Object(v.a)(this,"resetHover",()=>{const{hover:e}=this.state;e&&this.setState({hover:null})}),Object(v.a)(this,"handleClick",(e,t,a)=>{const n=this.getValueFromEvent(e,a);if(!de.TimeRange.isTimeRange(n))return;this.setState({hover:null});const r=this.getSeriesFromEvent(t,a);if(null===r)return;const{saveHighlight:s,model:i}=this.props,{reference:c}=i.continuousSplit,o=V.a.of(new ge.a(n)),l=new fe.c({reference:c,values:o});s(V.a.of(l),r.plywoodKey())})}getValueFromEvent(e,t){if("body"!==t)return null;const{layout:a,xScale:n}=this.props;return n.invert(e-a.scroller.left)}findDatumByValue(e){const{model:{continuousSplit:t},datums:a}=this.props;return a.find(a=>Object(T.b)(e,t.selectValue(a)))}getSeriesFromEvent(e,t){if("body"!==t)return null;const{layout:{segment:{height:a}},model:{series:n}}=this.props,r=Math.floor(e/a);return n.get(r)||null}interaction(){const{highlight:e}=this.props;if(e){const t=Object(be.b)(e.clauses.first()),a=this.findDatumByValue(t);return((e,t)=>({kind:L.HIGHLIGHT,datum:t,key:e}))(e.key,a)}return this.state.hover}render(){const{children:e}=this.props,{scrollLeft:t,scrollTop:a}=this.state;return e({interaction:this.interaction(),scrollLeft:t,scrollTop:a,onScroll:this.saveScroll,onMouseLeave:this.resetHover,onMouseMove:this.saveHover,onClick:this.handleClick})}}const Ee=e=>r.a.createElement("div",{className:"spacer"});const Se=e=>e.slice().reverse(),ve=e=>function(e,t){const a=Object(p.f)(e);return Object(N.a)(Object(N.a)({},e),{},{[b.l]:Object(p.e)(e).changeData(t(a))})}(e,Se);function ye(e,{series:t,hasComparison:a}){const n=t.toArray(),r=e.map(ve);return n.reduce((e,t)=>function(e,t,a){return e.map(e=>Object(s.q)(e,Z(t),a&&Z(t,P.b.PREVIOUS)))}(e,t,a),r)}function Oe(e,t,a){return{[e]:t,[b.l]:new de.Dataset({data:a})}}function xe(e,t){if(!H(t))return Object(p.c)(e);const{continuousSplit:a}=t,{data:n}=e.flatten();return n.reduce((e,t)=>{const n=e.findIndex(function(e,t){const a=e.selectValue(t);return t=>{const n=e.selectValue(t);return(de.TimeRange.isTimeRange(a)&&de.TimeRange.isTimeRange(n)||!(!de.NumberRange.isNumberRange(a)||!de.NumberRange.isNumberRange(n)))&&a.equals(n)}}(a,t));return-1===n?Object(s.e)(e,function(e,t){const{[e]:a}=t,n=Object(l.a)(t,[e].map(h));return Oe(e,a,[n])}(a.reference,t)):Object(s.o)(e,n,function(e,t,a){const n=Object(p.f)(t),{[e]:r}=a,s=Object(l.a)(a,[e].map(h));return Oe(e,r,[...n,s])}(a.reference,e[n],t))},[]).sort(function(e){return(t,a)=>{const n=e.selectValue(t),r=e.selectValue(a);return n.compare(r)}}(a))}function je(e){if(de.TimeRange.isTimeRange(e)){const{start:t}=e;return t.toISOString()}if(de.NumberRange.isNumberRange(e)){const{start:t}=e;return t.toString(10)}return String(e)}var we=a(15),Ce=a(83),Ne=a(3);const Ve=e=>{const{model:t,stage:a,scale:n}=e,s=function(e,{continuousSplit:t}){return Object(we.c)(t)?e.filter((e,t)=>t%8==0):e}(n.domain(),t);return r.a.createElement("svg",{width:a.width,height:a.height},r.a.createElement("g",{className:"bar-chart-x-axis"},s.map((e,a)=>{const s=Object(Ne.k)(n.calculate(e)),i=0===a?"start":"middle";return r.a.createElement("g",{key:String(e),transform:`translate(${s}, 0)`},r.a.createElement("line",{x1:0,x2:0,y1:0,y2:10}),r.a.createElement("text",{y:22,style:{textAnchor:i}},Object(Ce.c)(e,t.timezone)))})))},ke=e=>{const{model:t,stage:a,datums:n}=e,s=(i=a,d.a.fromJS({x:0,y:30,width:60,height:i.height-30-0}));var i;const c=t.series.toArray();return r.a.createElement(r.a.Fragment,null,c.map(e=>{const i=K(n,e,t.hasComparison),c=Object(O.a)(i,s.height);return r.a.createElement("div",{style:a.getWidthHeight(),key:e.reactKey()},c&&r.a.createElement(re,{series:e,scale:c,stage:s}))}))},He=e=>{const{customization:t}=Object(E.b)(),{data:a,essence:n,stage:s,highlight:i,acceptHighlight:c,dropHighlight:o,saveHighlight:u}=e,m=R(n,a,t),S=xe(a,m);if(0===S.length)return r.a.createElement(g.a,{title:"No data found. Try different filters."});const v=Object(p.d)(a),{[b.l]:y}=v,O=Object(l.a)(v,[b.l].map(h)),x=H(m)?ye(S,m):S,j=m.series.count(),w=function(e,{continuousSplit:t}){return e.map(e=>t.selectValue(e))}(x,m),C=X(s,w.length,j),{scroller:N,segment:V}=C,k=function(e,t){const a=[0,t],n=e.map(je),r=Q.j().domain(n).rangeRound(a),s=Q.m().domain(a).range(e);return{calculate:e=>r(je(e)),domain:()=>e,invert:e=>s(e),bandwidth:()=>r.bandwidth()}}(w,V.width);return r.a.createElement(pe,{xScale:k,model:m,datums:x,layout:C,saveHighlight:u,highlight:i},({onClick:e,onScroll:t,onMouseLeave:a,onMouseMove:n,interaction:s,scrollLeft:i})=>r.a.createElement(f.a,{layout:N,onMouseLeave:a,onClick:e,onScroll:t,onMouseMove:n,leftGutter:r.a.createElement(Ee,null),bottomLeftCorner:r.a.createElement(Ee,null),bottomRightCorner:r.a.createElement(Ee,null),body:r.a.createElement(me,{interaction:s,datums:x,totals:O,stage:V,scrollLeft:i,model:m,xScale:k,acceptHighlight:c,dropHighlight:o}),rightGutter:r.a.createElement(ke,{model:m,datums:x,stage:d.a.fromSize(N.right,V.height)}),bottomGutter:r.a.createElement(Ve,{model:m,scale:k,stage:d.a.fromSize(V.width,N.bottom)})}))};var Re=a(40),Me=a(8),Be=a(14),Le=a(189);class Te extends r.a.Component{render(){const{stage:e,ticks:t,scale:a}=this.props,n=e.width,s=[];function i(e,t){n<e||s.push(r.a.createElement("line",{key:t,x1:e,y1:0,x2:e,y2:5}))}for(const e of t){i(Object(Ne.k)(a(e)),"_"+e)}if(t.length){i(Object(Ne.k)(a(t[t.length-1])+a.bandwidth()),"last")}return r.a.createElement("g",{className:"bucket-marks",transform:e.getTransform()},s)}}var Ie=a(490),Ae=a(535);class Pe{constructor(e){Object(v.a)(this,"x",void 0),Object(v.a)(this,"y",void 0),Object(v.a)(this,"height",void 0),Object(v.a)(this,"width",void 0),Object(v.a)(this,"barOffset",void 0),Object(v.a)(this,"barWidth",void 0),Object(v.a)(this,"stepWidth",void 0),Object(v.a)(this,"children",void 0),Object(v.a)(this,"hitboxMin",void 0),Object(v.a)(this,"hitboxMax",void 0),this.x=e.x,this.y=e.y,this.height=e.height,this.width=e.width,this.barOffset=e.barOffset,this.barWidth=e.barWidth,this.stepWidth=e.stepWidth,this.children=e.children,this.hitboxMin=this.x-this.barOffset,this.hitboxMax=this.x+this.barWidth+2*this.barOffset}isXWithin(e){return e>=this.hitboxMin&&e<=this.hitboxMax}hasChildren(){return this.children.length>0}get middleX(){return this.x+.5*this.barWidth+this.barOffset}}function We(e,t){return Object(V.a)(t.map((t,a)=>{const{type:n,reference:r}=e.getSplit(a),s=t[r];switch(n){case we.b.boolean:return new fe.a({reference:r,values:V.f.of(s)});case we.b.number:return new fe.d({reference:r,values:V.a.of(s)});case we.b.time:return new fe.c({reference:r,values:V.a.of(new ge.a(s))});case we.b.string:return new fe.h({reference:r,action:fe.g.IN,values:V.f.of(s)})}}))}class Fe extends r.a.Component{constructor(...e){super(...e),Object(v.a)(this,"className",Le.a.name),Object(v.a)(this,"coordinatesCache",[]),Object(v.a)(this,"scroller",r.a.createRef()),Object(v.a)(this,"state",this.initState()),Object(v.a)(this,"context",void 0),Object(v.a)(this,"onScrollerScroll",(e,t)=>{this.setState({hoverInfo:null,scrollLeft:t,scrollTop:e})}),Object(v.a)(this,"onMouseMove",(e,t)=>{this.setState({hoverInfo:this.calculateMousePosition(e,t)})}),Object(v.a)(this,"onMouseLeave",()=>{this.setState({hoverInfo:null})}),Object(v.a)(this,"onClick",(e,t)=>{const{essence:a,highlight:n,dropHighlight:r,saveHighlight:s}=this.props,i=this.calculateMousePosition(e,t);if(!i)return;if(!i.coordinates)return r(),void this.setState({selectionInfo:null});const{path:c,chartIndex:o}=i,{splits:l}=a,u=a.getConcreteSeries(),h=We(l,c),m=u.get(o).definition;if(Object(Ae.b)(n,m.key())&&h.equals(n.clauses))return r(),void this.setState({selectionInfo:null});this.setState({selectionInfo:i}),s(h,u.get(o).definition.key())})}componentDidUpdate(){const{scrollerYPosition:e,scrollerXPosition:t}=this.state,a=this.scroller.current;if(!a)return;const n=a.scroller.current.getBoundingClientRect();e===n.top&&t===n.left||this.setState({scrollerYPosition:n.top,scrollerXPosition:n.left})}calculateMousePosition(e,t){const{essence:a}=this.props,n=a.getConcreteSeries(),r=this.getSingleChartStage(),s=this.getOuterChartHeight(r);if(t>=s*n.size)return null;if(e>=r.width)return null;const i=this.getPrimaryXScale(),c=Math.floor(t/s),o=this.getBarsCoordinates(c,i),{path:l,coordinates:u}=this.findBarCoordinatesForX(e,o,[]);return{path:this.findPathForIndices(l),series:n.get(c),chartIndex:c,coordinates:u}}findPathForIndices(e){const{data:t}=this.props,a=t.data[0][b.l],n=[];let r=a;return e.forEach(e=>{const t=r.data[e];n.push(t),r=t[b.l]}),n}findBarCoordinatesForX(e,t,a){for(let n=0;n<t.length;n++)if(t[n].isXWithin(e))return a.push(n),t[n].hasChildren()?this.findBarCoordinatesForX(e,t[n].children,a):{path:a,coordinates:t[n]};return{path:[],coordinates:null}}getYExtent(e,t){return Q.b(e,e=>t.selectValue(e))}getYScale(e,t){const{essence:a}=this.props,{flatData:n}=this.state,r=a.splits.length(),s=n.filter(e=>e.__nest===r-1),i=this.getYExtent(s,e);return Q.k().domain([Math.min(1.1*i[0],0),Math.max(1.1*i[1],0)]).range([t.height,t.y])}hasValidYExtent(e,t){const[a,n]=this.getYExtent(t,e);return!isNaN(a)&&!isNaN(n)}getSingleChartStage(){const e=this.getPrimaryXScale(),{essence:t,stage:a}=this.props,{stepWidth:n}=this.getBarDimensions(e.bandwidth()),r=e.domain(),s=r.length>0?Object(Ne.l)(e(r[r.length-1]))+n:0,i=t.getConcreteSeries(),c=a.height-84,o=Math.max(200,Math.floor(c/i.size));return new d.a({x:0,y:10,width:Math.max(s,a.width-60-2*b.n),height:o-10-0})}getOuterChartHeight(e){return e.height+10+0}getAxisStages(e){const{essence:t,stage:a}=this.props,n=Math.max(a.height-(10+e.height)*t.getConcreteSeries().size,84);return{xAxisStage:new d.a({x:e.x,y:0,height:n,width:e.width}),yAxisStage:new d.a({x:0,y:e.y,height:e.height,width:60+b.n})}}getScrollerLayout(e,t,a){const{essence:n}=this.props,r=n.getConcreteSeries().toArray(),s=this.getOuterChartHeight(e);return{bodyWidth:e.width,bodyHeight:s*r.length-0,top:0,right:a.width,bottom:t.height,left:0}}getBubbleTopOffset(e,t,a){const{scrollTop:n,scrollerYPosition:r}=this.state;return this.getOuterChartHeight(a)*t-n+r+e-8+10}getBubbleLeftOffset(e){const{scrollLeft:t,scrollerXPosition:a}=this.state;return a+e-t}canShowBubble(e,t){const{stage:a}=this.props,{scrollerYPosition:n,scrollerXPosition:r}=this.state;return!(t<=0)&&(!(t>n+a.height-84)&&(!(e<=0)&&!(e>r+a.width-60)))}renderSelectionBubble(e){const{dropHighlight:t,acceptHighlight:a}=this.props,{series:n,path:s,chartIndex:i,segmentLabel:c,coordinates:o}=e,l=this.getSingleChartStage(),u=this.getBubbleLeftOffset(o.middleX),h=this.getBubbleTopOffset(o.y,i,l);if(!this.canShowBubble(u,h))return null;const m=n.formatValue(s[s.length-1]);return r.a.createElement(I.a,{left:u,top:h,dropHighlight:t,acceptHighlight:a,title:c},m)}renderHoverBubble(e){const t=this.getSingleChartStage(),{series:a,path:n,chartIndex:s,segmentLabel:i,coordinates:c}=e,o=this.getBubbleLeftOffset(c.middleX),l=this.getBubbleTopOffset(c.y,s,t);if(!this.canShowBubble(o,l))return null;const u=this.renderMeasureLabel(n[n.length-1],a);return r.a.createElement(x.a,{top:l,left:o,title:i,content:u})}renderMeasureLabel(e,t){if(!this.props.essence.hasComparison())return t.formatValue(e);const a=t.selectValue(e),n=t.selectValue(e,P.b.PREVIOUS),s=t.formatter();return r.a.createElement(Ie.a,{lowerIsBetter:t.measure.lowerIsBetter,formatter:s,current:a,previous:n})}isSelected(e,t){const{essence:a,highlight:n}=this.props,{splits:r}=a;return Object(Ae.b)(n,t.key())&&n.clauses.equals(We(r,e))}isFaded(){return null!==this.props.highlight}hasAnySelectionGoingOn(){return null!==this.props.highlight}isHovered(e,t){const{essence:a}=this.props,{hoverInfo:n}=this.state,{splits:r}=a;if(this.hasAnySelectionGoingOn())return!1;if(!n)return!1;if(!n.series.equals(t))return!1;const s=e=>We(r,e);return s(n.path).equals(s(e))}renderBars(e,t,a,n,s,i,c=0,o=[]){const{essence:l}=this.props,{timezone:u}=l,{customization:{visualizationColors:h}}=this.context,m=[];let d;const g=Object(Me.d)(l.dataCube.dimensions,l.splits.splits.get(c).reference),f=l.splits.length();return e.forEach((e,l)=>{const p=e[g.name],E=Object(Ce.d)(p,u),S=o.concat(e);let v,y=null;const O=i[l],{x:x,y:j,height:w,barWidth:C,barOffset:N}=i[l];if(c<f-1){const r=e[b.l].data,i=this.renderBars(r,t,a,n,s,O.children,c+1,S);v=i.bars,!d&&i.highlight&&(d=i.highlight)}else{const e={series:t,chartIndex:a,path:S,coordinates:O,segmentLabel:E,splitIndex:c},s=this.isHovered(S,t);s&&(y=this.renderHoverBubble(e));const i=this.isSelected(S,t.definition),o=this.isFaded();i&&(y=this.renderSelectionBubble(e),y&&(d=this.renderSelectionHighlight(n,O,a))),v=r.a.createElement("g",{className:Object(Ne.b)("bar",{selected:i,"not-selected":!i&&o,isHovered:s}),key:String(p),transform:`translate(${Object(Ne.l)(x)}, 0)`},r.a.createElement("rect",{className:"background",width:Object(Ne.l)(C),height:Object(Ne.l)(Math.abs(w)),fill:h.main,x:N,y:Object(Ne.l)(j)}),y)}m.push(v)}),{bars:m,highlight:d}}renderSelectionHighlight(e,t,a){const{scrollLeft:n,scrollTop:s}=this.state,i=this.getOuterChartHeight(e),{barWidth:c,height:o,barOffset:l,y:u,x:h}=t,m={left:Object(Ne.l)(h)+l-4+e.x-n,top:Object(Ne.l)(u)-4+e.y-s+i*a,width:Object(Ne.l)(c+8),height:Object(Ne.l)(Math.abs(o)+8)};return r.a.createElement("div",{className:"selection-highlight",style:m})}renderXAxis(e,t,a){const{essence:n}=this.props,s=this.getPrimaryXScale(),i=s.domain(),c=n.splits.splits.first(),o=Object(Me.d)(n.dataCube.dimensions,c.reference),l=[];if(Object(Re.b)(o)){const n=e.length-1,s=c.sort.direction===Be.c.ascending,i=s?"start":"end",u=s?"end":"start";e.forEach((e,s)=>{const c=e[o.name];let h=String(de.Range.isRange(c)?c[i]:"");const m=t[s];l.push(r.a.createElement("div",{className:"slanty-label continuous",key:s,style:{right:a.width-m.x}},h)),s===n&&(h=String(de.Range.isRange(c)?c[u]:""),l.push(r.a.createElement("div",{className:"slanty-label continuous",key:"last-one",style:{right:a.width-(m.x+m.stepWidth)}},h)))})}else e.forEach((e,n)=>{const s=String(e[o.name]),i=t[n];l.push(r.a.createElement("div",{className:"slanty-label categorical",key:s,style:{right:a.width-(i.x+i.stepWidth/2)}},s))});return r.a.createElement("div",{className:"x-axis",style:{width:a.width}},r.a.createElement("svg",{style:a.getWidthHeight(),viewBox:a.getViewBox()},r.a.createElement(Te,{stage:a,ticks:i,scale:s})),l)}getYAxisStuff(e,t,a,n){const{yAxisStage:s}=this.getAxisStages(a),i=this.getYScale(t,s),c=i.ticks(5),o=r.a.createElement(ae.a,{orientation:"horizontal",scale:i,ticks:c,stage:a}),l=s.changeY(s.y+(a.height+10+0)*n);return{yGridLines:o,yAxis:r.a.createElement(ne.a,{formatter:t.formatter(),key:t.reactKey(),stage:l,ticks:c,tickSize:5,scale:i,hideZero:!0}),yScale:i}}isChartVisible(e,t){const{stage:a}=this.props,{scrollTop:n}=this.state,r=this.getSingleChartStage(),s=this.getOuterChartHeight(r),i=e*s,c=a.height-t.height;return!(i+s<n)&&!(i-n>=c)}renderChart(e,t,a,n,s){const{essence:i}=this.props,c=e.data[0][b.l],o=r.a.createElement(y.a,{series:a,datum:e.data[0],showPrevious:i.hasComparison()});if(!this.hasValidYExtent(a,c.data))return{chart:r.a.createElement("div",{className:"measure-bar-chart",key:a.reactKey(),style:{width:s.width}},r.a.createElement("svg",{style:s.getWidthHeight(0,0),viewBox:s.getViewBox(0,0)}),o),yAxis:null,highlight:null};const{xAxisStage:l}=this.getAxisStages(s),{yAxis:u,yGridLines:h}=this.getYAxisStuff(c,a,s,n);let m,d;if(this.isChartVisible(n,l)){const e=this.renderBars(c.data,a,n,s,l,t);m=e.bars,d=e.highlight}return{chart:r.a.createElement("div",{className:"measure-bar-chart",key:a.reactKey(),style:{width:s.width}},r.a.createElement("svg",{style:s.getWidthHeight(0,0),viewBox:s.getViewBox(0,0)},h,r.a.createElement("g",{className:"bars",transform:s.getTransform()},m)),o),yAxis:u,highlight:d}}initState(){const{essence:e,data:t}=this.props,{splits:a}=e;if(this.coordinatesCache=[],!a.length())return{};const n=a.splits.first(),r=Object(Me.d)(e.dataCube.dimensions,n.reference),s=r.kind,i=e.getConcreteSeries().toArray(),c=("number"===s?function(e,t,a){const n=e.data[0][b.l].data,r=t.name,s=n[0][r];if(!s)return e;const i=Number(s.start),c=Number(s.end)-i;let o=i,l=0;const u=[];n.forEach(e=>{const t=e[r].start;for(;o<t;)u[l]={},u[l][r]=de.NumberRange.fromJS({start:o,end:o+c}),a.forEach(e=>{u[l][e.name]=0}),e[b.l]&&(u[l][b.l]=new de.Dataset({data:[],attributes:[]})),l++,o+=c;u[l]=e,o+=c,l++});const h=e.valueOf();return h.data[0][b.l].data=u,new de.Dataset(h)}(t,r,i.map(e=>e.measure)):t).data[0][b.l],o=c.flatten({order:"preorder",nestingName:"__nest"}),l=a.splits.map(()=>0).toArray();this.maxNumberOfLeaves(c.data,l,0);return{hoverInfo:null,maxNumberOfLeaves:l,flatData:o.data,scrollTop:0,scrollLeft:0}}maxNumberOfLeaves(e,t,a){if(t[a]=Math.max(t[a],e.length),e[0]&&void 0!==e[0][b.l]){const n=e.length;for(let r=0;r<n;r++)this.maxNumberOfLeaves(e[r][b.l].data,t,a+1)}}getPrimaryXScale(){const{data:e}=this.props,{maxNumberOfLeaves:t}=this.state,a=e.data[0][b.l].data,{essence:n}=this.props,{splits:r,dataCube:s}=n,i=r.splits.first(),c=Object(Me.d)(s.dimensions,i.reference),{usedWidth:o,padLeft:l}=this.getXValues(t);return Q.j().domain(a.map(e=>e[c.name])).range([l,l+o])}getBarDimensions(e){isNaN(e)&&(e=0);const t=e,a=Math.max(.8*t,0);return{stepWidth:t,barWidth:a,barOffset:(t-a)/2}}getXValues(e){const{essence:t,stage:a}=this.props,n=a.width-2*b.n-60,r=e[0],s=20*e.slice(1).reduce((e,t)=>e*t,1),i=n-30-6;let c;c=s*r<i?Math.max(Math.min(i/r,140*t.splits.length()),20):s;const o=c*e[0];return{padLeft:Math.max(30,(n-o)/2),usedWidth:o}}getBarsCoordinates(e,t){if(this.coordinatesCache[e])return this.coordinatesCache[e];const{data:a}=this.props,n=a.data[0][b.l],{essence:r}=this.props,{splits:s,dataCube:i}=r,c=r.getConcreteSeries().get(e),o=s.splits.first(),l=Object(Me.d)(i.dimensions,o.reference),u=this.getSingleChartStage(),h=this.getYScale(c,this.getAxisStages(u).yAxisStage);return this.coordinatesCache[e]=this.getSubCoordinates(n.data,c,u,e=>e[l.name],t,h),this.coordinatesCache[e]}getSubCoordinates(e,t,a,n,r,s,i=1){const{essence:c}=this.props,{maxNumberOfLeaves:o}=this.state,{stepWidth:l,barWidth:u,barOffset:h}=this.getBarDimensions(r.bandwidth());return e.map((e,m)=>{const g=r(n(e,m)),f=s(t.selectValue(e)),p=s(0)-f,E=new Pe({x:g,y:p>=0?f:s(0),width:Object(Ne.l)(u),height:Object(Ne.l)(Math.abs(p)),stepWidth:l,barWidth:u,barOffset:h,children:[]});if(i<c.splits.length()){const n=new d.a({x:g,y:a.y,width:u,height:a.height}),r=(e,t)=>String(t),c=e[b.l].data,l=Q.j().domain(Q.h(0,o[i]).map(String)).range([g+h,g+n.width]);E.children=this.getSubCoordinates(c,t,n,r,l,s,i+1)}return E})}renderRightGutter(e,t,a){const n=t.changeHeight((t.height+10+0)*e);return r.a.createElement("svg",{style:n.getWidthHeight(),viewBox:n.getViewBox()},a)}renderSelectionContainer(e,t,a){return r.a.createElement("div",{className:"selection-highlight-container"},e)}render(){const{data:e,essence:t,stage:a}=this.props,{splits:n}=t;let s;const i=[];let c,o,l;if(n.length()){const a=this.getPrimaryXScale(),n=[],r=t.getConcreteSeries(),u=this.getSingleChartStage(),{xAxisStage:h,yAxisStage:m}=this.getAxisStages(u);c=this.renderXAxis(e.data[0][b.l].data,this.getBarsCoordinates(0,a),h),r.forEach((t,r)=>{const s=this.getBarsCoordinates(r,a),{yAxis:c,chart:o,highlight:h}=this.renderChart(e,s,t,r,u);i.push(o),n.push(c),h&&(l=this.renderSelectionContainer(h,r,u))}),s=this.getScrollerLayout(u,h,m),o=this.renderRightGutter(r.count(),u,n)}return r.a.createElement("div",{className:"measure-bar-charts",style:{height:a.height}},r.a.createElement(f.a,{layout:s,ref:this.scroller,bottomGutter:c,rightGutter:o,body:i,overlay:l,onClick:this.onClick,onMouseMove:this.onMouseMove,onMouseLeave:this.onMouseLeave,onScroll:this.onScrollerScroll}))}}Object(v.a)(Fe,"contextType",E.a);const ze=Object(s.m)(i.a.areExactSplitKinds("time"),i.a.areExactSplitKinds("*","time"),i.a.areExactSplitKinds("number"),i.a.areExactSplitKinds("*","number"));function De(e){return ze(e.essence)?r.a.createElement(r.a.Fragment,null,r.a.createElement(c.a,e),r.a.createElement(o.a,Object.assign({},e,{chartComponent:He}))):r.a.createElement(r.a.Fragment,null,r.a.createElement(o.b,e),r.a.createElement(o.a,Object.assign({},e,{chartComponent:Fe})))}}}]);
//# sourceMappingURL=bar-chart.3630a1be5ee7fd1212b2.js.map