UNPKG

@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) 480 kB
/* * @nebula.js/sn-bullet-chart v1.25.31 * Copyright (c) 2025 QlikTech International AB * Released under the MIT license. */ System.register(["picasso.js","picasso-plugin-q","hammerjs","qlik-chart-modules","react","react-dom","@nebula.js/stardust","qlik-object-conversion"],(function(e){"use strict";var t,n,r,i,o,a,s,l,c,u,d,p,h,f,m,g,v,y,b,x,S,w,M,k,C,E,R,T,O,q,A,N,P,I,D,L,z,j,_,$,F,H,B,W,V,U,G,K,X;return{setters:[function(e){t=e.default},function(e){n=e.default},function(e){r=e.default},function(e){i=e.getValue,o=e.setValue,a=e.selectionService,s=e.storage,l=e.cache,c=e.throttler,u=e.colorService,d=e.pluginService,p=e.tooltipService,h=e.layoutService,f=e.disclaimerService,m=e.dockService,g=e.themeService,v=e.debouncer,y=e.fontResolver},function(e){b=e.default,x=e,S=e.isValidElement,w=e.cloneElement,M=e.Children,k=e.forwardRef,C=e.useContext},function(e){E=e,R=e.default},function(e){T=e.useElement,O=e.useSelections,q=e.useOptions,A=e.useState,N=e.useLayout,P=e.useTranslator,I=e.useEffect,D=e.useAction,L=e.useRect,z=e.usePromise,j=e.useStaleLayout,_=e.useTheme,$=e.useApp,F=e.useModel,H=e.useConstraints,B=e.useAppLayout,W=e.usePlugins,V=e.useEmbed,U=e.useDeviceType,G=e.onTakeSnapshot,K=e.useImperativeHandle},function(e){X=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(J).forEach((t=>{e.add(J[t])}))}}(e.translator);const o=function(){const e=t();return e.use(n),e.use(function(e){if("function"!=typeof e.interaction)return t=>{t.interaction("hammer",Q(e))};return void e.interaction("hammer",Q(Hammer))}(r)),e.use(function(){return function(e){e.renderer("react",function(){function e({x:e,y:t,width:n,height:r,scaleRatio:i,margin:o}={}){const a={x:0,y:0,width:0,height:0,scaleRatio:{x:1,y:1},margin:{left:0,top:0}};return a.x=Number.isNaN(e)?a.x:e,a.y=Number.isNaN(t)?a.y:t,a.width=Number.isNaN(n)?a.width:n,a.height=Number.isNaN(r)?a.height:r,void 0!==i&&(a.scaleRatio.x=Number.isNaN(i.x)?a.scaleRatio.x:i.x,a.scaleRatio.y=Number.isNaN(i.y)?a.scaleRatio.y:i.y),void 0!==o&&(a.margin.left=Number.isNaN(o.left)?0:o.left,a.margin.top=Number.isNaN(o.top)?0:o.top),a}return function(t={}){const{createElement:n=document.createElement.bind(document)}=t;let r,i=e();const o={element:()=>r,root:()=>r,appendTo:e=>(r||(r=n("div"),r.style.position="absolute",r.style["-webkit-font-smoothing"]="antialiased",r.style["-moz-osx-font-smoothing"]="antialiased",r.style.pointerEvents="none"),e.appendChild(r),r),render(e){if(!r)return!1;const t=i.scaleRatio.x,n=i.scaleRatio.y;return r.style.left=`${Math.round(i.margin.left+i.x*t)}px`,r.style.top=`${Math.round(i.margin.top+i.y*n)}px`,r.style.width=`${Math.round(i.width)}px`,r.style.height=`${Math.round(i.height)}px`,r.style.transform=`scale(${t}, ${n})`,r.style.transformOrigin="top left",R.render(function(e,t){return b.createElement(gl,{generateClassName:t},b.createElement(sc,{theme:Qu},e))}(e,ed),r),!0},itemsAt:()=>[],findShapes:()=>[],clear:()=>(r&&R.unmountComponentAtNode(r),o),destroy(){r&&r.parentElement&&(R.unmountComponentAtNode(r),r.parentElement.removeChild(r)),r=null},size:t=>(t&&(i=e(t)),i)};return o}}()),e.component("data-title",function(e){function t(e){return!e.isDimension&&we.getValue(e,"hyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures.length")>0}function n(e){return e.isDimension&&we.getValue(e,"hyperCubeDef.qLayoutExclude.qHyperCubeDef.qDimensions.length")>0}return{renderer:"react",disableTriggers:!0,preferredSize:function(){const{height:n}=e.measureText({text:"M",fontSize:this.style.fontSize,fontFamily:this.style.fontFamily});return this.settings.settings.isDimension||t(this.settings.settings)?Math.max(28,n):Math.max(20,n)},render(){const{settings:{app:e,disabled:r,explicitItemInfos:i,hyperCube:o,hyperCubeDef:a,isDimension:s,minWidth:l,model:c,onChangeToAlternative:u,padding:d,rtl:p,selections:h,skipAttributeExpressions:f,translator:m,supportConditional:g=!1},layout:{dock:v}}=this.settings,y="top"!==v&&"bottom"!==v||!p?"ltr":"rtl",x=function(e,t){const n={pointerEvents:"auto",display:"flex",justifyContent:"center",alignItems:"center",height:"100%"};"left"===e?(n.width=`${t.height}px`,n.height=`${t.width}px`,n.transform=`rotate(-90deg) translate(-${t.height}px, 0)`,n.transformOrigin="top left"):"right"===e&&(n.width=`${t.height}px`,n.height=`${t.width}px`,n.transform=`rotate(90deg) translate(0, -${t.width}px)`,n.transformOrigin="top left");return n}(v,this.rect),S=a&&a.qLayoutExclude&&a.qLayoutExclude.qHyperCubeDef,w=S&&S[s?"qDimensions":"qMeasures"]||[],M=i||o[s?"qDimensionInfo":"qMeasureInfo"],k=s?ti:ri,C=s?ni:ii,E=Boolean(c&&c.colorSupport&&c.modifiers),R=E&&(n(this.settings.settings)||t(this.settings.settings)),T=M.map(((t,n)=>{var i;const o="number"==typeof t.explicitColumn?t.explicitColumn:n,a=C(t,o,c,e),y=n===M.length-1,x=Boolean(e)&&s&&"N"!==t.qGrouping,S=E||x?k({column:o,activeInfo:t,altList:w,app:e,dir:p?"rtl":"ltr",dock:Zu(v),model:c,onChange:u,skipAttributeExpressions:f,translator:m,allowChangeOfAlternatives:E}):void 0;return b.createElement(b.Fragment,{key:t.cId},b.createElement(Yu,{chartId:null!==(i=null==c?void 0:c.id)&&void 0!==i?i:"",showGroupDimOptions:x,popover:S,titleData:a,model:c,translator:m,selections:h,disabled:r(),style:this.style,isDimension:s,padding:d,minWidth:l,hasAlternative:R,supportConditional:g}),!y&&b.createElement("span",{style:{lineHeight:"normal",...this.style}},", "))}));return b.createElement("div",{style:x,dir:y},T)}}}(e.renderer("svg")()))}}()),e.renderer("react-qcm",zb),e.component("disclaimer",Nb),e.component("scrollbar",_d),e.component("scroll-hint",br),e.component("box-axis",sx),e.component("box-sliced-hat",Xd),e.component("box-out-of-bounds",Wd),e}();return{qae:yM(e),ext:jM(e),component(){const{core:t,models:n}=function({picasso:e}){var t,n;const r=T(),i=O(),o=q(),{renderer:a}=o,[c,u]=A(),[d,p]=A(),[h,f]=A(!1),[m,g]=A(!1),v=N(),y=P(),b=!(null==v||null===(t=v.qSelectionInfo)||void 0===t||!t.qInSelections),x=!(null===(n=v.qHyperCube)||void 0===n||null===(n=n.qDimensionInfo)||void 0===n||null===(n=n[0])||void 0===n||!n.qIsOneAndOnlyOne);return I((()=>{r.style.overflow="hidden";const t=e({renderer:{prio:[a||"canvas"]}}),n=t.chart({element:r,data:[],settings:{}}),i=s({scrollOffset:void 0,viewRange:[0,1]}),o=l(),c=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(){}}},n=e=>(Object.keys(dx.prototype).forEach((t=>{e[t]=dx.prototype[t]})),dx.init(e),e);return Object.keys(t).filter((e=>"setContext"!==e)).forEach((e=>n(t[e]))),t.setContext=(t={})=>{Object.assign(e,t)},t.setContext.update=()=>{},t}();return u({picassoInstance:t,chart:n,actions:c,store:{},viewState:i,viewCache:o}),()=>{n.destroy()}}),[]),D((()=>{if(null==c||!c.actions)return{};const{actions:e}=c,t={action(e){f("boolean"==typeof e?e:!h)},hidden:!b||x};return e&&(e.lasso={...t,active:()=>h,update:e=>{!!c&&g(!e.select&&!e.active)},enabled:()=>m}),{...t,label:y.get(h?"Tooltip.ToggleOffLassoSelection":"Tooltip.ToggleOnLassoSelection"),active:h,icon:px}}),[c,h,m,b,x,y.language()]),I((()=>{if(null==c||!c.actions)return()=>{};const{chart:e,actions:t}=c,n=hx({chart:e,actions:t,selections:i});return p({selectionService:n,updateModels:fx}),()=>{n.destroy()}}),[c]),{core:c,models:d}}({picasso:o});!function({core:e,models:t,env:n}){var r;const{flags:o}=n,a=null===(r=n.anything)||void 0===r||null===(r=r.sense)||void 0===r?void 0:r.isUnsupportedFeature,s=j(),u=_(),d=$(),p=F(),y=P(),b=O(),x=H()||{},{qLocaleInfo:S}=B(),w=q(),{direction:M,viewState:k}=w,C="rtl"===M,E=L(),R=W(),T=V(),A=U(),[N]=z((()=>{if(!e||!t||!x)return Promise.resolve([]);const{picassoInstance:n,chart:r,actions:a,viewState:v,store:b,viewCache:M}=e,{selectionService:O,updateModels:q}=t;Object.keys(a).forEach((e=>a[e].update(x)));const A=h({source:s,metaAdditionsFn:Zw}),N=f({config:{args:{layoutService:A},disclaimers:{NoDataExist:!0,OnlyNanDataMeasure:!0}}});N.initialize();const P=mx({layout:s,options:w}),I=function({layoutService:e}){return{major:e.meta.isDimensionless?void 0:"qDimensionInfo/0",minors:e.getHyperCubeValue("qMeasureInfo").map(((e,t)=>`qMeasureInfo/${t}`))}}({layoutService:A}),D=DS({app:d,model:p,translator:y,picasso:n,localeInfo:S,theme:u,layoutService:A}),L=function({picasso:e,chart:t,localeInfo:n,layoutService:r,colorService:i,options:o,viewCache:a}){const s=[ES.COMPONENT.MAJOR_AXIS_TITLE,ES.COMPONENT.MINOR_AXIS_TITLE,ES.COMPONENT.GRID_LINE,ES.COMPONENT.ZERO_LINE],l={isDataless:!1},c=[],u={main:c,dataset:e.data("q")({key:ES.DATA.MAIN,data:r.getHyperCube(),config:{localeInfo:n}})},d={isPartialUpdating:!1,hasSlicedHats:!1},p=()=>!0===o.chartAnimations&&(!(d.isPartialUpdating||d.hasSlicedHats||a.get("hasSlicedHats"))&&!zr.propertiesHaveChanged({viewCache:a,layout:r.getLayout()}));return{query:{getIsUpdateDataless:()=>l.isDataless,getDataset:()=>u.dataset,animationsEnabled:p},command:{getChart:()=>t,update:({settings:e}={})=>{t.update({settings:e})},updateDataless:({generateSettings:e,forceData:o=!1})=>{const a=e();o||(l.isDataless=!0,u.main=r.getDataPages(),r.setDataPages([]));const s=[{type:"q",key:ES.DATA.MAIN,data:r.getHyperCube(),config:{localeInfo:n}},...i.getData()];t.layoutComponents({data:s,settings:a}),o||(r.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:n,chart:r,localeInfo:S,layoutService:A,colorService:D,options:w,viewCache:M}),z=m({chart:r,layoutService:A,config:{logicalSize:P,rtl:C},typeConfig:{type:"major-minor",fallback:"vertical",invert:!0}}),j=function({layoutService:e}){const{hasDimensions:t}=e.meta,n={bullet2Scale:{}},r=()=>{n.bullet2Scale={};const{qMatrix:r}=e.getDataPages()[0];t?r.forEach(((e,t)=>{const r=e[0].qElemNumber;n.bullet2Scale[r]=t})):r[0]&&r[0].forEach(((e,t)=>{n.bullet2Scale[t]=t}))};return{query:{bullet2Scale:e=>n.bullet2Scale[e]},command:{update:r}}}({layoutService:A}),_=function({layoutService:e}){const t=function({layoutService:e}){return function({layoutService:e}){return function({itemIndex:t}){const n=function(e,t){const{hasDimensions:n,isSharedRange:r,measuresTargetIndex:i,measuresSegmentIndices:o}=e.meta,a=e.getHyperCubeValue("qMeasureInfo");let s;if(r||!OS(t))s=[qS({measures:a,index:0,measuresTargetIndex:i,measuresSegmentIndices:o})];else if(n){const[{qMatrix:n=[]}={}]=e.getDataPages()||[];s=function(e,t,n){const r=e[t],i={qMin:NaN,qMax:NaN,qAttrExprInfo:[]};if(!r)return[i];const{qNum:o=NaN,qAttrExps:a}=r[1],s=a?a.qValues.filter(((e,t)=>n.indexOf(t)>-1)).map((e=>({qMin:e.qNum,qMax:e.qNum}))):[];return[{...i,qMin:o,qMax:o,qAttrExprInfo:s}]}(n,t,[i[0],...o[0]])}else s=[qS({measures:a,index:t,measuresTargetIndex:i,measuresSegmentIndices:o})];return s}(e,t),r=n.map((e=>e.qAttrExprInfo)),i=[...n,...TS(r)];return{min:Math.min(...i.filter((e=>OS(e.qMin))).map((e=>e.qMin))),max:Math.max(...i.filter((e=>OS(e.qMax))).map((e=>e.qMax)))}}}({layoutService:e})}({layoutService:e}),n=de(!0,{},PS),r=()=>{const r=e.getDataPages()[0];if(de(!0,n,IS(e,t)),r&&r.qMatrix){const i=e.meta.hasDimensions?r.qMatrix:r.qMatrix[0];n.individual=i?i.map(((n,r)=>IS(e,t,r))):[]}else n.individual=[]};return r(),{query:{getExtrema:e=>"number"==typeof e&&e<n.individual.length?n.individual[e]:n},command:{update:r}}}({layoutService:A}),$=g({theme:u,config:{id:"bulletChart",transform:[["label.value.fontSize",e=>parseInt(e,10)]]}}),F=function({layoutService:e,themeService:t}){const n=t.getStyles(),r=t=>e.getLayoutValue("components",[]).find((e=>e.key===t)),i={axis:{title:{getStyle:()=>{var e,t,i,o,a,s;return{color:null!==(e=null===(t=r("axis"))||void 0===t||null===(t=t.axis)||void 0===t||null===(t=t.title)||void 0===t||null===(t=t.color)||void 0===t?void 0:t.color)&&void 0!==e?e:n.axis.title.color,fontFamily:null!==(i=null===(o=r("axis"))||void 0===o||null===(o=o.axis)||void 0===o||null===(o=o.title)||void 0===o?void 0:o.fontFamily)&&void 0!==i?i:n.axis.title.fontFamily,fontSize:null!==(a=null===(s=r("axis"))||void 0===s||null===(s=s.axis)||void 0===s||null===(s=s.title)||void 0===s?void 0:s.fontSize)&&void 0!==a?a:n.axis.title.fontSize}}},label:{getStyle:()=>{var e,t,i,o,a,s;return{fill:null!==(e=null===(t=r("axis"))||void 0===t||null===(t=t.axis)||void 0===t||null===(t=t.label)||void 0===t||null===(t=t.name)||void 0===t||null===(t=t.color)||void 0===t?void 0:t.color)&&void 0!==e?e:n.axis.label.name.color,fontFamily:null!==(i=null===(o=r("axis"))||void 0===o||null===(o=o.axis)||void 0===o||null===(o=o.label)||void 0===o||null===(o=o.name)||void 0===o?void 0:o.fontFamily)&&void 0!==i?i:n.axis.label.name.fontFamily,fontSize:null!==(a=null===(s=r("axis"))||void 0===s||null===(s=s.axis)||void 0===s||null===(s=s.label)||void 0===s||null===(s=s.name)||void 0===s?void 0:s.fontSize)&&void 0!==a?a:n.axis.label.name.fontSize}}}},label:{getStyle:()=>{var e,t,i,o,a,s,l,c;return{fill:null!==(e=null===(t=r("label"))||void 0===t||null===(t=t.label)||void 0===t||null===(t=t.value)||void 0===t||null===(t=t.color)||void 0===t?void 0:t.color)&&void 0!==e?e:n.label.value.color,useContrastColor:null===(i=null===(o=r("label"))||void 0===o||null===(o=o.label)||void 0===o||null===(o=o.value)||void 0===o?void 0:o.useContrastColor)||void 0===i||i,fontFamily:null!==(a=null===(s=r("label"))||void 0===s||null===(s=s.label)||void 0===s||null===(s=s.value)||void 0===s?void 0:s.fontFamily)&&void 0!==a?a:n.label.value.fontFamily,fontSize:null!==(l=null===(c=r("label"))||void 0===c||null===(c=c.label)||void 0===c||null===(c=c.value)||void 0===c?void 0:c.fontSize)&&void 0!==l?l:n.label.value.fontSize}}}};return{query:i}}({layoutService:A,themeService:$}),H=Lx({flags:o,layout:s,app:d,model:p,chart:r,translator:y,localeInfo:S,embed:T,options:w}),B=sM({chart:r,translator:y,actions:a,rtl:C,fieldModel:I,layoutService:A,colorService:D,dockService:z,themeService:$,custom:H}),W=function({chart:e,layoutService:t,chartModel:n,extremumModel:r,dockService:i,themeService:o,fieldModel:a}){const{hasDimensions:s}=t.meta,l={extremaList:[]},c=e=>void 0===e?(l.extrema||(l.extrema=r.query.getExtrema()),l.extrema):(l.extremaList[e]||(l.extremaList[e]=r.query.getExtrema(e)),l.extremaList[e]);function u(r=void 0){const l=c(r),u=e.formatter(a.minors[s?0:r||0]),d=function({chart:e,layoutService:t,chartModel:n,dockService:r,themeService:i,extrema:o,formatter:a}){const s=CS,l=i.getStyles(),c=e=>RS({text:e,fontFamily:l.axis.label.name.fontFamily,fontSize:l.axis.label.name.fontSize}),u=function({chart:e,chartModel:t,dockService:n}){const r=e.component(ES.COMPONENT.BAR),i=t.query.getIsUpdateDataless()||!r?n.meta.chart.size:r.rect;return"horizontal"===n.meta.major.orientation?i.height:i.width}({chart:e,chartModel:n,dockService:r}),d=s({layoutService:t,dockService:r,measureText:c,extrema:o,size:u,formatter:a});return d}({chart:e,layoutService:t,chartModel:n,dockService:i,themeService:o,extrema:l,formatter:u});return d}const d=()=>{l.extremaList=[],l.extrema=r.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:L,extremumModel:_,dockService:z,themeService:$,fieldModel:I}),V=function({layoutService:e,dockService:t,tickModel:n,chart:r,fieldModel:i,themeService:o}){let a={},{mode:s}=t.meta.chart,l=GS({layoutService:e,dockService:t});const c=o.getStyles(),{hasDimensions:u,numDataItems:d,hasTarget:p,hasRange:h,isSharedRange:f}=e.meta,m={paddingStart:1,paddingEnd:8,labelMargin:2,tickSize:5,strokeWidth:1},g=m.paddingStart+m.paddingEnd+m.labelMargin+m.tickSize+m.strokeWidth,v=e=>RS({text:e,fontFamily:c.axis.label.name.fontFamily,fontSize:c.axis.label.name.fontSize}),y=e=>Math.max(...e.map((e=>e.height))),b=e=>Math.max(...e.map((e=>e.width))),x=()=>{let e,t,o=[];if(u)if(e=r.formatter(i.minors[0]),f)t=n.query.getValues().filter((e=>!e.isMinor)),o=t.map((t=>e(t.value)));else for(let r=0;r<d;r++)t=n.query.getValues(r).filter((e=>!e.isMinor)),o=o.concat(t.map((t=>e(t.value))));else for(let a=0;a<d;a++)e=r.formatter(i.minors[a]),t=n.query.getValues(a).filter((e=>!e.isMinor)),o=o.concat(t.map((t=>e(t.value))));return o},S=e=>{const t={},n=[];return e.forEach((e=>{t[e]||(t[e]=!0,n.push(e))})),n},w=e=>{const t=l?e:e*eM;return h?t/a.range.widthPxs[s].DEFAULT:p?t/a.target.widthPxs[s].DEFAULT:t/a.bar.widthPxs[s].DEFAULT},M=e=>{const t=w(e);t<1&&(Object.keys(Qw).forEach((e=>{Object.keys(Qw[e]).forEach((n=>{a.bar.widthPxs[e][n]*=t}))})),a.bar.widthPx=a.bar.widthPxs[s].DEFAULT,p&&(Object.keys(Qw).forEach((e=>{Object.keys(Qw[e]).forEach((n=>{a.target.widthPxs[e][n]*=t}))})),a.target.widthPx=a.target.widthPxs[s].DEFAULT),h&&(Object.keys(Qw).forEach((e=>{Object.keys(Qw[e]).forEach((n=>{a.range.widthPxs[e][n]*=t}))})),a.range.widthPx=a.range.widthPxs[s].DEFAULT))},k=()=>{s=t.meta.chart.mode,l=GS({layoutService:e,dockService:t});const n=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:m,itemWidths:{},maxPxStep:n},Object.keys(Qw).forEach((e=>{a.bar.widthPxs[e]={},Object.keys(Qw[e]).forEach((t=>{a.bar.widthPxs[e][t]=Qw[e][t]*eM}))})),a.bar.widthPx=a.bar.widthPxs[s].DEFAULT,p&&(Object.keys(Qw).forEach((e=>{a.target.widthPxs[e]={},Object.keys(Qw[e]).forEach((t=>{a.target.widthPxs[e][t]=a.bar.widthPxs[e][t]*nM}))})),a.target.widthPx=a.target.widthPxs[s].DEFAULT),h&&(Object.keys(Qw).forEach((e=>{a.range.widthPxs[e]={},Object.keys(Qw[e]).forEach((t=>{a.range.widthPxs[e][t]=a.bar.widthPxs[e][t]*tM}))})),a.range.widthPx=a.range.widthPxs[s].DEFAULT),M(n),a.maxBTR.widthPxs=h?a.range.widthPxs:p?a.target.widthPxs:a.bar.widthPxs;let r=0;if(l){const e=S(x()).map(v),i=y(e),o=b(e)+2;r=g+("horizontal"===t.meta.major.orientation?o:i),Object.keys(Qw).forEach((e=>{a.itemWidths[e]={},Object.keys(Qw[e]).forEach((t=>{a.itemWidths[e][t]=a.maxBTR.widthPxs[e][t]+r}))})),a.maxPxStep=eM*n+r}else Object.keys(Qw).forEach((e=>{a.itemWidths[e]={},Object.keys(Qw[e]).forEach((t=>{a.itemWidths[e][t]=a.maxBTR.widthPxs[e][t]/eM}))}));const i=a.itemWidths[s].DEFAULT;a.bar.width=a.bar.widthPx/i,a.target.width=a.target.widthPx/i,a.range.width=a.range.widthPx/i,a.bulletAxis.widthPx=r,a.bulletAxis.width=a.bulletAxis.widthPx/i,a.bandWidthPx=i,a.maxBTR.widthPx=h?a.range.widthPx:p?a.target.widthPx:a.bar.widthPx,a.maxBTR.width=h?a.range.width:p?a.target.width:a.bar.width};return k(),{BAR_WIDTH_RATIO:eM,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:z,tickModel:W,chart:r,fieldModel:I,themeService:$}),U=function({layoutService:e,mappingModel:t,tickModel:n,dockService:r,chart:i,rtl:o}){const{isSharedRange:a,hasDimensions:s}=e.meta,l="vertical"===r.meta.minor.orientation||o,c={scales:[]},u=({index:e})=>{const t=Dw({key:ES.SCALE.DIMENSION_PREFIX+e,tickModel:n,invert:l,index:e});return i.scale(t)},d=e=>a?i.scale(ES.SCALE.MAIN.MINOR):(c.scales[e]||(c.scales[e]=u({index:e})),c.scales[e]),p=e=>{if(a)return i.scale(ES.SCALE.MAIN.MINOR);if(s){const n=t.query.bullet2Scale(e.datum.value);return d(n)}return i.scale(e.datum.source.field)},h=()=>{c.scales=[]};return{query:{getScale:p},command:{update:h}}}({layoutService:A,mappingModel:j,tickModel:W,dockService:z,chart:r,rtl:C}),G=function({chart:e,actions:t,componentKey:n,enigmaModel:r,layoutService:o,dockService:a,trendLineModel:s,itemWidths:u,viewState:d,rtl:p,options:{definitionPath:h="/qHyperCubeDef",getRect:f,axisKey:m,renderer:g,areaBuffer:v,processDataPage:y=()=>{}}={}}){const b=l(),x=function({qMode:e}){switch(e){case"S":default:return Wx;case"K":return Vx;case"T":return Ux}}({qMode:o.getHyperCubeValue("qMode")}),S=function({state:e,contains:t}){return e.set(Gx,[]),{add:t=>{const n=e.get(Gx);n.length=0,n.push(t)},getCurrent:()=>e.get(Gx)[0],getAll:()=>e.get(Gx),contains:n=>t(e.get(Gx)[0],n)}}({state:b,contains:x.contains});!function({layoutService:e,dataStore:t,composition:n}){const r=e.getDataPages()[0];if(!r)return;const i=n.patcher({layoutService:e});i.should(r)&&i(r);t.add(r)}({layoutService:o,dataStore:S,composition:x});const w=function({buffer:e}){return void 0===e?void 0:2*Math.round(e/2)}({buffer:v}),M=function({dataStore:e,composition:t,enigmaModel:n,layoutService:r,trendLineModel:i=eS,definitionPath:o,processDataPage:a}){const{slicer:s,cacheWarden:l,request:u}=t,d=function({dataStore:e,slice:t,warden:n,expand:r,request:i,process:o,connectionless:a,processDataPage:s}){const l=(l,{onProcessing:c}={})=>{if(e.contains(l)){const r=e.getCurrent();if(a)return Promise.resolve(t(r,l));const i=n.release(r.qArea,l),s=o.isProcessing();if(!i&&s&&o.cancel(),!i||s)return Promise.resolve(t(r,l))}if(a)return Promise.resolve(e.getCurrent());o.isProcessing()&&c&&c();const u=r(l);return o(i(u)).then((n=>(s(n),e.add(n),t(n,l))))};return l}({dataStore:e,slice:s,warden:l({bounds:{width:r.meta.size.x,height:r.meta.size.y}}),expand:Zx({layoutService:r}),request:u({definitionPath:o}),process:Qx(n),connectionless:r.meta.isSnapshot,processDataPage:a}),p=c(((e,{onProcessing:t,onData:n})=>{d(e,{onProcessing:t}).then((e=>n(e))).catch((e=>{if(e!==zx)throw e}))}),Fx);return function(e,{onProcessing:t=jx,onDataPage:n=jx}={}){p(e,{onProcessing:t,onData:e=>{r.setDataPages(e?[e]:[]),i.command.update(),n(e)}})}}({dataStore:S,composition:x,enigmaModel:r,layoutService:o,trendLineModel:s,definitionPath:h,processDataPage:y}),k=function({chart:e,componentKey:t,state:n,dataStore:r,pageData:i,layoutService:o,dockService:a,itemWidths:s,getRect:l,axisKey:c,renderer:u,areaBuffer:d,viewState:p,rtl:h}){n.set("rect",{width:0,height:0}),n.set("itemWidths",{}),n.set("itemSize",0),n.set("items",{}),n.set("offsets",{}),n.set("finished",0),n.set("scaleRange",[0,1]);const f=function({chart:e,getRect:t,getDataPages:n,layoutService:r,dockService:i,getItemWidths:o,axisKey:a,renderer:s,areaBuffer:l,rtl:c}){const{inTotal:u,area:d,scaleRange:p}=function({layoutService:e}){const{isDimensionless:t,isGrouped:n,isGroupedByMeasure:r}=e.meta;if(t)return tS;if(!n)return nS;return r?aS:cS}({layoutService:r}),h=()=>"horizontal"===i.meta.major.orientation?t().width:t().height,f=e=>e?h()/e:0,m=(e,t)=>-(e-t)*f(t);return{getItems(){const n=r.getLayoutValue("dimensionAxis"),l=u({layoutService:r});return{inTotal:l,inView:uS({chart:e,rect:t(),dockService:i,itemWidths:o(),axisKey:a,renderer:s,isGrouped:r.meta.isGrouped,dimensionAxis:n,inTotal:l,isMajorLabelless:"none"===n.show||"title"===n.show,maxDataRows:Math.floor(_x/(r.meta.dimensionCount+r.meta.measureCount))})}},getItemSize({items:e}){const{inView:t}=e;return f(t)},getOffsets({pixelOffset:e,items:t}){const{inTotal:n,inView:r}=t,i=Math.min(0,Math.max(e,m(n,r))),o=r?Math.abs(r*i/h()):0;return{start:{pixel:i,item:o},end:{item:Math.min(o+(r||0),n)}}},getUpperBound({items:e}){const{inTotal:t,inView:n}=e;return m(t,n)},getViewRange({pixelOffset:e,items:t}){const{inTotal:n,inView:r}=t;return function({viewSize:e,inTotal:t,inView:n,pixelOffset:r}){const i=e/n*t,o=Math.abs(r)/i,a=Math.min(1,o+e/i);return[o,a]}({viewSize:h(),inTotal:n,inView:r,pixelOffset:e})},getArea:({itemOffset:e,items:t})=>d({getDataPages:n,layoutService:r,itemOffset:e,inView:t.inView,areaBuffer:l}),getScaleRange({offsets:e,items:t}){const o=p({getDataPages:n,layoutService:r,offsets:e,items:t,viewSize:h(),upperBound:m(t.inTotal,t.inView)});return"horizontal"===i.meta.major.orientation&&c?function(e){return[1-e[1],1-e[0]]}(o):o},validate:{offset({pixelOffset:e,items:t}){const{inTotal:n,inView:r}=t;return e<=0&&e>=m(n,r)}},convert:{itemToPixelOffset({itemOffset:e,items:t}){const{inView:n}=t,r=e*f(n);return Number.isFinite(r)?-r:0},relativeToPixelOffset({relativeOffset:e,items:t}){const{inTotal:n,inView:r}=t;return-e*(f(r)*n)}}}}({chart:e,getRect:()=>n.get("rect"),getDataPages:r.getCurrent,layoutService:o,dockService:a,getItemWidths:()=>n.get("itemWidths"),axisKey:c,renderer:u,areaBuffer:d,rtl:h}),m=()=>{const e=f.getItems();return n.set("items",e),e},g=({pixelOffset:e,items:t})=>{const r=f.getOffsets({pixelOffset:e,items:t});return n.set("offsets",r),r},v=({items:e})=>{const t=o.getLayoutValue("scrollStartPos"),n=p.get("scrollOffset");if(void 0===n)return 1===t?f.getUpperBound({items:e}):0;if("number"==typeof n)return f.convert.itemToPixelOffset({itemOffset:n,items:e});const{start:r,end:i}=n,a=1===t&&i?i-e.inView:r;return f.convert.itemToPixelOffset({itemOffset:a,items:e})},y=e=>{const[{qArea:t}]=o.getDataPages();return!!t&&Object.keys(e).every((n=>e[n]===t[n]))},b=e=>{const t=Date.now(),r=m(),o=g({pixelOffset:e,items:r}),a=f.getArea({itemOffset:o.start.item,items:r});if(y(a))return void((f.validate.offset({pixelOffset:e,items:r})||p.get("scrollOffset").start!==o.start.item)&&(n.set("finished",t),n.set("scaleRange",f.getScaleRange({offsets:o.start,items:r})),p.preventSet("viewRange",f.getViewRange({pixelOffset:o.start.pixel,items:r})),p.set("scrollOffset",{start:o.start.item,end:o.end.item})));p.preventSet("viewRange",f.getViewRange({pixelOffset:o.start.pixel,items:r}));const s=()=>{n.get("finished")>t||(n.set("finished",t),n.set("scaleRange",f.getScaleRange({offsets:o.start,items:r})),p.set("scrollOffset",{start:o.start.item,end:o.end.item}))};i(a,{onProcessing:s,onDataPage:s})};return{enabled(){const{inTotal:e,inView:t}=n.get("items");return e>t},itemSize:()=>n.get("itemSize"),scaleRange:()=>n.get("scaleRange"),initialize(){const r=e.component(t);if(!r)return Promise.resolve();n.set("rect","function"==typeof l?l():r.rect),n.set("itemWidths","function"==typeof s?s():s);const o=m();n.set("itemSize",f.getItemSize({items:o}));const a=v({items:o}),c=g({pixelOffset:a,items:o});p.preventSet("viewRange",f.getViewRange({pixelOffset:c.start.pixel,items:o}));const u=f.getArea({itemOffset:c.start.item,items:o});return new Promise((e=>{i(u,{onDataPage:()=>{n.set("scaleRange",f.getScaleRange({offsets:c.start,items:o})),p.preventSet("scrollOffset",{start:c.start.item,end:c.end.item}),e()}})}))},scroll(e){const t=n.get("offsets").start.pixel+e;b(t)},scrollToRelative(e){const t=n.get("items"),r=f.convert.relativeToPixelOffset({relativeOffset:e,items:t});b(r)}}}({chart:e,componentKey:n,state:b,dataStore:S,pageData:M,layoutService:o,dockService:a,itemWidths:u,getRect:f,axisKey:m,renderer:g,areaBuffer:w,viewState:d,rtl:p}),C=function({layoutService:e,dataStore:t}){return function(n){const r=i(n,`${e.refs.dataPages}`);r.length=0,r.push(t.getCurrent())}}({layoutService:o,dataStore:S}),E=function({chart:e,actions:t,componentKey:n,dockService:r,rtl:i,scroller:o}){return{gestures:[Jx({chart:e,actions:t,componentKey:n,dockService:r,rtl:i,scroller:o})],native:{type:"native",events:{wheel:Yx({chart:e,actions:t,componentKey:n,scroller:o})}}}}({chart:e,actions:t,componentKey:n,dockService:a,rtl:p,scroller:k});return{interactions:E,query:{getCanScroll:()=>k.enabled(),getItemSize:()=>k.itemSize(),getScaleRange:()=>k.scaleRange(),getCurrentDataPage:()=>S.getCurrent()},command:{initialize:()=>k.initialize(),scrollTo:e=>k.scrollToRelative(e),setSnapshotData:e=>C(e)}}}({chart:r,actions:a,componentKey:ES.COMPONENT.BAR,enigmaModel:p,layoutService:A,dockService:z,itemWidths:V.query.getItemWidths,viewState:v,rtl:C,options:{axisKey:ES.COMPONENT.MAJOR_AXIS,renderer:n.renderer("svg")()}});a.setContext({discrete:G});const K=rM({picassoInstance:n,plugins:R,layoutService:A});return t.layoutService=A,t.fieldModel=I,t.colorService=D,t.chartModel=L,t.dockService=z,t.mappingModel=j,t.extremumModel=_,t.styleModel=F,t.themeService=$,t.tooltipService=B,t.tickModel=W,t.itemWidthModel=V,t.scaleModel=U,t.discrete=G,t.disclaimerService=N,b.context={rtl:C,logicalSize:P},b.rect={...E},v.onChanged("scrollOffset",(()=>{q(t),L.command.updatePartial()})),function({layoutService:e,viewState:t,viewStateOptions:n={}}){const r=e.meta.isSnapshot?e.getLayoutValue("snapshotData.content.chartData",{}):n;t.preventSet("scrollOffset",r.scrollOffset)}({layoutService:A,viewState:v,viewStateOptions:k}),O.setLayout(A.getLayout()),Promise.all([Re({layout:A.getLayout(),model:p}),D.initialize(),K.initialize().then((()=>{t.pluginService=K}))])}),[e,t,x,s,M,u.name(),y.language()]),[D]=z((()=>{if(!N||!N.length)return Promise.resolve([]);const{properties:n}=N[0]||{},{picassoInstance:r,chart:i,actions:s,viewState:l,viewCache:c,store:u}=e;Object.keys(s).forEach((e=>s[e].update(x)));const{layoutService:h,fieldModel:f,colorService:m,chartModel:g,dockService:S,mappingModel:w,extremumModel:M,styleModel:k,themeService:C,tooltipService:E,tickModel:R,itemWidthModel:T,scaleModel:O,discrete:q,disclaimerService:P,selectionService:I,pluginService:D}=t;E.expando.set("properties",n),u.context.constraints=x;const L=()=>function(e,t){const{properties:n,dockService:r,layoutService:i,disclaimerService:o,isUnsupportedFeature:a,extensions:s,discrete:l,viewState:c,viewCache:u,styleModel:d,themeService:p,tooltipService:h,tickModel:f,chartModel:m,selectionService:g,translator:v,flags:y,actions:b,colorService:x,isLocked:S,scaleModel:w,fieldModel:M,extremumModel:k,itemWidthModel:C,mappingModel:E,model:R,app:T,debouncer:O,pluginService:q,deviceType:A}=t,{constraints:N,rtl:P,logicalSize:I}=e,D=i.getLayout(),L=function(e){return e.qHyperCube.qMeasureInfo.map(((e,t)=>`qMeasureInfo/${t}`))}(D),z=function(e){return e.qHyperCube.qDimensionInfo.map(((e,t)=>`qDimensionInfo/${t}`))}(D),{hasDimensions:j}=i.meta,_="vertical"===r.meta.minor.orientation||P,$=j?z:L,F=function({layoutService:e,fields:t,chartModel:n,colorService:r}){const i=function({layoutService:e,fields:t,collectionKey:n,chartModel:r,colorService:i}){const{hasDimensions:o,measuresSegmentIndices:a=[],measuresTargetIndex:s,dimensionCount:l}=e.meta,c={key:n,data:{extract:t.map(((t,n)=>{const c={field:t,value:o?void 0:n,props:{start:0,end:{field:o?"qMeasureInfo/0":t,reduceLabel:"none",label:Gw({dataset:r.query.getDataset(),minor:o?"qMeasureInfo/0":t})},...Kw({colorService:i,index:n}),selectionDimension:{field:t},...0!==l&&{customTooltipAttrExps:Nx.getNode(e.getLayout(),e.meta)}}},u=o?0:n;-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:ES.COLLECTION.MAIN,chartModel:n,colorService:r});return[i]}({layoutService:i,fields:$,chartModel:m,colorService:x}),H={...Lw({measures:L,yAxisData:j?z:L,invert:_,discrete:l,layoutService:i,tickModel:f,fieldModel:M,itemWidthModel:C,dockService:r,rtl:P}),...x.getScales()},B=function({fieldModel:e}){const t={};return e.minors.forEach((e=>{t[e]={data:{field:e}}})),t}({fieldModel:M}),W=function({actions:e,selectionService:t,layoutService:n,colorService:r,chartModel:i,isLocked:o,dockService:a,flags:s,isUnsupportedFeature:l,debouncer:c}){const u=i.command.getChart(),d=n.getHyperCubeValue("qDimensionInfo.0.qIsOneAndOnlyOne",!1),p=function(e){const{layoutService:t,selectionService:n}=e,{hasDimensions:r}=t.meta,i=t.getHyperCubeValue("qDimensionInfo.0.qIsOneAndOnlyOne",!1),o=!r||n.getIsDimensionLocked();return function(e,t){if(!e.targets)throw new Error("Missing 'targets' property");const n=$w(e,t);return{interactions:[n],components:[]}}({targets:o?[ES.COMPONENT.BAR]:[ES.COMPONENT.BAR,ES.COMPONENT.MAJOR_AXIS,ES.COMPONENT.RANGES],components:(e,t)=>[{key:t[0].key,action:e.srcEvent.ctrlKey||i?"set":"toggle",contexts:["selection"]}]},{...e,tooltipOnly:o})}({chart:u,actions:e,selectionService:t,layoutService:n,colorService:r,chartModel:i,isLocked:o,flags:s,debouncer:c})||Uw;if(d)return{components:[...p.components],gestures:[...p.interactions]};const h=function({actions:e,selectionService:t,dockService:n,layoutService:r,isUnsupportedFeature:i}){const{hasDimensions:o}=r.meta;if(!o)return!1;const a=Bw({actions:e,selectionService:t,layoutService:r,dockService:n,isUnsupportedFeature:i})||Ww,s=function({actions:e,selectionService:t,dockService:n}){const r=t.getIsDimensionLocked();if(r)return!1;return function(e,t){const n=function(e){const{key:t,targets:n,components:r,fillTargets:i,dock:o}=e;return{key:t,type:"brush-area-dir",layout:{dock:n.map((e=>`@${e}`)).join(",")},settings:{multiple:!0,brush:{components:r},direction:"left"===o||"right"===o?"vertical":"horizontal",bubbles:{align:"left"===o||"top"===o?"end":"start",placement:"inside"},target:{components:i,fill:"rgba(82,204,82,0.2)"}}}}(e),r=Hw(e,t,"area");return{interactions:[r],components:[n]}}({eventName:"discreteRange",key:"discrete-range-brush",components:[{key:ES.COMPONENT.GHOST_BAR,contexts:["selection"],action:"set"}],targets:[ES.COMPONENT.MAJOR_AXIS,ES.COMPONENT.BAR],fillTargets:[ES.COMPONENT.MAJOR_AXIS],dock:n.meta.major.dock},{actions:e})}({actions:e,selectionService:t,dockService:n})||Ww;return{components:[...s.components,...a.components],interactions:[...s.interactions,...a.interactions]}}({actions:e,selectionService:t,dockService:a,layoutService:n,isUnsupportedFeature:l})||Uw,f=Vw({actions:e,selectionService:t,layoutService:n})||Uw;return{components:[...p.components,...f.components,...h.components],gestures:[...p.interactions,...f.interactions,...h.interactions]}}({chartModel:m,actions:b,selectionService:g,layoutService:i,colorService:x,isLocked:S,dockService:r,flags:y,isUnsupportedFeature:a,debouncer:O}),V=function({properties:e,dockService:t,layoutService:n,extensions:r,discrete:i,viewState:o,styleModel:a,themeService:s,tooltipService:l,chartModel:c,translator:u,colorService:d,scaleModel:p,fieldModel:h,rtl:f,fields:m,invert:g,selectables:v,viewCache:y,extremumModel:b,disclaimerService:x,tickModel:S,itemWidthModel:w,mappingModel:M,model:k,app:C,constraints:E,deviceType:R,flags:T,selectionService:O}){const q=function({rtl:e,translator:t,disclaimerService:n,themeService:r}){const i=n.getDisclaimer();if(!i)return!1;const{fontFamily:o}=r.getStyles();return{key:"disclaimer",type:"disclaimer",layout:{dock:i.alignment},settings:{label:t.get(`Object.Disclaimer.${i.key}`),isRTL:e},style:{fontFamily:o}}}({rtl:f,translator:u,disclaimerService:x,themeService:s});if(x.getHasSuppressingDisclaimer())return[q];const A=[...Cw({chartModel:c,layoutService:n,extremumModel:b,dockService:t,themeService:s,tickModel:S}),...Mw({extremumModel:b,chartModel:c,fields:m,dockService:t,layoutService:n,scaleModel:p,fieldModel:h,colorService:d,styleModel:a,themeService:s,itemWidthModel:w,mappingModel:M,invert:g,flags:T}),xr({viewState:o,viewCache:y,layoutService:n,dockService:t,rtl:f}),Pw({extremumModel:b,chartModel:c,layoutService:n,dockService:t,styleModel:a,themeService:s,scaleModel:p,mappingModel:M,rtl:f,flags:T}),Nw({extremumModel:b,chartModel:c,layoutService:n,dockService:t,styleModel:a,themeService:s,scaleModel:p,mappingModel:M,rtl:f,flags:T}),...l.getComponents(),...$S({chartModel:c,dockService:t,layoutService:n,fieldModel:h,styleModel:a,themeService:s,rtl:f,itemWidthModel:w,flags:T}),...BS({model:k,app:C,translator:u,constraints:E,rtl:f,properties:e,layoutService:n,dockService:t,styleModel:a,flags:T,selectionService:O}),LS({viewState:o,viewCache:y,discrete:i,layoutService:n,dockService:t,themeService:s,rtl:f,deviceType:R}),...v.components],N=he.extend(A.filter(Boolean),r);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}(N),N}({properties:n,dockService:r,layoutService:i,disclaimerService:o,extensions:s,discrete:l,viewState:c,styleModel:d,themeService:p,tooltipService:h,chartModel:m,translator:v,colorService:x,scaleModel:w,fieldModel:M,rtl:P,fields:$,invert:_,selectables:W,viewCache:u,extremumModel:k,tickModel:f,itemWidthModel:C,mappingModel:E,model:R,app:T,constraints:N,deviceType:A,flags:y,selectionService:g}),U=function({gestures:e=[],chartModel:t,actions:n,viewState:r,viewCache:i,discrete:o,layoutService:a,dockService:s,tooltipService:l,rtl:c}){const u=t.command.getChart(),d=function({componentKey:e,chart:t,actions:n,viewState:r,viewCache:i,layoutService:o,dockService:a,discrete:s,rtl:l}){return{gestures:[...yd({componentKey:e,chart:t,actions:n,viewState:r,viewCache:i,layoutService:o,dockService:a,discrete:s,rtl:l})],native:bd({componentKey:e,chart:t,actions:n,layoutService:o})}}({componentKey:"scrollbar",chart:u,actions:n,viewState:r,viewCache:i,discrete:o,layoutService:a,dockService:s,rtl:c}),p=l.getInteractions(),h={type:"hammer",enable:!0,gestures:[...[...e].sort(((e,t)=>(t.prio||0)-(e.prio||0))),...d.gestures,...o.interactions.gestures,...p.gestures]},f=[p.native,d.native,o.interactions.native];return[h,...f]}({gestures:[...W.gestures],chartModel:m,actions:b,viewState:c,viewCache:u,discrete:l,layoutService:i,dockService:r,tooltipService:h,rtl:P}),G=(X={logicalSize:I,minCenterRatio:0},{layoutModes:ge.getLayoutModes(),center:void 0!==X.minCenterRatio?{minWidthRatio:X.minCenterRatio,minHeightRatio:X.minCenterRatio}:void 0,logicalSize:X.logicalSize?{align:.5,preserveAspectRatio:!0,...X.logicalSize}:void 0}),K={collections:F,scales:H,formatters:B,components:q.extendComponents(V),interactions:U,strategy:G,palettes:x.getPalettes()};var X;return K}(u.context,{properties:n,extensions:[],isUnsupportedFeature:a,model:p,app:d,actions:s,translator:y,flags:o,viewState:l,layoutService:h,chartModel:g,dockService:S,discrete:q,selectionService:I,isLocked:b&&b.isLocked?b.isLocked:Sr,viewCache:c,colorService:m,tickModel:R,styleModel:k,themeService:C,tooltipService:E,scaleModel:O,fieldModel:f,extremumModel:M,itemWidthModel:T,disclaimerService:P,mappingModel:w,debouncer:v,pluginService:D,deviceType:A});u.generateSettings=L;const z=o.isEnabled("LAYOUTING_WITH_DATA");return US({layoutService:h})&&(g.command.updateDataless({generateSettings:L,forceData:z}),T.command.update()),g.command.updateDataless({generateSettings:L,forceData:z}),Promise.all([Promise.resolve({}),q.command.initialize()])}),[N,x]);I((()=>{if(!D||!D.length)return;const{updateModels:n,chartModel:r,layoutService:i}=t,{viewCache:o}=e;n(t),r.command.update(),zr.cacheProperties({viewCache:o,layout:i.getLayout()}),o.set("hasSlicedHats",r.command.getAnimationsMeta("hasSlicedHats"))}),[D])}({core:t,models:n,env:e}),function({core:e,models:t,flags:n}){const r=q(),i=L(),[o]=z((()=>{if(!(t&&e&&e.store.generateSettings&&e.store.rect))return Promise.resolve([]);const{store:o}=e,{generateSettings:a}=o,{layoutService:s,dockService:l,itemWidthModel:c,chartModel:u,discrete:d}=t,p=s.getLayout(),h=mx({layout:p,options:r});o.context.logicalSize=h;const f=h||i;if(!f||!f.width||!f.height)return Promise.resolve([]);const m=!!p.snapshotData;if(!m&&gx(o.rect,f))return Promise.resolve([]);l.update(f),m||(o.rect={...f}),c.command.update();const g=n.isEnabled("LAYOUTING_WITH_DATA");return u.command.updateDataless({generateSettings:a,forceData:g}),c.command.update(),Promise.all([Promise.resolve({}),d.command.initialize()])}),[i.width,i.height]);I((()=>{if(!o||!o.length)return;const{updateModels:e,chartModel:n}=t;e(t),n.command.update(),n.command.update()}),[o])}({core:t,models:n,flags:e.flags}),lM({core:t,models:n})}}}));var J={properties_dataPoints_labelmode_share:{id:"properties.dataPoints.labelmode.share",locale:{"en-US":"Share","zh-TW":"佔有率","zh-CN":"份额","tr-TR":"Pay","sv-SE":"Andel","it-IT":"Percentuale","es-ES":"Cuota","de-DE":"Anteil","pl-PL":"Udział","nl-NL":"Aandeel","ko-KR":"공유","pt-BR":"Percentual","fr-FR":"Part","ja-JP":"割合","ru-RU":"Доля"}},Tooltip_selections_locked:{id:"Tooltip.selections.locked",locale:{"en-US":"Selections on this dimension are locked","zh-TW":"已鎖定此維度上的選項","zh-CN":"相关维度的选择已锁定","tr-TR":"Bu boyuttaki seçimler kilitli","sv-SE":"Urval i den här dimensionen är låsta","it-IT":"Le selezioni in questa dimensione sono bloccate","es-ES":"Las selecciones de esta dimensión están bloqueadas.","de-DE":"Auswahlen sind für diese Dimension gesperrt","pl-PL":"Selekcje dotyczące tego wymiaru są zablokowane","nl-NL":"Selecties voor deze dimensie zijn vergrendeld","ko-KR":"이 차원의 선택은 잠겨 있습니다.","pt-BR":"Seleções estão bloqueadas nesta dimensão","fr-FR":"Sélections verrouillées pour cette dimension","ja-JP":"この軸での選択はロックされています","ru-RU":"Выборки для данного измерения заблокированы"}},Tooltip_dimensions_drilldown:{id:"Tooltip.dimensions.drilldown",locale:{"en-US":"Drill-down dimension","zh-TW":"向下探查維度","zh-CN":"下钻维度","tr-TR":"Detaya inme boyutu","sv-SE":"Hierarkisk dimension","it-IT":"Dimensione di drill-down","es-ES":"Dimensión jerárquica","de-DE":"Drilldown-Dimension:","pl-PL":"Wymiar hierarchiczny","nl-NL":"Drill-downdimensie","ko-KR":"드릴다운 차원","pt-BR":"Dimensão da hierarquia","fr-FR":"Descendre dans la hiérarchie de la dimension","ja-JP":"軸のドリルダウン","ru-RU":"Измерение с детализацией"}},Object_ErrorMessage_MissingDimension:{id:"Object.ErrorMessage.MissingDimension",locale:{"en-US":"Dimension not found","zh-TW":"找不到維度","zh-CN":"未找到维度","tr-TR":"Boyut bulunamadı","sv-SE":"Dimensionen hittades inte","it-IT":"Dimensione non trovata","es-ES":"No se ha encontrado la dimensión","de-DE":"Dimension nicht gefunden","pl-PL":"Wymiar nie został znaleziony","nl-NL":"Dimensie niet gevonden","ko-KR":"차원을 찾지 못했습니다.","pt-BR":"Dimensão não encontrada","fr-FR":"Dimension introuvable","ja-JP":"軸が見つかりません","ru-RU":"Измерение не найдено"}},Object_ErrorMessage_MissingMeasure:{id:"Object.ErrorMessage.MissingMeasure",locale:{"en-US":"Measure not found","zh-TW":"找不到量值","zh-CN":"未找到度量","tr-TR":"Hesaplama bulunamadı","sv-SE":"Måttet hittades inte","it-IT":"Misura non trovata","es-ES":"No se ha encontrado la medida","de-DE":"Kennzahl nicht gefunden","pl-PL":"Miara nie została znaleziona","nl-NL":"Meting niet gevonden","ko-KR":"측정값을 찾지 못했습니다.","pt-BR":"Medida não encontrada","fr-FR":"Mesure introuvable","ja-JP":"メジャーが見つかりません","ru-RU":"Мера не найдена"}},Object_Disclaimer_LimitedData:{id:"Object.Disclaimer.LimitedData",locale:{"en-US":"Currently showing a limited data set.","zh-TW":"目前顯示的是有限的資料集。","zh-CN":"当前正显示有限的数据集。","tr-TR":"Şu anda sınırlı bir veri kümesi gösteriliyor.","sv-SE":"Just nu visas en begränsad uppsättning data.","it-IT":"Attualmente viene visualizzata una serie di dati limitata.","es-ES":"Mostrando actualmente un conjunto limitado de datos.","de-DE":"Zurzeit wird nur ein beschränkter Datensatz angezeigt.","pl-PL":"Aktualnie przedstawiany jest ograniczony zestaw danych.","nl-NL":"Momenteel wordt een beperkte gegevensverzameling getoond.","ko-KR":"현재 제한된 데이터 집합을 표시하고 있습니다.","pt-BR":"Mostrando um conjunto de dados limitado.","fr-FR":"Affichage d'un ensemble de données limité pour l'instant.","ja-JP":"現在、限定的なデータ セットを表示しています。","ru-RU":"В настоящее время отображается ограниченный набор данных."}},Object_Disclaimer_OnlyNegativeOrZeroValues:{id:"Object.Disclaimer.OnlyNegativeOrZeroValues",locale:{"en-US":"The chart is not displayed because it contains only negative or zero values.","zh-TW":"系統不會顯示圖表,因為該圖表僅包含負值或零值。","zh-CN":"未显示图表,因为它仅包含负值或零值。","tr-TR":"Yalnızca negatif veya sıfır değerlerini içermesi nedeniyle grafik görüntülenmiyor.","sv-SE":"Diagrammet visas inte eftersom det enbart innehåller negativa eller nollvärden","it-IT":"Il grafico non viene visualizzato poiché contiene solo valori negativi o uguali a zero.","es-ES":"El gráfico no se muestra porque sólo contiene valores negativos o valores cero.","de-DE":"Das Diagramm wird nicht angezeigt, da es nur negative oder 0-Werte enthält.","pl-PL":"Wykres nie jest wyświetlany, ponieważ zawiera wartości ujemne lub zerowe.","nl-NL":"De grafiek wordt niet weergegeven omdat het alleen negatieve waarden of nulwaarden bevat.","ko-KR":"음수 또는 zero 값만 포함되어 있으므로 차트가 표시되지 않습니다.","pt-BR":"O gráfico não foi exibido, porque contém apenas valores negativos ou zero.","fr-FR":"Le graphique n'est pas affiché, car il contient uniquement des valeurs négatives ou égales à zéro.","ja-JP":"チャートは負の値またはゼロ値しか含まれていないため、表示されていません。","ru-RU":"Диаграмма не отображается, поскольку она содержит только отрицательные или нулевые значения."}},Object_Disclaimer_NegativeOrZeroValues:{id:"Object.Disclaimer.NegativeOrZeroValues",locale:{"en-US":"The data set contains negative or zero values that cannot be shown in this chart.","zh-TW":"資料集包含無法在此圖表中顯示的負值或零值。","zh-CN":"数据集中包含无法在此图表中显示的负值或零值。","tr-TR":"Veri kümesi, bu grafikte gösterilemeyen negatif veya sıfır değerlerini içeriyor.","sv-SE":"Datauppsättningen innehåller negativa värden eller nollvärden som inte kan visas i detta diagram.","it-IT":"La serie di dati contiene valori negativi o uguali a zero che non possono essere visualizzati in questo grafico.","es-ES":"El conjunto de datos contiene valores negativos o cero que no se pueden mostrar en este gráfico.","de-DE":"Die in den Datensätzen enthaltenen negativen oder 0-Werte können nicht in diesem Diagramm dargestellt werden.","pl-PL":"Zestaw danych zawiera wartości ujemne lub zerowe, których nie można przedstawić w tym wykresie.","nl-NL":"De gegevensverzameling bevat negatieve waarden of nulwaarden die niet kunnen worden weergegeven in deze grafiek.","ko-KR":"데이터 집합에 해당 차트에 표시할 수 없는 음수 값 또는 zero 값이 포함되어 있습니다.","pt-BR":"O conjunto de dados contém valores negativos ou iguais a zero que não podem ser mostrados neste gráfico.","fr-FR":"L'ensemble de données contient des valeurs négatives ou égales à zéro impossibles à afficher dans ce graphique.","ja-JP":"データ セットには、本チャートに表示できない負の値またはゼロ値が含まれています。","ru-RU":"Набор данных содержит отрицательные или нулевые значения, которые невозможно показать в этой диаграмме."}},Object_Disclaimer_DataRangeIncludingZero:{id:"Object.Disclaimer.DataRangeIncludingZero",locale:{"en-US":"The logarithmic scale has been replaced by a linear scale because the data range includes zero.","zh-TW":"對數刻度已遭線性刻度取代,因為資料範圍包含零。","zh-CN":"对数刻度已替换为线性刻度,因为该数据范围包括零。","tr-TR":"Veri aralığı sıfır değerini içerdiğinden, logaritmik ölçek yerine doğrusal ölçek kullanıldı.","sv-SE":"Den logaritmiska skalan har ersatts av en linjär skala eftersom dataintervallet innehåller värdet noll.","it-IT":"La scala logaritmica è stata sostituita da una scala lineare perché l'intervallo di dati include zero.","es-ES":"La escala logarítmica ha sido reemplazada por una escala lineal porque el rango de datos incluye cero.","de-DE":"Die logarithmische Skala wurde durch die lineare Skala ersetzt, weil der Datenbereich NULL enthält.","pl-PL":"Skala logarytmiczna została zastąpiona liniową, ponieważ zakres danych zawiera zero.","nl-NL":"De logaritmische schaal is vervangen door een lineaire schaal omdat het gegevensbereik nullen bevat.","ko-KR":"데이터 범위에 0이 포함되어 있으므로 로그 눈금이 선형 눈금으로 바뀌었습니다.","pt-BR":"A escala logarítmica foi substituída por uma escala linear, pois o intervalo de dados inclui zero.","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.","ja-JP":"データ範囲にゼロが含まれるため、Log スケールは Linear スケールで置換されています。","ru-RU":"Логарифмический масштаб заменен линейным масштабом, поскольку диапазон данных включает ноль."}},Object_Disclaimer_NoDataExist:{id:"Object.Disclaimer.NoDataExist",locale:{"en-US":"The selections generated no data for this chart.","zh-TW":"此選項無法產生任何適用於此圖表的資料。","zh-CN":"选择未生成此图表的数据。","tr-TR":"Seçimler bu grafik için hiç veri oluşturmadı.","sv-SE":"Urvalen genererade inga data för detta diagram.","it-IT":"Le selezioni non hanno generato dati per questo grafico.","es-ES":"Las selecciones no han generado datos para este gráfico.","de-DE":"Die Auswahlen haben für dieses Diagramm keine Daten generiert.","pl-PL":"Selekcje nie spowodowały wygenerowania danych dla tego wykresu.","nl-NL":"De selecties hebben geen gegevens voor de grafiek gegenereerd.","ko-KR":"선택 내용으로 해당 차트에 대한 데이터가 생성되지 않았습니다.","pt-BR":"As seleções não geraram dados para este gráfico.","fr-FR":"Les sélections n'ont pas généré de données pour ce graphique.","ja-JP":"このチャートには選択からデータが生成されませんでした。","ru-RU":"В результате выборок данные для этой диаграммы не созданы."}},Object_Disclaimer_OnlyNanData:{id:"Object.Disclaimer.OnlyNanData",locale:{"en-US":"The chart is not displayed because it contains only undefined values.","zh-TW":"系統不會顯示圖表,因為該圖表僅包含未定義的值。","zh-CN":"未显示图表,因为它仅包含未定义的值。","tr-TR":"Yalnızca tanımsız değerleri içermesi nedeniyle grafik görüntülenmiyor.","sv-SE":"Diagrammet visas inte eftersom det enbart innehåller odefinierade värden.","it-IT":"Il grafico non è visualizzato poiché contiene solo valori non definiti.","es-ES":"El gráfico no se muestra porque solo contiene valores indefinidos.","de-DE":"Das Diagramm wird nicht angezeigt, da es nur nicht definierte Werte enthält.","pl-PL":"Wykres nie jest wyświetlany, ponieważ zawiera wartości niezdefiniowane.","nl-NL":"De grafiek wordt niet weergegeven omdat deze alleen ongedefinieerde waarden bevat.","ko-KR":"정의되지 않은 값만 포함되어 있으므로 차트가 표시되지 않습니다.","pt-BR":"O gráfico não foi exibido, porque contém apenas valores não definidos.","fr-FR":"Le graphique n'est pas affiché, car il contient uniquement des valeurs non définies.","ja-JP":"未定義の値しか含まれていないため、チャートは表示されていません。","ru-RU":"Диаграмма не отображается, поскольку она содержит только неопределенные значения."}},Object_Disclaimer_OnlyNegativeValues:{id:"Object.Disclaimer.OnlyNegativeValues",loca