@nebula.js/sn-bullet-chart
Version:
Visualize measures or measure values as bars with multiple axes and user-defined ranges. The ranges provide context to the bars which makes them easier to interpret.
7 lines (6 loc) • 256 kB
JavaScript
/*
* @nebula.js/sn-bullet-chart v2.4.0
* Copyright (c) 2026 QlikTech International AB
* Released under the MIT license.
*/
System.register(["picasso.js","picasso-plugin-q","hammerjs","qlik-chart-modules","qlik-chart-modules/react","@nebula.js/stardust","qlik-object-conversion"],function(e){"use strict";var t,i,n,o,r,a,s,l,c,u,d,h,m,p,g,f,y,v,x,b,S,M,w,k,C,q,E,T,A,N,R,O,D,I,L,P,z,_,j,H,B,F,W,$,U,V,X,K;return{setters:[function(e){t=e.default},function(e){i=e.default},function(e){n=e.default},function(e){o=e.getValue,r=e.setValue,a=e.selectionService,s=e.storage,l=e.cache,c=e.throttler,u=e.colorService,d=e.createTapInteraction,h=e.createAreaRangeInteraction,m=e.createContinuousRangeInteraction,p=e.createLassoInteraction,g=e.pluginService,f=e.tooltipService,y=e.layoutService,v=e.alternativeService,x=e.disclaimerService,b=e.dockService,S=e.themeService,M=e.debouncer,w=e.fontResolver},function(e){k=e.reactRenderer,C=e.axisTitleComponent,q=e.disclaimerComponent},function(e){E=e.useElement,T=e.useSelections,A=e.useOptions,N=e.useState,R=e.useLayout,O=e.useTranslator,D=e.useEffect,I=e.useAction,L=e.useRect,P=e.usePromise,z=e.useStaleLayout,_=e.useTheme,j=e.useApp,H=e.useModel,B=e.useConstraints,F=e.useAppLayout,W=e.usePlugins,$=e.useEmbed,U=e.useDeviceType,V=e.onTakeSnapshot,X=e.useImperativeHandle},function(e){K=e.default}],execute:function(){e("default",function(e){!function(e){if(e&&e.get&&e.add){const t="Object.Disclaimer.LimitedData";if(e.get(t)!==t)return;Object.keys(G).forEach(t=>{e.add(G[t])})}}(e.translator);const r=function(){const e=t();return e.use(i),e.use(function(e){if("function"!=typeof e.interaction)return t=>{t.interaction("hammer",Z(e))};return void e.interaction("hammer",Z(Hammer))}(n)),e.renderer("react-qcm",k),e.component("axis-title",C),e.component("disclaimer",q),e.component("scrollbar",co),e.component("scroll-hint",dn),e.component("box-axis",$o),e.component("box-sliced-hat",bo),e.component("box-out-of-bounds",go),e}();return{qae:il(e),ext:Ml(e),component(){const{core:t,models:i}=function({picasso:e}){const t=E(),i=T(),n=A(),{renderer:o}=n,[r,a]=N(),[c,u]=N(),[d,h]=N(!1),[m,p]=N(!1),g=R(),f=O(),y=!!g?.qSelectionInfo?.qInSelections,v=!!g.qHyperCube?.qDimensionInfo?.[0]?.qIsOneAndOnlyOne;return D(()=>{t.style.overflow="hidden";const i=e({renderer:{prio:[o||"canvas"]}}),n=i.chart({element:t,data:[],settings:{}}),r=s({scrollOffset:void 0,viewRange:[0,1]}),c=l(),u=function(){const e={},t={interact:{key:"interact",isEnabled:!0,enabled(){return this.isEnabled},update(e){this.isEnabled=!e.active}},tooltip:{key:"tooltip",isActive:!0,isEnabled:!0,action(e){this.isActive=!!e},active(){return this.isActive},enabled(){return this.isEnabled},update(e){this.isEnabled=!e.passive}},scroll:{key:"scroll",isActive:!0,isEnabled:!0,action(){this.isActive=!this.isActive},active(){return this.isActive},enabled(){const{discrete:t}=e;return this.isEnabled&&(!t||t.query.getCanScroll())},update(e){this.isEnabled=!e.active}},select:{key:"select",isActive:!1,isEnabled:!0,action(){this.isActive=!this.isActive},active(){return this.isActive},enabled(){return this.isEnabled},update(e){this.isEnabled=!e.select&&!e.active}},lasso:{key:"lasso",action(){}}},i=e=>(Object.keys(Ko.prototype).forEach(t=>{e[t]=Ko.prototype[t]}),Ko.init(e),e);return Object.keys(t).filter(e=>"setContext"!==e).forEach(e=>i(t[e])),t.setContext=(t={})=>{Object.assign(e,t)},t.setContext.update=()=>{},t}();return a({picassoInstance:i,chart:n,actions:u,store:{},viewState:r,viewCache:c}),()=>{n.destroy()}},[]),I(()=>{if(!r?.actions)return{};const{actions:e}=r,t={action(e){h("boolean"==typeof e?e:!d)},hidden:!y||v};return e&&(e.lasso={...t,active:()=>d,update:e=>{!!r&&p(!e.select&&!e.active)},enabled:()=>m}),{...t,label:f.get(d?"Tooltip.ToggleOffLassoSelection":"Tooltip.ToggleOnLassoSelection"),active:d,icon:Go}},[r,d,m,y,v,f.language()]),D(()=>{if(!r?.actions)return()=>{};const{chart:e,actions:t}=r,n=Jo({chart:e,actions:t,selections:i});return u({selectionService:n,updateModels:Yo}),()=>{n.destroy()}},[r]),{core:r,models:c}}({picasso:r});!function({core:e,models:t,env:i}){const{flags:n}=i,r=i.anything?.sense?.isUnsupportedFeature,a=z(),s=_(),u=j(),m=H(),p=O(),g=T(),f=B()||{},{qLocaleInfo:w}=F(),k=A(),{direction:C,viewState:q}=k,E="rtl"===C,N=L(),R=W(),I=$(),V=U(),[X]=P(()=>{if(!e||!t||!f)return Promise.resolve([]);const{picassoInstance:i,chart:r,actions:d,viewState:h,store:g,viewCache:M}=e,{selectionService:C,updateModels:T}=t;Object.keys(d).forEach(e=>d[e].update(f));const A=y({source:a,metaAdditionsFn:Ps}),O=v({app:u,translator:p}),D=x({config:{args:{layoutService:A},disclaimers:{NoDataExist:!0,OnlyNanDataMeasure:!0}}});D.initialize();const L=Zo({layout:a,options:k}),P=function({layoutService:e}){return{major:e.meta.isDimensionless?void 0:"qDimensionInfo/0",minors:e.getHyperCubeValue("qMeasureInfo").map((e,t)=>`qMeasureInfo/${t}`)}}({layoutService:A}),z=va({app:u,model:m,translator:p,picasso:i,localeInfo:w,theme:s,layoutService:A}),_=function({picasso:e,chart:t,localeInfo:i,layoutService:n,colorService:o,options:r,viewCache:a}){const s=[ca.COMPONENT.MAJOR_AXIS_TITLE,ca.COMPONENT.MINOR_AXIS_TITLE,ca.COMPONENT.GRID_LINE,ca.COMPONENT.ZERO_LINE],l={isDataless:!1},c=[],u={main:c,dataset:e.data("q")({key:ca.DATA.MAIN,data:n.getHyperCube(),config:{localeInfo:i}})},d={isPartialUpdating:!1,hasSlicedHats:!1},h=()=>!0===r.chartAnimations&&(!(d.isPartialUpdating||d.hasSlicedHats||a.get("hasSlicedHats"))&&!bn.propertiesHaveChanged({viewCache:a,layout:n.getLayout()}));return{query:{getIsUpdateDataless:()=>l.isDataless,getDataset:()=>u.dataset,animationsEnabled:h},command:{getChart:()=>t,update:({settings:e}={})=>{t.update({settings:e})},updateDataless:({generateSettings:e,forceData:r=!1})=>{const a=e();r||(l.isDataless=!0,u.main=n.getDataPages(),n.setDataPages([]));const s=[{type:"q",key:ca.DATA.MAIN,data:n.getHyperCube(),config:{localeInfo:i}},...o.getData()];t.layoutComponents({data:s,settings:a}),r||(n.setDataPages(u.main),u.main=c,l.isDataless=!1),d.hasSlicedHats=a.components.filter(e=>"box-sliced-hat"===e.type).length>0},updatePartial:()=>{d.isPartialUpdating=!0,t.update({partialData:!0,excludeFromUpdate:s}),d.isPartialUpdating=!1},getAnimationsMeta:e=>d[e]}}}({picasso:i,chart:r,localeInfo:w,layoutService:A,colorService:z,options:k,viewCache:M}),j=b({chart:r,layoutService:A,config:{logicalSize:L,rtl:E},typeConfig:{type:"major-minor",fallback:"vertical",invert:!0}}),H=function({layoutService:e}){const{hasDimensions:t}=e.meta,i={bullet2Scale:{}},n=()=>{i.bullet2Scale={};const{qMatrix:n}=e.getDataPages()[0];t?n.forEach((e,t)=>{const n=e[0].qElemNumber;i.bullet2Scale[n]=t}):n[0]&&n[0].forEach((e,t)=>{i.bullet2Scale[t]=t})};return{query:{bullet2Scale:e=>i.bullet2Scale[e]},command:{update:n}}}({layoutService:A}),B=function({layoutService:e}){const t=function({layoutService:e}){return function({layoutService:e}){return function({itemIndex:t}){const i=function(e,t){const{hasDimensions:i,isSharedRange:n,measuresTargetIndex:o,measuresSegmentIndices:r}=e.meta,a=e.getHyperCubeValue("qMeasureInfo");let s;if(n||!ha(t))s=[ma({measures:a,index:0,measuresTargetIndex:o,measuresSegmentIndices:r})];else if(i){const[{qMatrix:i=[]}={}]=e.getDataPages()||[];s=function(e,t,i){const n=e[t],o={qMin:NaN,qMax:NaN,qAttrExprInfo:[]};if(!n)return[o];const{qNum:r=NaN,qAttrExps:a}=n[1],s=a?a.qValues.filter((e,t)=>i.indexOf(t)>-1).map(e=>({qMin:e.qNum,qMax:e.qNum})):[];return[{...o,qMin:r,qMax:r,qAttrExprInfo:s}]}(i,t,[o[0],...r[0]])}else s=[ma({measures:a,index:t,measuresTargetIndex:o,measuresSegmentIndices:r})];return s}(e,t),n=i.map(e=>e.qAttrExprInfo),o=[...i,...da(n)];return{min:Math.min(...o.filter(e=>ha(e.qMin)).map(e=>e.qMin)),max:Math.max(...o.filter(e=>ha(e.qMax)).map(e=>e.qMax))}}}({layoutService:e})}({layoutService:e}),i=ne(!0,{},fa),n=()=>{const n=e.getDataPages()[0];if(ne(!0,i,ya(e,t)),n&&n.qMatrix){const o=e.meta.hasDimensions?n.qMatrix:n.qMatrix[0];i.individual=o?o.map((i,n)=>ya(e,t,n)):[]}else i.individual=[]};return n(),{query:{getExtrema:e=>"number"==typeof e&&e<i.individual.length?i.individual[e]:i},command:{update:n}}}({layoutService:A}),F=S({theme:s,config:{id:"bulletChart",transform:[["label.value.fontSize",e=>parseInt(e,10)]]}}),W=function({layoutService:e,themeService:t}){const i=t.getStyles(),n=t=>e.getLayoutValue("components",[]).find(e=>e.key===t);return{query:{axis:{title:{getStyle:()=>({color:n("axis")?.axis?.title?.color?.color??i.axis.title.color,fontFamily:n("axis")?.axis?.title?.fontFamily??i.axis.title.fontFamily,fontSize:n("axis")?.axis?.title?.fontSize??i.axis.title.fontSize})},label:{getStyle:()=>({fill:n("axis")?.axis?.label?.name?.color?.color??i.axis.label.name.color,fontFamily:n("axis")?.axis?.label?.name?.fontFamily??i.axis.label.name.fontFamily,fontSize:n("axis")?.axis?.label?.name?.fontSize??i.axis.label.name.fontSize})}},label:{getStyle:()=>({fill:n("label")?.label?.value?.color?.color??i.label.value.color,useContrastColor:n("label")?.label?.value?.useContrastColor??!0,fontFamily:n("label")?.label?.value?.fontFamily??i.label.value.fontFamily,fontSize:n("label")?.label?.value?.fontSize??i.label.value.fontSize})}}}}({layoutService:A,themeService:F}),$=xr({flags:n,layout:a,app:u,model:m,chart:r,translator:p,localeInfo:w,embed:I,options:k}),U=Us({chart:r,translator:p,actions:d,rtl:E,fieldModel:P,layoutService:A,colorService:z,dockService:j,themeService:F,custom:$}),V=function({chart:e,layoutService:t,chartModel:i,extremumModel:n,dockService:o,themeService:r,fieldModel:a}){const{hasDimensions:s}=t.meta,l={extremaList:[]},c=e=>void 0===e?(l.extrema||(l.extrema=n.query.getExtrema()),l.extrema):(l.extremaList[e]||(l.extremaList[e]=n.query.getExtrema(e)),l.extremaList[e]);function u(n=void 0){const l=c(n),u=e.formatter(a.minors[s?0:n||0]),d=function({chart:e,layoutService:t,chartModel:i,dockService:n,themeService:o,extrema:r,formatter:a}){const s=la,l=o.getStyles(),c=e=>ua({text:e,fontFamily:l.axis.label.name.fontFamily,fontSize:l.axis.label.name.fontSize}),u=function({chart:e,chartModel:t,dockService:i}){const n=e.component(ca.COMPONENT.BAR),o=t.query.getIsUpdateDataless()||!n?i.meta.chart.size:n.rect;return"horizontal"===i.meta.major.orientation?o.height:o.width}({chart:e,chartModel:i,dockService:n}),d=s({layoutService:t,dockService:n,measureText:c,extrema:r,size:u,formatter:a});return d}({chart:e,layoutService:t,chartModel:i,dockService:o,themeService:r,extrema:l,formatter:u});return d}const d=()=>{l.extremaList=[],l.extrema=n.query.getExtrema()};return{query:{getValues:e=>u(e).values,getMin:e=>{const t=c(e);return t.meta.hasExplicitMin?t.explicit.min:u(e).min},getMax:e=>{const t=c(e);return t.meta.hasExplicitMax?t.explicit.max:u(e).max}},command:{update:d}}}({chart:r,layoutService:A,chartModel:_,extremumModel:B,dockService:j,themeService:F,fieldModel:P}),X=function({layoutService:e,dockService:t,tickModel:i,chart:n,fieldModel:o,themeService:r}){let a={},{mode:s}=t.meta.chart,l=Na({layoutService:e,dockService:t});const c=r.getStyles(),{hasDimensions:u,numDataItems:d,hasTarget:h,hasRange:m,isSharedRange:p}=e.meta,g={paddingStart:1,paddingEnd:8,labelMargin:2,tickSize:5,strokeWidth:1},f=g.paddingStart+g.paddingEnd+g.labelMargin+g.tickSize+g.strokeWidth,y=e=>ua({text:e,fontFamily:c.axis.label.name.fontFamily,fontSize:c.axis.label.name.fontSize}),v=e=>Math.max(...e.map(e=>e.height)),x=e=>Math.max(...e.map(e=>e.width)),b=()=>{let e,t,r=[];if(u)if(e=n.formatter(o.minors[0]),p)t=i.query.getValues().filter(e=>!e.isMinor),r=t.map(t=>e(t.value));else for(let n=0;n<d;n++)t=i.query.getValues(n).filter(e=>!e.isMinor),r=r.concat(t.map(t=>e(t.value)));else for(let a=0;a<d;a++)e=n.formatter(o.minors[a]),t=i.query.getValues(a).filter(e=>!e.isMinor),r=r.concat(t.map(t=>e(t.value)));return r},S=e=>{const t={},i=[];return e.forEach(e=>{t[e]||(t[e]=!0,i.push(e))}),i},M=e=>{const t=l?e:e*_s;return m?t/a.range.widthPxs[s].DEFAULT:h?t/a.target.widthPxs[s].DEFAULT:t/a.bar.widthPxs[s].DEFAULT},w=e=>{const t=M(e);t<1&&(Object.keys(zs).forEach(e=>{Object.keys(zs[e]).forEach(i=>{a.bar.widthPxs[e][i]*=t})}),a.bar.widthPx=a.bar.widthPxs[s].DEFAULT,h&&(Object.keys(zs).forEach(e=>{Object.keys(zs[e]).forEach(i=>{a.target.widthPxs[e][i]*=t})}),a.target.widthPx=a.target.widthPxs[s].DEFAULT),m&&(Object.keys(zs).forEach(e=>{Object.keys(zs[e]).forEach(i=>{a.range.widthPxs[e][i]*=t})}),a.range.widthPx=a.range.widthPxs[s].DEFAULT))},k=()=>{s=t.meta.chart.mode,l=Na({layoutService:e,dockService:t});const i=Math.min(200,t.meta.chart.size["horizontal"===t.meta.major.orientation?"height":"width"]/4);a={bar:{widthPxs:{}},target:{widthPxs:{},widthPx:0},range:{widthPxs:{},widthPx:0},maxBTR:{widthPxs:{}},bulletAxis:g,itemWidths:{},maxPxStep:i},Object.keys(zs).forEach(e=>{a.bar.widthPxs[e]={},Object.keys(zs[e]).forEach(t=>{a.bar.widthPxs[e][t]=zs[e][t]*_s})}),a.bar.widthPx=a.bar.widthPxs[s].DEFAULT,h&&(Object.keys(zs).forEach(e=>{a.target.widthPxs[e]={},Object.keys(zs[e]).forEach(t=>{a.target.widthPxs[e][t]=a.bar.widthPxs[e][t]*Hs})}),a.target.widthPx=a.target.widthPxs[s].DEFAULT),m&&(Object.keys(zs).forEach(e=>{a.range.widthPxs[e]={},Object.keys(zs[e]).forEach(t=>{a.range.widthPxs[e][t]=a.bar.widthPxs[e][t]*js})}),a.range.widthPx=a.range.widthPxs[s].DEFAULT),w(i),a.maxBTR.widthPxs=m?a.range.widthPxs:h?a.target.widthPxs:a.bar.widthPxs;let n=0;if(l){const e=S(b()).map(y),o=v(e),r=x(e)+2;n=f+("horizontal"===t.meta.major.orientation?r:o),Object.keys(zs).forEach(e=>{a.itemWidths[e]={},Object.keys(zs[e]).forEach(t=>{a.itemWidths[e][t]=a.maxBTR.widthPxs[e][t]+n})}),a.maxPxStep=_s*i+n}else Object.keys(zs).forEach(e=>{a.itemWidths[e]={},Object.keys(zs[e]).forEach(t=>{a.itemWidths[e][t]=a.maxBTR.widthPxs[e][t]/_s})});const o=a.itemWidths[s].DEFAULT;a.bar.width=a.bar.widthPx/o,a.target.width=a.target.widthPx/o,a.range.width=a.range.widthPx/o,a.bulletAxis.widthPx=n,a.bulletAxis.width=a.bulletAxis.widthPx/o,a.bandWidthPx=o,a.maxBTR.widthPx=m?a.range.widthPx:h?a.target.widthPx:a.bar.widthPx,a.maxBTR.width=m?a.range.width:h?a.target.width:a.bar.width};return k(),{BAR_WIDTH_RATIO:_s,query:{getBulletAxis:()=>a.bulletAxis,getBar:()=>a.bar,getTarget:()=>a.target,getRange:()=>a.range,getMaxBTR:()=>a.maxBTR,getBandWidthPx:()=>a.bandWidthPx,getItemWidths:()=>a.itemWidths,getExpand:()=>a.expand,getMaxPxStep:()=>a.maxPxStep},command:{update:k}}}({layoutService:A,dockService:j,tickModel:V,chart:r,fieldModel:P,themeService:F}),K=function({layoutService:e,mappingModel:t,tickModel:i,dockService:n,chart:o,rtl:r}){const{isSharedRange:a,hasDimensions:s}=e.meta,l="vertical"===n.meta.minor.orientation||r,c={scales:[]},u=({index:e})=>{const t=vs({key:ca.SCALE.DIMENSION_PREFIX+e,tickModel:i,invert:l,index:e});return o.scale(t)},d=e=>a?o.scale(ca.SCALE.MAIN.MINOR):(c.scales[e]||(c.scales[e]=u({index:e})),c.scales[e]),h=e=>{if(a)return o.scale(ca.SCALE.MAIN.MINOR);if(s){const i=t.query.bullet2Scale(e.datum.value);return d(i)}return o.scale(e.datum.source.field)};return{query:{getScale:h},command:{update:()=>{c.scales=[]}}}}({layoutService:A,mappingModel:H,tickModel:V,dockService:j,chart:r,rtl:E}),G=function({chart:e,actions:t,componentKey:i,enigmaModel:n,layoutService:r,dockService:a,trendLineModel:s,itemWidths:u,viewState:d,rtl:h,options:{definitionPath:m="/qHyperCubeDef",getRect:p,axisKey:g,renderer:f,areaBuffer:y,processDataPage:v=()=>{},getReducedCube:x=()=>{}}={}}){const b=l(),S=function({qMode:e}){switch(e){case"K":return Tr;case"T":return Ar;default:return Er}}({qMode:r.getHyperCubeValue("qMode")}),M=function({state:e,contains:t}){return e.set(Nr,[]),{add:t=>{const i=e.get(Nr);i.length=0,i.push(t)},getCurrent:()=>e.get(Nr)[0],getAll:()=>e.get(Nr),contains:i=>t(e.get(Nr)[0],i)}}({state:b,contains:S.contains});!function({layoutService:e,dataStore:t,composition:i}){const n=e.getDataPages()[0];if(!n)return;const o=i.patcher({layoutService:e});o.should(n)&&o(n);t.add(n)}({layoutService:r,dataStore:M,composition:S});const w=function({buffer:e}){return void 0===e?void 0:2*Math.round(e/2)}({buffer:y}),k=function({dataStore:e,composition:t,enigmaModel:i,layoutService:n,trendLineModel:o=zr,definitionPath:r,processDataPage:a}){const{slicer:s,cacheWarden:l,request:u}=t,d=function({dataStore:e,slice:t,warden:i,expand:n,request:o,process:r,connectionless:a,processDataPage:s}){const l=(l,{onProcessing:c}={})=>{if(e.contains(l)){const n=e.getCurrent();if(a)return Promise.resolve(t(n,l));const o=i.release(n.qArea,l),s=r.isProcessing();if(!o&&s&&r.cancel(),!o||s)return Promise.resolve(t(n,l))}if(a)return Promise.resolve(e.getCurrent());r.isProcessing()&&c&&c();const u=n(l);return r(o(u)).then(i=>(s(i),e.add(i),t(i,l)))};return l}({dataStore:e,slice:s,warden:l({bounds:{width:n.meta.size.x,height:n.meta.size.y}}),expand:Lr({layoutService:n}),request:u({definitionPath:r}),process:Pr(i),connectionless:n.meta.isSnapshot,processDataPage:a}),h=c((e,{onProcessing:t,onData:i})=>{d(e,{onProcessing:t}).then(e=>i(e)).catch(e=>{if(e!==br)throw e})},kr);return function(e,{onProcessing:t=Sr,onDataPage:i=Sr}={}){h(e,{onProcessing:t,onData:e=>{n.setDataPages(e?[e]:[]),o.command.update(),i(e)}})}}({dataStore:M,composition:S,enigmaModel:n,layoutService:r,trendLineModel:s,definitionPath:m,processDataPage:v}),C=function({chart:e,componentKey:t,state:i,dataStore:n,pageData:o,layoutService:r,dockService:a,itemWidths:s,getRect:l,axisKey:c,renderer:u,areaBuffer:d,viewState:h,rtl:m,getReducedCube:p}){i.set("rect",{width:0,height:0}),i.set("itemWidths",{}),i.set("itemSize",0),i.set("items",{}),i.set("offsets",{}),i.set("finished",0),i.set("scaleRange",[0,1]);const g=function({chart:e,getRect:t,getDataPages:i,layoutService:n,dockService:o,getItemWidths:r,axisKey:a,renderer:s,areaBuffer:l,rtl:c,getReducedCube:u}){const{inTotal:d,area:h,scaleRange:m}=function({layoutService:e}){const{isDimensionless:t,isGrouped:i,isGroupedByMeasure:n}=e.meta;if(t)return _r;if(!i)return jr;return n?Wr:Vr}({layoutService:n}),p=()=>"horizontal"===o.meta.major.orientation?t().width:t().height,g=e=>e?p()/e:0,f=(e,t)=>-(e-t)*g(t);return{getItems(){const i=n.getLayoutValue("dimensionAxis"),l=d({layoutService:n,getReducedCube:u});return{inTotal:l,inView:Xr({chart:e,rect:t(),dockService:o,itemWidths:r(),axisKey:a,renderer:s,isGrouped:n.meta.isGrouped,dimensionAxis:i,inTotal:l,isMajorLabelless:"none"===i.show||"title"===i.show,maxDataRows:Math.floor(Mr/(n.meta.dimensionCount+n.meta.measureCount))})}},getItemSize({items:e}){const{inView:t}=e;return g(t)},getOffsets({pixelOffset:e,items:t}){const{inTotal:i,inView:n}=t,o=Math.min(0,Math.max(e,f(i,n))),r=n?Math.abs(n*o/p()):0;return{start:{pixel:o,item:r},end:{item:Math.min(r+(n||0),i)}}},getUpperBound({items:e}){const{inTotal:t,inView:i}=e;return f(t,i)},getViewRange({pixelOffset:e,items:t}){const{inTotal:i,inView:n}=t;return function({viewSize:e,inTotal:t,inView:i,pixelOffset:n}){const o=e/i*t,r=Math.abs(n)/o,a=Math.min(1,r+e/o);return[r,a]}({viewSize:p(),inTotal:i,inView:n,pixelOffset:e})},getArea:({itemOffset:e,items:t})=>h({getDataPages:i,layoutService:n,itemOffset:e,inView:t.inView,areaBuffer:l}),getScaleRange({offsets:e,items:t}){const r=m({getDataPages:i,layoutService:n,offsets:e,items:t,viewSize:p(),upperBound:f(t.inTotal,t.inView)});return"horizontal"===o.meta.major.orientation&&c?function(e){return[1-e[1],1-e[0]]}(r):r},validate:{offset({pixelOffset:e,items:t}){const{inTotal:i,inView:n}=t;return e<=0&&e>=f(i,n)}},convert:{itemToPixelOffset({itemOffset:e,items:t}){const{inView:i}=t,n=e*g(i);return Number.isFinite(n)?-n:0},relativeToPixelOffset({relativeOffset:e,items:t}){const{inTotal:i,inView:n}=t;return-e*(g(n)*i)}}}}({chart:e,getRect:()=>i.get("rect"),getDataPages:n.getCurrent,layoutService:r,dockService:a,getItemWidths:()=>i.get("itemWidths"),axisKey:c,renderer:u,areaBuffer:d,rtl:m,getReducedCube:p}),f=()=>{const e=g.getItems();return i.set("items",e),e},y=({pixelOffset:e,items:t})=>{const n=g.getOffsets({pixelOffset:e,items:t});return i.set("offsets",n),n},v=({items:e})=>{const t=r.getLayoutValue("scrollStartPos"),i=h.get("scrollOffset");if(void 0===i)return 1===t?g.getUpperBound({items:e}):0;if("number"==typeof i)return g.convert.itemToPixelOffset({itemOffset:i,items:e});const{start:n,end:o}=i,a=1===t&&o?o-e.inView:n;return g.convert.itemToPixelOffset({itemOffset:a,items:e})},x=e=>{const[{qArea:t}]=r.getDataPages();return!!t&&Object.keys(e).every(i=>e[i]===t[i])},b=e=>{const t=Date.now(),n=f(),r=y({pixelOffset:e,items:n}),a=g.getArea({itemOffset:r.start.item,items:n});if(x(a))return void((g.validate.offset({pixelOffset:e,items:n})||h.get("scrollOffset").start!==r.start.item)&&(i.set("finished",t),i.set("scaleRange",g.getScaleRange({offsets:r.start,items:n})),h.preventSet("viewRange",g.getViewRange({pixelOffset:r.start.pixel,items:n})),h.set("scrollOffset",{start:r.start.item,end:r.end.item})));h.preventSet("viewRange",g.getViewRange({pixelOffset:r.start.pixel,items:n}));const s=()=>{i.get("finished")>t||(i.set("finished",t),i.set("scaleRange",g.getScaleRange({offsets:r.start,items:n})),h.set("scrollOffset",{start:r.start.item,end:r.end.item}))};o(a,{onProcessing:s,onDataPage:s})};return{enabled(){const{inTotal:e,inView:t}=i.get("items");return e>t},itemSize:()=>i.get("itemSize"),scaleRange:()=>i.get("scaleRange"),initialize(){const n=e.component(t);if(!n)return Promise.resolve();i.set("rect","function"==typeof l?l():n.rect),i.set("itemWidths","function"==typeof s?s():s);const r=f();i.set("itemSize",g.getItemSize({items:r}));const a=v({items:r}),c=y({pixelOffset:a,items:r});h.preventSet("viewRange",g.getViewRange({pixelOffset:c.start.pixel,items:r}));const u=g.getArea({itemOffset:c.start.item,items:r});return new Promise(e=>{o(u,{onDataPage:()=>{i.set("scaleRange",g.getScaleRange({offsets:c.start,items:r})),h.preventSet("scrollOffset",{start:c.start.item,end:c.end.item}),e()}})})},scroll(e){const t=i.get("offsets").start.pixel+e;b(t)},scrollToRelative(e){const t=i.get("items"),n=g.convert.relativeToPixelOffset({relativeOffset:e,items:t});b(n)}}}({chart:e,componentKey:i,state:b,dataStore:M,pageData:k,layoutService:r,dockService:a,itemWidths:u,getRect:p,axisKey:g,renderer:f,areaBuffer:w,viewState:d,rtl:h,getReducedCube:x}),q=function({layoutService:e,dataStore:t}){return function(i){const n=o(i,`${e.refs.dataPages}`);n.length=0,n.push(t.getCurrent())}}({layoutService:r,dataStore:M}),E=function({chart:e,actions:t,componentKey:i,dockService:n,rtl:o,scroller:r}){return{gestures:[Dr({chart:e,actions:t,componentKey:i,dockService:n,rtl:o,scroller:r})],native:{type:"native",events:{wheel:Ir({chart:e,actions:t,componentKey:i,scroller:r})}}}}({chart:e,actions:t,componentKey:i,dockService:a,rtl:h,scroller:C});return{interactions:E,query:{getCanScroll:()=>C.enabled(),getItemSize:()=>C.itemSize(),getScaleRange:()=>C.scaleRange(),getCurrentDataPage:()=>M.getCurrent()},command:{initialize:()=>C.initialize(),scrollTo:e=>C.scrollToRelative(e),setSnapshotData:e=>q(e)}}}({chart:r,actions:d,componentKey:ca.COMPONENT.BAR,enigmaModel:m,layoutService:A,dockService:j,itemWidths:X.query.getItemWidths,viewState:h,rtl:E,options:{axisKey:ca.COMPONENT.MAJOR_AXIS,renderer:i.renderer("svg")()}});d.setContext({discrete:G});const J=Bs({picassoInstance:i,plugins:R,layoutService:A});return t.alternativeService=O,t.layoutService=A,t.fieldModel=P,t.colorService=z,t.chartModel=_,t.dockService=j,t.mappingModel=H,t.extremumModel=B,t.styleModel=W,t.themeService=F,t.tooltipService=U,t.tickModel=V,t.itemWidthModel=X,t.scaleModel=K,t.discrete=G,t.disclaimerService=D,g.context={rtl:E,logicalSize:L},g.rect={...N},h.onChanged("scrollOffset",()=>{T(t),_.command.updatePartial()}),function({layoutService:e,viewState:t,viewStateOptions:i={}}){const n=e.meta.isSnapshot?e.getLayoutValue("snapshotData.content.chartData",{}):i;t.preventSet("scrollOffset",n.scrollOffset)}({layoutService:A,viewState:h,viewStateOptions:q}),C.setLayout(A.getLayout()),function({layout:e,model:t}){if(ve.snapshot(e))return Promise.resolve(null);return t.getEffectiveProperties().then(e=>({properties:e}))}({layout:A.getLayout(),model:m}).then(e=>Promise.all([Promise.resolve(e),z.initialize(),J.initialize().then(()=>{t.pluginService=J}),O.initialize({properties:e?.properties||{}})]))},[e,t,f,a,C,s.name(),p.language()]),[K]=P(()=>{if(!X||!X.length)return Promise.resolve([]);const{properties:i}=X[0]||{},{picassoInstance:o,chart:a,actions:s,viewState:l,viewCache:c,store:y}=e;Object.keys(s).forEach(e=>s[e].update(f));const{alternativeService:v,layoutService:x,fieldModel:b,colorService:S,chartModel:w,dockService:k,mappingModel:C,extremumModel:q,styleModel:E,themeService:T,tooltipService:A,tickModel:N,itemWidthModel:R,scaleModel:O,discrete:D,disclaimerService:I,selectionService:L,pluginService:P}=t;if(!S.isInitialized())return Promise.resolve([]);A.expando.set("properties",i),y.context.constraints=f;const z=()=>function(e,t){const{properties:i,alternativeService:n,dockService:o,layoutService:r,disclaimerService:a,isUnsupportedFeature:s,extensions:l,discrete:c,viewState:u,viewCache:m,styleModel:p,themeService:g,tooltipService:f,tickModel:y,chartModel:v,selectionService:x,translator:b,flags:S,actions:M,colorService:w,isLocked:k,scaleModel:C,fieldModel:q,extremumModel:E,itemWidthModel:T,mappingModel:A,model:N,app:R,debouncer:O,pluginService:D,deviceType:I,selections:L}=t,{constraints:P,rtl:z,logicalSize:_}=e,j=r.getLayout(),H=function(e){return e.qHyperCube.qMeasureInfo.map((e,t)=>`qMeasureInfo/${t}`)}(j),B=function(e){return e.qHyperCube.qDimensionInfo.map((e,t)=>`qDimensionInfo/${t}`)}(j),{hasDimensions:F}=r.meta,W="vertical"===o.meta.minor.orientation||z,$=F?B:H,U=function({layoutService:e,fields:t,chartModel:i,colorService:n}){const o=function({layoutService:e,fields:t,collectionKey:i,chartModel:n,colorService:o}){const{hasDimensions:r,measuresSegmentIndices:a=[],measuresTargetIndex:s,dimensionCount:l}=e.meta,c={key:i,data:{extract:t.map((t,i)=>{const c={field:t,value:r?void 0:i,props:{start:0,end:{field:r?"qMeasureInfo/0":t,reduceLabel:"none",label:Ns({dataset:n.query.getDataset(),minor:r?"qMeasureInfo/0":t})},...Rs({colorService:o,index:i}),selectionDimension:{field:t},...0!==l&&{customTooltipAttrExps:gr.getNode(e.getLayout(),e.meta)}}},u=r?0:i;-1!==s[u]&&(c.props.target={field:`qMeasureInfo/${u}/qAttrExprInfo/${s[u]}`,value:e=>e.qNum});const d=a[u];return d&&d.length&&d.forEach(e=>{c.props[`limit${e}`]={field:`qMeasureInfo/${u}/qAttrExprInfo/${e}`,value:e=>e.qNum}}),c})}};return c}({layoutService:e,fields:t,collectionKey:ca.COLLECTION.MAIN,chartModel:i,colorService:n});return[o]}({layoutService:r,fields:$,chartModel:v,colorService:w}),V={...xs({measures:H,yAxisData:F?B:H,invert:W,discrete:c,layoutService:r,tickModel:y,fieldModel:q,itemWidthModel:T,dockService:o,rtl:z}),...w.getScales()},X=function({fieldModel:e}){const t={};return e.minors.forEach(e=>{t[e]={data:{field:e}}}),t}({fieldModel:q}),K=function({actions:e,selectionService:t,layoutService:i,colorService:n,chartModel:o,isLocked:r,dockService:a,flags:s,isUnsupportedFeature:l,debouncer:c}){const u=o.command.getChart(),m=i.getHyperCubeValue("qDimensionInfo.0.qIsOneAndOnlyOne",!1),p=function(e){const{actions:t,isLocked:i,flags:n,layoutService:o,selectionService:r}=e,{hasDimensions:a}=o.meta,s=o.getHyperCubeValue("qDimensionInfo.0.qIsOneAndOnlyOne",!1),l=!a||r.getIsDimensionLocked(),c=l?[ca.COMPONENT.BAR]:[ca.COMPONENT.BAR,ca.COMPONENT.MAJOR_AXIS,ca.COMPONENT.RANGES],u=(e,t)=>[{key:t[0].key,action:e.srcEvent.ctrlKey||s?"set":"toggle",contexts:["selection"]}];if(n.isEnabled("VIZ_398_CHART_INTERACTION_REFACTOR"))return d({actions:t,components:u,isLocked:i,targets:c});return function(e,t){if(!e.targets)throw new Error("Missing 'targets' property");const i=ws(e,t);return{interactions:[i],components:[]}}({targets:c,components:u},{...e,tooltipOnly:l})}({chart:u,actions:e,selectionService:t,layoutService:i,colorService:n,chartModel:o,isLocked:r,flags:s,debouncer:c})||As;if(m)return{components:[...p.components],gestures:[...p.interactions]};const g=function({actions:e,flags:t,selectionService:i,dockService:n,layoutService:o,isUnsupportedFeature:r}){const{hasDimensions:a}=o.meta;if(!a)return!1;const s=qs({actions:e,flags:t,selectionService:i,layoutService:o,dockService:n,isUnsupportedFeature:r})||Es,l=function({actions:e,flags:t,selectionService:i,dockService:n}){const o=i.getIsDimensionLocked();if(o)return!1;const r=[{key:ca.COMPONENT.GHOST_BAR,contexts:["selection"],action:"set"}];if(t.isEnabled("VIZ_398_CHART_INTERACTION_REFACTOR"))return h({actions:e,componentKey:"discrete-range-brush",components:r,dock:n.meta.major.dock,eventKey:"discreteRange",fillTargets:[ca.COMPONENT.MAJOR_AXIS],targets:[ca.COMPONENT.MAJOR_AXIS,ca.COMPONENT.BAR]});return function(e,t){const i=function(e){const{key:t,targets:i,components:n,fillTargets:o,dock:r}=e;return{key:t,type:"brush-area-dir",layout:{dock:i.map(e=>`@${e}`).join(",")},settings:{multiple:!0,brush:{components:n},direction:"left"===r||"right"===r?"vertical":"horizontal",bubbles:{align:"left"===r||"top"===r?"end":"start",placement:"inside"},target:{components:o,fill:"rgba(82,204,82,0.2)"}}}}(e);return{interactions:[Cs(e,t,"area")],components:[i]}}({eventName:"discreteRange",key:"discrete-range-brush",components:r,targets:[ca.COMPONENT.MAJOR_AXIS,ca.COMPONENT.BAR],fillTargets:[ca.COMPONENT.MAJOR_AXIS],dock:n.meta.major.dock},{actions:e})}({actions:e,flags:t,selectionService:i,dockService:n})||Es;return{components:[...l.components,...s.components],interactions:[...l.interactions,...s.interactions]}}({actions:e,flags:s,selectionService:t,dockService:a,layoutService:i,isUnsupportedFeature:l})||As,f=Ts({actions:e,flags:s,selectionService:t,layoutService:i})||As;return{components:[...p.components,...f.components,...g.components],gestures:[...p.interactions,...f.interactions,...g.interactions]}}({chartModel:v,actions:M,selectionService:x,layoutService:r,colorService:w,isLocked:k,dockService:o,flags:S,isUnsupportedFeature:s,debouncer:O}),G=function({alternativeService:e,dockService:t,layoutService:i,extensions:n,discrete:o,viewState:r,styleModel:a,themeService:s,tooltipService:l,chartModel:c,translator:u,colorService:d,scaleModel:h,fieldModel:m,rtl:p,fields:g,invert:f,selectables:y,viewCache:v,extremumModel:x,disclaimerService:b,tickModel:S,itemWidthModel:M,mappingModel:w,model:k,app:C,constraints:q,deviceType:E,selections:T}){const A=function({rtl:e,translator:t,disclaimerService:i,themeService:n}){const o=i.getDisclaimer();if(!o)return!1;const{fontFamily:r}=n.getStyles();return{key:"disclaimer",type:"disclaimer",renderer:"react-qcm",layout:{dock:o.alignment},settings:{label:t.get(`Object.Disclaimer.${o.key}`),isRTL:e},style:{fontFamily:r}}}({rtl:p,translator:u,disclaimerService:b,themeService:s});if(b.getHasSuppressingDisclaimer())return[A];const N=[...ls({chartModel:c,layoutService:i,extremumModel:x,dockService:t,themeService:s,tickModel:S}),...as({extremumModel:x,chartModel:c,fields:g,dockService:t,layoutService:i,scaleModel:h,fieldModel:m,colorService:d,styleModel:a,themeService:s,itemWidthModel:M,mappingModel:w,invert:f}),hn({viewState:r,viewCache:v,layoutService:i,dockService:t,rtl:p}),fs({extremumModel:x,chartModel:c,layoutService:i,dockService:t,styleModel:a,themeService:s,scaleModel:h,mappingModel:w,rtl:p}),gs({extremumModel:x,chartModel:c,layoutService:i,dockService:t,styleModel:a,themeService:s,scaleModel:h,mappingModel:w,rtl:p}),...l.getComponents(),...wa({chartModel:c,dockService:t,layoutService:i,fieldModel:m,styleModel:a,themeService:s,rtl:p,itemWidthModel:M}),...qa({alternativeService:e,app:C,constraints:q,dockService:t,layoutService:i,model:k,rtl:p,selections:T,styleModel:a,translator:u,viewCache:v}),xa({viewState:r,viewCache:v,discrete:o,layoutService:i,dockService:t,themeService:s,rtl:p,deviceType:E}),...y.components],R=re.extend(N.filter(Boolean),n);return function(e){if(!e||0===e.length)return;for(let t=0;t<e.length;t++)e[t].layout=e[t].layout||{},e[t].layout.displayOrder=t}(R),R}({alternativeService:n,dockService:o,layoutService:r,disclaimerService:a,extensions:l,discrete:c,viewState:u,styleModel:p,themeService:g,tooltipService:f,chartModel:v,translator:b,colorService:w,scaleModel:C,fieldModel:q,rtl:z,fields:$,invert:W,selectables:K,viewCache:m,extremumModel:E,tickModel:y,itemWidthModel:T,mappingModel:A,model:N,app:R,constraints:P,deviceType:I,selections:L}),J=function({gestures:e=[],chartModel:t,actions:i,viewState:n,viewCache:o,discrete:r,layoutService:a,dockService:s,tooltipService:l,rtl:c}){const u=t.command.getChart(),d=function({componentKey:e,chart:t,actions:i,viewState:n,viewCache:o,layoutService:r,dockService:a,discrete:s,rtl:l}){return{gestures:[...Fn({componentKey:e,chart:t,actions:i,viewState:n,viewCache:o,layoutService:r,dockService:a,discrete:s,rtl:l})],native:Wn({componentKey:e,chart:t,actions:i,layoutService:r})}}({componentKey:"scrollbar",chart:u,actions:i,viewState:n,viewCache:o,discrete:r,layoutService:a,dockService:s,rtl:c}),h=l.getInteractions(),m={type:"hammer",enable:!0,gestures:[...[...e].sort((e,t)=>(t.prio||0)-(e.prio||0)),...d.gestures,...r.interactions.gestures,...h.gestures]},p=[h.native,d.native,r.interactions.native];return[m,...p]}({gestures:[...K.gestures],chartModel:v,actions:M,viewState:u,viewCache:m,discrete:c,layoutService:r,dockService:o,tooltipService:f,rtl:z}),Y=(Q={logicalSize:_,minCenterRatio:0},{layoutModes:le.getLayoutModes(),center:void 0!==Q.minCenterRatio?{minWidthRatio:Q.minCenterRatio,minHeightRatio:Q.minCenterRatio}:void 0,logicalSize:Q.logicalSize?{align:.5,preserveAspectRatio:!0,...Q.logicalSize}:void 0}),Z={collections:U,scales:V,formatters:X,components:D.extendComponents(G),interactions:J,strategy:Y,palettes:w.getPalettes()};var Q;return Z}(y.context,{properties:i,extensions:[],isUnsupportedFeature:r,model:m,app:u,actions:s,translator:p,flags:n,viewState:l,alternativeService:v,layoutService:x,chartModel:w,dockService:k,discrete:D,selectionService:L,selections:g,isLocked:g&&g.isLocked?g.isLocked:mn,viewCache:c,colorService:S,tickModel:N,styleModel:E,themeService:T,tooltipService:A,scaleModel:O,fieldModel:b,extremumModel:q,itemWidthModel:R,disclaimerService:I,mappingModel:C,debouncer:M,pluginService:P,deviceType:V});y.generateSettings=z;const _=n.isEnabled("LAYOUTING_WITH_DATA");return Aa({layoutService:x})&&(w.command.updateDataless({generateSettings:z,forceData:_}),R.command.update()),w.command.updateDataless({generateSettings:z,forceData:_}),Promise.all([Promise.resolve({}),D.command.initialize()])},[X,f]);D(()=>{if(!K||!K.length)return;const{updateModels:i,chartModel:n,layoutService:o}=t,{viewCache:r}=e;i(t),n.command.update(),bn.cacheProperties({viewCache:r,layout:o.getLayout()}),r.set("hasSlicedHats",n.command.getAnimationsMeta("hasSlicedHats"))},[K])}({core:t,models:i,env:e}),function({core:e,models:t,flags:i}){const n=A(),o=L(),[r]=P(()=>{if(!(t&&e&&e.store.generateSettings&&e.store.rect))return Promise.resolve([]);const{store:r}=e,{generateSettings:a}=r,{layoutService:s,dockService:l,itemWidthModel:c,chartModel:u,discrete:d}=t,h=s.getLayout(),m=Zo({layout:h,options:n});r.context.logicalSize=m;const p=m||o;if(!p||!p.width||!p.height)return Promise.resolve([]);const g=!!h.snapshotData;if(!g&&Qo(r.rect,p))return Promise.resolve([]);l.update(p),g||(r.rect={...p}),c.command.update();const f=i.isEnabled("LAYOUTING_WITH_DATA");return u.command.updateDataless({generateSettings:a,forceData:f}),c.command.update(),Promise.all([Promise.resolve({}),d.command.initialize()])},[o.width,o.height]);D(()=>{if(!r||!r.length)return;const{updateModels:e,chartModel:i}=t;e(t),i.command.update(),i.command.update()},[r])}({core:t,models:i,flags:e.flags}),Vs({core:t,models:i})}}});var G={Common_Measures:{id:"Common.Measures",locale:{"de-DE":"Kennzahlen","en-US":"Measures","es-ES":"Medidas","fr-FR":"Mesures","it-IT":"Misure","ja-JP":"メジャー","ko-KR":"측정값","nl-NL":"Metingen","pl-PL":"Miary","pt-BR":"Medidas","ru-RU":"Меры","sv-SE":"Mått","tr-TR":"Hesaplamalar","zh-CN":"度量","zh-TW":"量值"}},Object_ChartTooltip_ColorExpression:{id:"Object.ChartTooltip.ColorExpression",locale:{"de-DE":"Farbformel","en-US":"Color expression","es-ES":"Expresión de color","fr-FR":"Expression de couleur","it-IT":"Espressione colore","ja-JP":"カラー表現","ko-KR":"색상 표현식","nl-NL":"Kleuruitdrukking","pl-PL":"Wyrażenie koloru","pt-BR":"Expressão de cor","ru-RU":"Выражение для цвета","sv-SE":"Färguttryck","tr-TR":"Renk ifadesi","zh-CN":"颜色表达式","zh-TW":"色彩運算式"}},Object_ChartTooltip_NMore:{id:"Object.ChartTooltip.NMore",locale:{"de-DE":"+{0} mehr","en-US":"+{0} more","es-ES":"+{0} más","fr-FR":"+{0} plus","it-IT":"+{0} altre","ja-JP":"さらに +{0}","ko-KR":"{0} 이상","nl-NL":"+{0} meer","pl-PL":"Jeszcze {0}","pt-BR":"+{0} mais","ru-RU":"Еще +{0}","sv-SE":"Fler än {0} ytterligare","tr-TR":"+{0} daha","zh-CN":"+{0} 以上","zh-TW":"其他 +{0} 個"}},Object_ChartTooltip_sumOfNegatives:{id:"Object.ChartTooltip.sumOfNegatives",locale:{"de-DE":"Summe negativer Werte","en-US":"Sum of negatives","es-ES":"Suma de negativos","fr-FR":"Somme des valeurs négatives","it-IT":"Somma valori negativi","ja-JP":"負の合計","ko-KR":"음수 합계","nl-NL":"Som negatieven","pl-PL":"Suma ujemnych","pt-BR":"Soma de negativos","ru-RU":"Сумма отрицательных значений","sv-SE":"Summan av negativa","tr-TR":"Negatif değerlerin toplamı","zh-CN":"负值总和","zh-TW":"負數總和"}},Object_ChartTooltip_sumOfPositives:{id:"Object.ChartTooltip.sumOfPositives",locale:{"de-DE":"Summe positiver Werte","en-US":"Sum of positives","es-ES":"Suma de positivos","fr-FR":"Sommes des valeurs positives","it-IT":"Somma valori positivi","ja-JP":"正の合計","ko-KR":"양수 합계","nl-NL":"Som positieven","pl-PL":"Suma dodatnich","pt-BR":"Soma de positivos","ru-RU":"Сумма положительных значений","sv-SE":"Summan av positiva","tr-TR":"Pozitif değerlerin toplamı","zh-CN":"正值总和","zh-TW":"正數總和"}},Object_Disclaimer_DataRangeIncludingZero:{id:"Object.Disclaimer.DataRangeIncludingZero",locale:{"de-DE":"Die logarithmische Skala wurde durch die lineare Skala ersetzt, weil der Datenbereich NULL enthält.","en-US":"The logarithmic scale has been replaced by a linear scale because the data range includes zero.","es-ES":"La escala logarítmica ha sido reemplazada por una escala lineal porque el rango de datos incluye cero.","fr-FR":"L'échelle logarithmique a été remplacée par une échelle linéaire, car la plage de données comprend la valeur zéro.","it-IT":"La scala logaritmica è stata sostituita da una scala lineare perché l'intervallo di dati include zero.","ja-JP":"データ範囲にゼロが含まれるため、Log スケールは Linear スケールで置換されています。","ko-KR":"데이터 범위에 0이 포함되어 있으므로 로그 눈금이 선형 눈금으로 바뀌었습니다.","nl-NL":"De logaritmische schaal is vervangen door een lineaire schaal omdat het gegevensbereik nullen bevat.","pl-PL":"Skala logarytmiczna została zastąpiona liniową, ponieważ zakres danych zawiera zero.","pt-BR":"A escala logarítmica foi substituída por uma escala linear, pois o intervalo de dados inclui zero.","ru-RU":"Логарифмический масштаб заменен линейным масштабом, поскольку диапазон данных включает ноль.","sv-SE":"Den logaritmiska skalan har ersatts av en linjär skala eftersom dataintervallet innehåller värdet noll.","tr-TR":"Veri aralığı sıfır değerini içerdiğinden, logaritmik ölçek yerine doğrusal ölçek kullanıldı.","zh-CN":"对数刻度已替换为线性刻度,因为该数据范围包括零。","zh-TW":"對數刻度已遭線性刻度取代,因為資料範圍包含零。"}},Object_Disclaimer_LimitedData:{id:"Object.Disclaimer.LimitedData",locale:{"de-DE":"Zurzeit wird nur ein beschränkter Datensatz angezeigt.","en-US":"Currently showing a limited data set.","es-ES":"Mostrando actualmente un conjunto limitado de datos.","fr-FR":"Affichage d'un ensemble de données limité pour l'instant.","it-IT":"Attualmente viene visualizzata una serie di dati limitata.","ja-JP":"現在、限定的なデータ セットを表示しています。","ko-KR":"현재 제한된 데이터 집합을 표시하고 있습니다.","nl-NL":"Momenteel wordt een beperkte gegevensverzameling getoond.","pl-PL":"Aktualnie przedstawiany jest ograniczony zestaw danych.","pt-BR":"Mostrando um conjunto de dados limitado.","ru-RU":"В настоящее время отображается ограниченный набор данных.","sv-SE":"Just nu visas en begränsad datauppsättning.","tr-TR":"Şu anda sınırlı bir veri kümesi gösteriliyor.","zh-CN":"当前正显示有限的数据集。","zh-TW":"目前顯示的是有限的資料集。"}},Object_Disclaimer_NegativeOrZeroValues:{id:"Object.Disclaimer.NegativeOrZeroValues",locale:{"de-DE":"Die in den Datensätzen enthaltenen negativen oder 0-Werte können nicht in diesem Diagramm dargestellt werden.","en-US":"The data set contains negative or zero values that cannot be shown in this chart.","es-ES":"El conjunto de datos contiene valores cero o negativos que no se pueden mostrar en este gráfico.","fr-FR":"L'ensemble de données contient des valeurs négatives ou égales à zéro impossibles à afficher dans ce graphique.","it-IT":"La serie di dati contiene valori negativi o uguali a zero che non possono essere visualizzati in questo grafico.","ja-JP":"データ セットには、本チャートに表示できない負の値またはゼロ値が含まれています。","ko-KR":"데이터 집합에 해당 차트에 표시할 수 없는 음수 값 또는 zero 값이 포함되어 있습니다.","nl-NL":"De gegevensverzameling bevat negatieve waarden of nulwaarden die niet kunnen worden weergegeven in deze diagram.","pl-PL":"Zestaw danych zawiera wartości ujemne lub zerowe, których nie można przedstawić w tym wykresie.","pt-BR":"O conjunto de dados contém valores negativos ou iguais a zero que não podem ser mostrados neste gráfico.","ru-RU":"Набор данных содержит отрицательные или нулевые значения, которые невозможно показать в этой диаграмме.","sv-SE":"Datauppsättningen innehåller negativa värden eller nollvärden som inte kan visas i detta diagram.","tr-TR":"Veri kümesi, bu grafikte gösterilemeyen negatif veya sıfır değerlerini içeriyor.","zh-CN":"数据集中包含无法在此图表中显示的负值或零值。","zh-TW":"資料集包含無法在此圖表中顯示的負值或零值。"}},Object_Disclaimer_NegativeValues:{id:"Object.Disclaimer.NegativeValues",locale:{"de-DE":"Die in den Datensätzen enthaltenen negativen Werte können nicht in diesem Diagramm dargestellt werden.","en-US":"The data set contains negative values that cannot be shown in this chart.","es-ES":"El conjunto de datos contiene valores negativos que no se pueden mostrar en este gráfico.","fr-FR":"Le jeu de données contient des valeurs négatives impossibles à afficher dans ce graphique.","it-IT":"Il set di dati contiene valori negativi che non possono essere visualizzati in questo grafico.","ja-JP":"このチャートには表示できない負の値がデータ セットに含まれています。","ko-KR":"데이터 집합에 해당 차트에 표시할 수 없는 음수 값이 포함되어 있습니다.","nl-NL":"De gegevensverzameling bevat negatieve waarden die niet kunnen worden weergegeven in dit diagram.","pl-PL":"Zestaw danych zawiera wartości ujemne, których nie można przedstawić na tym wykresie.","pt-BR":"O conjunto de dados contém valores negativos que não podem ser mostrados neste gráfico.","ru-RU":"Набор данных содержит отрицательные значения, которые нельзя отобразить на этой диаграмме.","sv-SE":"Datauppsättningen innehåller negativa värden som inte kan visas i det här diagrammet.","tr-TR":"Veri kümesi, bu grafikte gösterilemeyen negatif değerleri içeriyor.","zh-CN":"数据集包含无法在此图表中显示的负值。","zh-TW":"資料集包含無法在此圖表中顯示的負值。"}},Object_Disclaimer_NoDataExist:{id:"Object.Disclaimer.NoDataExist",locale:{"de-DE":"Die Auswahlen haben für dieses Diagramm keine Daten generiert.","en-US":"The selections generated no data for this chart.","es-ES":"Las selecciones no han generado datos para este gráfico.","fr-FR":"Les sélections n'ont pas généré de données pour ce graphique.","it-IT":"Le selezioni non hanno generato dati per questo grafico.","ja-JP":"このチャートには選択からデータが生成されませんでした。","ko-KR":"선택 내용으로 이 차트에 대한 데이터가 생성되지 않았습니다.","nl-NL":"De selecties hebben geen gegevens voor de diagram gegenereerd.","pl-PL":"Wymiary nie spowodowały wygenerowania danych dla tego wykresu.","pt-BR":"As seleções não geraram dados para este gráfico.","ru-RU":"В результате выборок данные для этой диаграммы не созданы.","sv-SE":"Urvalen genererade inga data för detta diagram.","tr-TR":"Seçimler bu grafik için hiç veri oluşturmadı.","zh-CN":"选择未生成此图表的数据。","zh-TW":"此選項無法產生任何適用於此圖表的資料。"}},Object_Disclaimer_OnlyNanColor:{id:"Object.Disclaimer.OnlyNanColor",locale:{"de-DE":"Die verwendeten Daten für die Farbgebung dieser Visualisierung enthalten undefinierte Werte.","en-US":"The data used to color this visualization only contains undefined values.","es-ES":"Los datos utilizados para colorear esta visualización solo contienen valores indefinidos.","fr-FR":"Les données utilisées pour colorer cette visualisation ne comportent que des valeurs non définies.","it-IT":"I dati utilizzati per colorare questa visualizzazione contengono solo valori non definiti.","ja-JP":"このビジュアライゼーションの色の割り当てに使用したデータには、未定義の値が含まれています。","ko-KR":"이 시각화에 색을 지정하는 데 사용된 데이터에는 정의되지 않은 값만 포함되어 있습니다.","nl-NL":"De gegevens die worden gebruikt om deze visualisatie kleur te geven bevatten uitsluitend ongedefinieerde waarden.","pl-PL":"Dane używane do kolorowania tej wizualizacji zawierają wyłącznie niezdefiniowane wartości.","pt-BR":"Os dados usados para colorir esse visualização contém somente valores indefinidos.","ru-RU":"Данные, используемые для выбора цвета визуализации, содержат только неопределенные значения.","sv-SE":"Data som används för att färgsätta denna visualisering innehåller enbart odefinierade värden.","tr-TR":"Bu görselleştirmeyi renklendirmek için kullanılan veriler yalnızca tanımlanmamış değerler içeriyor.","zh-CN":"用于将该可视化着色的数据仅包含未定义的值。","zh-TW":"用以定義此視覺化的色彩的資料只包含未定義的值。"}},Object_Disclaimer_OnlyNanData:{id:"Object.Disclaimer.OnlyNanData",locale:{"de-DE":"Das Diagramm wird nicht angezeigt, da es nur nicht definierte Werte enthält.","en-US":"The chart is not displayed because it contains only undefined values.","es-ES":"El gráfico no se muestra porque solo contiene valores indefinidos.","fr-FR":"Le graphique n'est pas affiché, car il contient uniquement des valeurs non définies.","it-IT":"Il grafico non è visualizzato poiché contiene solo valori non definiti.","ja-JP":"未定義の値しか含まれていないため、チャートは表示されていません。","ko-KR":"정의되지 않은 값만 포함되어 있으므로 차트가 표시되지 않습니다.","nl-NL":"De diagram wordt niet weergegeven omdat deze alleen ongedefinieerde waarden bevat.","pl-PL":"Wykres nie jest wyświetlany, ponieważ zawiera wyłącznie wartości niezdefiniowane.","pt-BR":"O gráfico não foi exibido, porque contém apenas valores não definidos.","ru-RU":"Диаграмма не отображается, поскольку она содержит только неопределенные значения.","sv-SE":"Diagrammet visas inte eftersom det enbart innehåller odefinierade värden.","tr-TR":"Yalnızca tanımsız değerleri içermesi nedeniyle grafik görüntülenmiyor.","zh-CN":"未显示图表,因为它仅包含未定义的值。","zh-TW":"系統不會顯示圖表,因為該圖表僅包含未定義的值。"}},Object_Disclaimer_OnlyNegativeOrZeroValues:{id:"Object.Disclaimer.OnlyNegativeOrZeroValues",locale:{"de-DE":"Das Diagramm wird nicht angezeigt, da es nur negative oder 0-Werte enthält.","en-US":"The chart is not displayed because it contains only negative or zero values.","es-ES":"El gráfico no se muestra porque solo contiene valores negativos o valores cero.","fr-FR":"Le graphique n'est pas affiché, car il contient uniquement des valeurs négatives ou égales à zéro.","it-IT":"Il grafico non viene visualizzato poiché contiene solo valori negativi o uguali a zero.","ja-JP":"チャートは負の値またはゼロ値しか含まれていないため、表示されていません。","ko-KR":"음수 또는 zero 값만 포함되어 있으므로 차트가 표시되지 않습니다.","nl-NL":"De diagram wordt niet weergegeven omdat deze alleen negatieve waarden of nulwaarden bevat.","pl-PL":"Wykres nie jest wyświetlany, ponieważ zawiera wyłącznie wartości ujemne lub zerowe.","pt-BR":"O gráfico não foi exibido, porque contém apenas valores negativos ou zero.","ru-RU":"Диаграмма не отображается, поскольку она содержит только отрицательные или нулевые значения.","sv-SE":"Diagrammet visas inte eftersom det enbart innehåller negativa värden eller nollvärden","tr-TR":"Yalnızca negatif veya sıfır değerlerini içermesi nedeniyle grafik görüntülenmiyor.","zh-CN":"未显示图表,因为它仅包含负值或零值。","zh-TW":"系統不會顯示圖表,因為該圖表僅包含負值或零值。"}},Object_Disclaimer_OnlyNegativeValues:{id:"Object.Disclaimer.OnlyNegativeValues",locale:{"de-DE":"Das Diagramm wird nicht angezeigt, da es nur negative oder Werte enthält.","en-US":"The chart is not displayed because it contains only negative values.","es-ES":"El gráfico no se muestra porque solo contiene valores negativos.","fr-FR":"Le graphique n'est pas affiché, car il contient uniquement des valeurs négatives.","it-IT":"Il grafico non viene visualizzato poiché contiene solo valori negativi.","ja-JP":"負の値しか含まれていないため、チャートは表示されていません。","ko-KR":"음수 값만 포함되어 있으므로 차트가 표시되지 않습니다.","nl-NL":"Het diagram wordt niet weergegeven omdat deze alleen negatieve waarden bevat.","pl-PL":"Wykres nie jest wyświetlany, ponieważ zawiera wyłącznie wartości ujemne.","pt-BR":"O gráfico não é exibido porque contém apenas valores negativos.","ru-RU":"Диаграмма не отображается, поскольку она содержит только отрицательные значения.","sv-SE":"Diagrammet visas inte eftersom det endast innehåller negativa värden.","tr-TR":"Yalnızca negatif değerleri içermesi nedeniyle grafik görüntülenmiyor.","zh-CN":"未显示图表,因为它仅包含负值。","zh-TW":"系統不會顯示圖表,因為該圖表僅包含負值。"}},Object_ErrorMessage_MissingDimension:{id:"Object.ErrorMessage.MissingDimension",locale:{"de-DE":"Dimension nicht gefunden","en-US":"Dimension not found","es-ES":"No se ha encontrado la dimensión","fr-FR":"Dimension introuvable","it-IT":"Dimensione non trovata","ja-JP":"軸が見つかりません","ko-KR":"차원을 찾지 못했습니다.","nl-NL":"Dimensie niet gevonden","pl-PL":"Wymiar nie został znaleziony","pt-BR":"Dimensão não encontrada","ru-RU":"Измерение не найдено","sv-SE":"Dimensionen hittades inte","tr-TR":"Boyut bulunamadı","zh-CN":"未找到维度","zh-TW":"找不到維度"}},Object_ErrorMessage_MissingMeasure:{id:"Object.ErrorMessage.MissingMeasure",locale:{"de-DE":"Kennzahl nicht gefunden","en-US":"Measure not found","es-ES":"No se ha encontrado la medida","fr-FR":"Mesure introuvable","it-IT":"Misura non trovata","ja-JP":"メジャーが見つかりません","ko-KR":"측정값을 찾지 못했습니다.","nl-NL":"Meting niet gevonden","pl-PL":"Miara nie została znaleziona","pt-BR":"Medida não encontrada","ru-RU":"Мера не найдена","sv-SE":"Måttet hittades inte","tr-TR":"Hesaplama bulunamadı","zh-CN":"未找到度量","zh-TW":"找不到量值"}},Tooltip_ToggleOffLassoSelection:{id:"Tooltip.ToggleOffLassoSelection",locale:{"de-DE":"Lasso-Auswahl deaktivieren","en-US":"Turn off lasso selection","es-ES":"De