UNPKG

@nebula.js/sn-line-chart

Version:

Line chart supernova

7 lines (6 loc) 560 kB
/* * @nebula.js/sn-line-chart v2.4.0 * Copyright (c) 2026 QlikTech International AB * Released under the MIT license. */ System.register(["qlik-chart-modules","qlik-object-conversion","@nebula.js/stardust","qlik-chart-modules/react","hammerjs","picasso.js","picasso-plugin-q"],function(e){"use strict";var t,n,i,r,o,a,s,l,c,u,d,m,h,p,f,g,y,v,M,S,x,b,E,N,C,T,k,L,I,O,w,q,D,A,P,R,_,U,z,F,V,$,j,H,B,W,G,X,J,Y,K,Z;return{setters:[function(e){t=e.getValue,n=e.setValue,i=e.createColor,r=e.memoize,o=e.fontResolver,a=e.debouncer,s=e.throttler,l=e.pointLabelComponent,c=e.storage,u=e.cache,d=e.colorService,m=e.disclaimerService,h=e.layoutService,p=e.selectionService,f=e.tooltipService,g=e.themeService,y=e.dockService,v=e.alternativeService,M=e.pluginService,S=e.createTapInteraction,x=e.createContinuousRangeInteraction,b=e.createAreaRangeInteraction,E=e.createLassoInteraction},function(e){N=e.default},function(e){C=e.useModel,T=e.useState,k=e.useEffect,L=e.useImperativeHandle,I=e.onTakeSnapshot,O=e.useApp,w=e.useOptions,q=e.useRenderState,D=e.usePromise,A=e.useLayout,P=e.useTranslator,R=e.useAction,_=e.useConstraints,U=e.useDeviceType,z=e.useElement,F=e.useSelections,V=e.useAppLayout,$=e.useEmbed,j=e.usePlugins,H=e.useStaleLayout,B=e.useTheme,W=e.useRect},function(e){G=e.reactRenderer,X=e.axisTitleComponent,J=e.disclaimerComponent},function(e){Y=e.default},function(e){K=e.default},function(e){Z=e.default}],execute:function(){e("default",function(e){return function(e){if(e&&e.get&&e.add){const t="Object.Disclaimer.LimitedData";if(e.get(t)!==t)return;Object.keys(te).forEach(t=>{e.add(te[t])})}}(e.translator),{ext:jd(e),qae:Hd(e),component(){const n=function({env:e}){const t=function(){const e={timer:Date.now(),mainTimer:null,pointTimer:null,lineTimer:null,reducedLineTimer:null,renderPromise:null,getInProgressive:()=>e.progressive,setInProgressive:t=>{e.progressive=t}},[t]=T(()=>e);return t}(),n=function(e){const t=_(),n=function(){const e=A(),t=P(),[n,i]=T(!1),[r,o]=T(!1),a=e=>{o("boolean"==typeof e?e:!r)},[s]=T({});return s.enabled=()=>n,s.active=()=>r,s.action=a,s.update=e=>{i(!e.select&&!e.active)},R(()=>{const i=!!e.qSelectionInfo?.qInSelections,o=!!e.qHyperCube?.qDimensionInfo?.[0]?.qIsOneAndOnlyOne;return{key:"lasso",label:t.get(r?"Tooltip.ToggleOffLassoSelection":"Tooltip.ToggleOnLassoSelection"),icon:xp,hidden:!n||!i||o,action:a,active:r}},[r,n,e,t.language()]),s}(),[i]=T(()=>function({lasso:e,progressiveRendering:t}){const n={interact:{isEnabled:!0,enabled(){return this.isEnabled},update(e){this.isEnabled=!e.active}},lasso:e,scroll:{isEnabled:!0,enabled(){return this.isEnabled},update(e){this.isEnabled=!e.active}},select:{isEnabled:!0,enabled(){return this.isEnabled&&!t.getInProgressive()},update(e){this.isEnabled=!e.select&&!e.active}},tooltip:{isEnabled:!0,enabled(){return this.isEnabled},update(e){this.isEnabled=!e.passive}},update(e){Object.keys(n).forEach(t=>{n[t].update&&n[t].update(e)})},destroy(){n.select.removeAllListeners()}};return Object.keys(Sp.prototype).forEach(e=>{n.select[e]=Sp.prototype[e]}),Sp.init(n.select),n}({lasso:n,progressiveRendering:e}));return k(()=>{i.update(t)},[t]),i}(t),i=U(),r=z(),o=w(),a=F(),[s,d]=T();return k(()=>{const{flags:s={isEnabled:()=>!1},isUnsupportedFeature:m=()=>!1,hostConfig:h}=e,p=function(){const e=K();return e.use(Z),e.use(function(e){if("function"!=typeof e.interaction)return t=>{t.interaction("hammer",Kh(e))};return void e.interaction("hammer",Kh(Hammer))}(Y)),e.renderer("react-qcm",G),e.component("axis-overlay",Rh.picassoComponents.axisOverlay),e.component("axis-title",X),e.component("brush-highlighter",cp),e.component("disclaimer",J),e.component("ghost-point",up),e.component("label-space",Wh),e.component("out-of-bounds-marker",Xh),e.component("point-label",l),e.component("reference-line-labels",gs),e.component("scroll-hint",Ro),e.component("scrollbar",Ec),e.component("time-axis",Rh.picassoComponents.timeAxis),e.scale("logarithmic",gp),e.scale("time",Rh.picassoScales.time),e.symbol("line-point",dp),e}(),f=p({renderer:{prio:[o.renderer||"canvas"]}});r.style.overflow="hidden";const g=f.chart({element:r,data:[],settings:{}});return d({actions:n,chart:g,deviceType:i,flags:s,isUnsupportedFeature:m,picasso:f,progressiveRendering:t,selections:a,viewCache:u(),viewState:c({scrollOffset:void 0,viewRange:[0,1]}),hostConfig:h}),function(){n.destroy(),g.destroy()}},[]),s}({env:e}),i=function({core:e}){const n=O(),i=V(),r=$(),o=C(),a=w(),l=j(),c=F(),d=H(),m=B(),p=P(),[f,S]=T(),[x,b]=T();return k(()=>{if(!e)return()=>{};const{actions:t,chart:n}=e,i=bf({actions:t,chart:n,selections:c});return S(i),function(){i.destroy(),i.destroyLazySelection()}},[e]),k(()=>{if(!f)return;const{qLocaleInfo:c}=i,S="rtl"===a.direction,{actions:x,chart:E,flags:N,isUnsupportedFeature:C,picasso:T,viewCache:k,viewState:L,progressiveRendering:I}=e,O=h({source:d,metaAdditionsFn:Mf(C),experimental:{filter:!0}});f.setFilteredFields(O.meta.filteredFields),f.setLayout(O.getLayout());const w=g({theme:m,config:{id:"lineChart",resolve:[["object","plugins.label","fontFamily",'"Source Sans Pro", "Arial", "sans-serif"'],["object","plugins.label","fontSize","12px"]]}}),q=y({chart:E,layoutService:O,config:{logicalSize:Sv({layout:O.getLayout(),options:a}),rtl:S},typeConfig:{type:"major-minor",fallback:"horizontal",invert:!1}}),D=v({app:n,translator:p}),A=function({chart:e,layoutService:n,progressiveRendering:i,options:r}){const{POINT:o,LINE:a,BRUSH_HIGHLIGHTER:s,REDUCED_LINE:l}=_h.COMPONENT,c={partialUpdate:[_h.COMPONENT.MINOR_AXIS,_h.COMPONENT.GRID_LINE,_h.COMPONENT.ZERO_LINE,_h.COMPONENT.MAJOR_AXIS_TITLE,_h.COMPONENT.MINOR_AXIS_TITLE,_h.COMPONENT.MEASURE_REF_LINE_LABEL,_h.COMPONENT.LEGEND_CATEGORICAL,l],duringMainProgressive:[],duringReducedLineProgressive:[],forClearProgressive:[],postUpdate:[],all:[]},{dimensionCount:u,measureCount:d,isOneDimensional:m,isContinuous:h,size:p,isStacked:f,isConnect:g}=n.meta,y=n.getLayout(),v=!0,M=void 0===y.maxNumPoints||y.maxNumPoints<fv?fv:Math.min(gv,Math.ceil(y.maxNumPoints)),S=Math.min(yv,M),x=t(y.qHyperCube,"qSize.qcy"),b=1===u?x*d:x,E=()=>{const e=void 0===y.maxNumLines||y.maxNumLines<=0?vv:Math.min(Mv,Math.ceil(y.maxNumLines));return 1===u?Math.min(e,d):2===u?Math.min(e,p.dimensions[1]+1):void 0},N=E(),C=h&&b>S&&M>S&&(M>fv&&N>=vv||M>=fv&&N>vv),T={mainPages:[],reducedCube:void 0,reducedPages:[]},k={isMaxNumPointsEnabled:v,isLargeNumPoints:C,maxNumPoints:M,maxNumLines:N,pointProgressive:!1,lineProgressive:!1,reducedLineProgressive:!1,highlighterProgressive:!1,hasInjectedData:!g||f},L={linesDict:{},lines:[],chunks:[],matrix:[]},I={linesDict:{},lines:[],chunks:[],matrix:[]};function O(){T.mainPages=n.getDataPages(),n.setDataPages([])}function w(){n.setDataPages(T.mainPages),T.mainPages=[]}function q(){T.reducedCube&&(T.reducedPages=T.reducedCube.qDataPages||[],T.reducedCube.qDataPages=[])}function D(){T.reducedCube&&(T.reducedCube.qDataPages=T.reducedPages,T.reducedPages=[])}const A=()=>ov({layoutService:n,isMaxNumPointsEnabled:v,maxNumPoints:M,maxNumLines:N,options:r}),P=t=>{const n=t?[...c.partialUpdate,o,a,s]:[l,o,a,s];e.update({partialData:!0,excludeFromUpdate:n})},R=t=>{requestAnimationFrame(()=>{null===i.reducedLineTimer&&null===i.mainTimer&&(e.update({partialData:!0,excludeFromUpdate:c.postUpdate}),i.setInProgressive(!1),t())})},_=e=>{requestAnimationFrame(()=>{k.pointProgressive=!1,k.lineProgressive=!1,i.mainTimer=null,R(e)})},U=e=>{requestAnimationFrame(()=>{k.reducedLineProgressive=!1,i.reducedLineTimer=null,R(e)})},z=(t,r)=>{i.setInProgressive(!0);const o=n.getDataPages();if(!o.length)return void r(t);const a=o[0].qMatrix.length,s=d;let l=0;const u=()=>{i.mainTimer=requestAnimationFrame(()=>{if(!e?.update)return void mv({progressiveRendering:i,meta:k});const n=Math.max(0,l*a),o=Math.min(a*d,(l+1)*a);k.pointProgressive={start:n,end:o,isFirst:0===l,isLast:l===s-1},k.lineProgressive={...k.pointProgressive},e.update({partialData:!0,excludeFromUpdate:c.duringMainProgressive}),l++,l<s?u():r(t)})};u()},F=(t,n)=>{i.setInProgressive(!0);const{reducedCube:r}=T,o=r.qDataPages;if(!o.length)return void n(t);const a=o[0].qMatrix.length,s=d;let l=0;const u=()=>{i.reducedLineTimer=requestAnimationFrame(()=>{const i=Math.max(0,l*a),r=Math.min(a*d,(l+1)*a);k.reducedLineProgressive={start:i,end:r,isFirst:0===l,isLast:l===s-1},e.update({partialData:!0,excludeFromUpdate:c.duringReducedLineProgressive}),l++,l<s?u():n(t)})};u()},V=(e,t)=>{if(P(t),i.renderPromise={resolve:e},t)z(e,_);else{const{reducedCube:t}=T,n=t.qDataPages;z(e,_),n.length&&c.all.includes(l)&&F(e,U)}},$=(t,r)=>{const o=n.getDataPages()[0].qMatrix.length,{lines:a,matrix:s}=L,l=a.length,u=a[0].points.length,d=pv(a),m=Math.ceil(u/d);let h=0;const p=()=>{i.mainTimer=requestAnimationFrame(()=>{if(!e?.update)return void mv({progressiveRendering:i,meta:k});O();const a=h*l*d,u=Math.min(o,(h+1)*l*d),f=Math.max(a-l,0),g=u;k.pointProgressive={start:f,end:g,isFirst:0===h,isLast:g===o},k.lineProgressive={...k.pointProgressive};const y=[{...T.mainPages[0],qMatrix:s.slice(a,u)}];n.setDataPages(y),e.update({partialData:!0,excludeFromUpdate:c.duringMainProgressive}),w(),h++,h<m?p():r(t)})};p()},j=(t,r)=>{const o=n.getDataPages()[0].qMatrix.length,{chunks:a}=L,s=a.length;let l=0,u=0;const d=()=>{i.mainTimer=requestAnimationFrame(()=>{if(!e?.update)return void mv({progressiveRendering:i,meta:k});O();const m=Math.min(o,u+a[l].length);k.pointProgressive={start:u,end:m,isFirst:0===l,isLast:l===s-1},k.lineProgressive={...k.pointProgressive},u=m;const h=[{...T.mainPages[0],qMatrix:a[l]}];n.setDataPages(h),e.update({partialData:!0,excludeFromUpdate:c.duringMainProgressive}),w(),l++,l<s?d():r(t)})};d()},H=(e,t)=>{i.setInProgressive(!0);const r=n.getDataPages();r.length?(lv(n,r,L,f,!0),f?$(e,t):j(e,t)):t(e)},B=(t,n)=>{const{reducedCube:r}=T,o=r.qDataPages[0].qMatrix.length,{lines:a,matrix:s}=L,l=a.length,u=a[0].points.length,d=pv(a),m=Math.ceil(u/d);let h=0;const p=()=>{i.reducedLineTimer=requestAnimationFrame(()=>{if(!e?.update)return void mv({progressiveRendering:i,meta:k});q();const a=h*l*d,u=Math.min(o,(h+1)*l*d),f=Math.max(a-l,0),g=u;k.reducedLineProgressive={start:f,end:g,isFirst:0===h,isLast:g===o};const y=[{...T.reducedPages[0],qMatrix:s.slice(a,u)}];r.qDataPages=y,e.update({partialData:!0,excludeFromUpdate:c.duringReducedLineProgressive}),D(),h++,h<m?p():n(t)})};p()},W=(t,n)=>{const{reducedCube:r}=T,o=r.qDataPages[0].qMatrix.length,{chunks:a}=I,s=a.length;let l=0,u=0;const d=()=>{i.reducedLineTimer=requestAnimationFrame(()=>{if(!e?.update)return void mv({progressiveRendering:i,meta:k});q();const m=Math.min(o,u+a[l].length);k.reducedLineProgressive={start:u,end:m,isFirst:0===l,isLast:l===s-1},u=m;const h=[{...T.reducedPages[0],qMatrix:a[l]}];r.qDataPages=h,e.update({partialData:!0,excludeFromUpdate:c.duringReducedLineProgressive}),D(),l++,l<s?d():n(t)})};d()},G=(e,t)=>{i.setInProgressive(!0);const{reducedCube:r}=T,o=r.qDataPages;o.length?(lv(n,o,I,f),f?B(e,t):W(e,t)):t(e)},X=(e,t)=>{if(P(t),i.renderPromise={resolve:e},t)H(e,_);else{const{reducedCube:t}=T,n=t.qDataPages;H(e,_),n.length&&c.all.includes(l)&&G(e,U)}},J=(e,t)=>{m?V(e,t):X(e,t)},Y=({render:t,nodes:r})=>cv({chart:e,layoutService:n,progressiveRendering:i,meta:k,render:t,nodes:r,timerId:"highlighterTimer",progressiveId:"highlighterProgressive",shouldUseProgressive:A}),K=({render:t,nodes:r})=>cv({chart:e,layoutService:n,progressiveRendering:i,meta:k,render:t,nodes:r,timerId:"lineTimer",progressiveId:"lineProgressive",shouldUseProgressive:A}),Z=()=>{null===i.mainTimer&&null===i.pointTimer&&null===i.lineTimer&&null===i.reducedLineTimer||(mv({progressiveRendering:i,meta:k}),O(),q(),e.update({partialData:!0,excludeFromUpdate:c.forClearProgressive}),w(),D())};return{meta:k,exclude:c,getSelectionContext:()=>C?"lazySelection":"selection",shouldUseProgressive:A,isLargeNumVisiblePoints:()=>rv({layoutService:n,maxNumPoints:M,maxNumLines:N}),resetProgressive:e=>mv({progressiveRendering:i,isPartialUpdate:e,meta:k}),renderProgressive:J,brushPoints:({render:t,nodes:n})=>dv({chart:e,shouldUseProgressive:A,progressiveRendering:i,meta:k,render:t,nodes:n}),dimLines:K,highlightLines:Y,setReducedCube:e=>{T.reducedCube=e},clear:Z}}({chart:E,layoutService:O,progressiveRendering:I,options:a}),P=function({layoutService:e}){const t=function({layoutService:e}){const t=e.meta.isDiscrete?cf:hf;return t({layoutService:e})}({layoutService:e}),n={shouldProcess:t.shouldProcess()};if(t.shouldProcessInitialPage()){const n=e.getDataPages();t.processDataPage({dataPage:n&&n.length?n[0]:[]})}return{query:{getShouldProcess:()=>n.shouldProcess,getFilteredDataPage:({dataPage:e})=>t.getFilteredDataPage({dataPage:e})},command:{processDataPage:({dataPage:e})=>{n.shouldProcess&&t.processDataPage({dataPage:e})}}}}({layoutService:O}),R=function({layoutService:e}){const t={layoutService:void 0},{isDiscrete:n,hasMultipleDimensions:i}=e.meta,r=e.getLayoutValue("color",{}),o=r.auto?i:"byDimension"===r.mode&&r.byDimDef&&r.byDimDef.activeDimensionIndex>-1;n&&o&&(t.layoutService=h({source:e.getLayout()}));return{query:{getHasCube:()=>!!t.layoutService,getCube:()=>t.layoutService?t.layoutService.getHyperCube():void 0,getDataPages:()=>t.layoutService?t.layoutService.getDataPages():void 0},command:{setDataPages:e=>{t.layoutService&&t.layoutService.setDataPages(e)}}}}({layoutService:O}),_=function({layoutService:e}){const{isOneDimensional:t,isContinuous:n}=e.meta,i="qDimensionInfo/0",r=`${i}:numeric`,o="qDimensionInfo/"+(t?0:1),a=e.getHyperCubeValue("qMeasureInfo"),s=a.map((e,t)=>`qMeasureInfo/${t}`),l=n?[{key:r,from:i,override:{value:e=>e.qNum}}]:void 0;return{main:{outer:i,inner:o,outerNumeric:r,minors:s},reduced:{outer:i,inner:o,minors:t?s:["qMeasureInfo/0","qMeasureInfo/1"]},forecast:vf(a),virtuals:l}}({layoutService:O}),U=function({enigmaModel:e,layoutService:t,dataProcessorModel:n}){const i={cube:void 0,on:!1},r=function({enigmaModel:e,layoutService:t}){const{isSnapshot:n,isContinuous:i}=t.meta;if(n)return function({layoutService:e}){return function(){return Promise.resolve({reducedCube:e.getLayoutValue("reducedHyperCube")||re(!0,{},e.getHyperCube())})}}({layoutService:t});if(i)return function({layoutService:e}){return function(){const t=e.getHyperCube();return Promise.resolve({reducedCube:{...t,qDataPages:[...t.qDataPages]}})}}({layoutService:t});return function({enigmaModel:e,layoutService:t}){return function(){return function(e,t,n){return e.getHyperCubeReducedData(n.path,[n.rect],n.zoomLevel,n.filter).catch(Se).then(e=>{const n=t.getHyperCubeValue("qMode"),i=t.getHyperCubeValue("qDimensionInfo"),r="K"===n&&i.length>1&&e[0]?.qIsReduced,o=e.slice(),a=t.getHyperCubeValue("qMeasureInfo"),s=r?[]:t.getHyperCubeValue("qColumnOrder");return{reducedCube:{qDataPages:o,qDimensionInfo:i.slice(),qEffectiveInterColumnSortOrder:[1,0],qMeasureInfo:r?[a[0],a[0]]:a.slice(),qStackedDataPages:[],qMode:"S",qHasOtherValues:t.getHyperCubeValue("qHasOtherValues"),qSize:t.getHyperCubeValue("qSize"),qColumnOrder:s}}})}(e,t,{path:"/qHyperCubeDef",rect:Sf({layoutService:t}),zoomLevel:-1,filter:"D1"})}}({enigmaModel:e,layoutService:t})}({enigmaModel:e,layoutService:t}),o=function({layoutService:e}){const{isSnapshot:t,isTwoDimensional:n,isStacked:i}=e.meta,r=e=>{e.qDimensionInfo.unshift({key:"dummy-patch-dimension"})};return r.should=e=>!!(t&&n&&i&&1===e.qDimensionInfo.length),r}({layoutService:t});return{query:{getCube:()=>i.cube,getIsReduced:()=>i.on},command:{initialize:()=>r().then(e=>{const{reducedCube:r}=e;o.should(r)&&o(r),i.cube=r,i.on=!!(i.cube&&i.cube.qDataPages[0]&&i.cube.qDataPages[0].qIsReduced),t.meta.isDiscrete&&t.meta.isOneDimensional&&i.cube.qDataPages[0]&&n.command.processDataPage({dataPage:i.cube.qDataPages[0]})}),setSnapshotData:e=>{e.reducedHyperCube=i.cube}}}}({enigmaModel:o,layoutService:O,dataProcessorModel:P}),z=O.meta.isContinuous?Rh.model({model:o,viewState:L,viewCache:k,layoutService:O,largeDataService:A,dataProcessorModel:P}):void 0;z&&z.update(O.getLayout());const F=Qp({app:n,model:o,translator:p,picasso:T,localeInfo:c,theme:m,layoutService:O,reducedModel:U,legendModel:R,continuousModel:z}),V=xu({layoutService:O,viewState:L,colorModel:{settings:()=>F.getMain().getSettings(),resolveUIColor:e=>F.getMain().getPaletteColor(e)},chart:E,env:{translator:p},keys:{colorScale:_h.SCALE.MAIN.COLOR},isEnabled:()=>O.meta.dimensionCount<2});V.command.update();const $=function({layoutService:e,reducedModel:t,continuousModel:n,trendLineModel:i}){const r={min:NaN,max:NaN,implicit:{min:NaN,max:NaN},explicit:{min:NaN,max:NaN},meta:{hasExplicit:!1,hasExplicitMin:!1,hasExplicitMax:!1,includesZero:!1}},{isArea:o}=e.meta,a=e.getLayoutValue("measureAxis.logarithmic",!1),s=function({layoutService:e}){const{isStacked:t,isOneDimensional:n}=e.meta;if(!t)return function({layoutService:e}){return function(){let t=e.getHyperCubeValue("qMeasureInfo");return t=function(e){return e.concat(...e.map(e=>e.qAttrExprInfo?.filter(e=>-1!==gf.indexOf(e.id))??[]))}(t),{min:Math.min(...t.filter(e=>ff(e.qMin)).map(e=>e.qMin)),max:Math.max(...t.filter(e=>ff(e.qMax)).map(e=>e.qMax))}}}({layoutService:e});return n?function({dataPage:e,count:t}){const{qMatrix:n}=e,i={min:NaN,max:NaN};return n.forEach(e=>{let n=0,r=0;e.slice(-t).forEach(e=>{"NaN"!==e.qNum&&(e.qNum>=0?r+=e.qNum:n+=e.qNum)}),i.min=Number.isNaN(i.min)?n:Math.min(n,i.min),i.max=Number.isNaN(i.max)?r:Math.max(r,i.max)}),i}:function({dataPage:e,count:t}){const n={min:NaN,max:NaN};if(e.qData){const{qData:t}=e;return n.min=Math.min(...t[0].qSubNodes.filter(e=>yf(e.qMinNeg)).map(e=>e.qMinNeg)),n.max=Math.max(...t[0].qSubNodes.filter(e=>yf(e.qMaxPos)).map(e=>e.qMaxPos)),n}const{qMatrix:i}=e,r={};return i.forEach(e=>{const n=e[0].qElemNumber;r[n]||(r[n]={key:n,min:0,max:0}),e.slice(t).forEach(e=>{"NaN"!==e.qNum&&(e.qNum>=0?r[n].max+=e.qNum:r[n].min+=e.qNum)})}),Object.keys(r).forEach(e=>{n.min=Number.isNaN(n.min)?r[e].min:Math.min(r[e].min,n.min),n.max=Number.isNaN(n.max)?r[e].max:Math.max(r[e].max,n.max)}),n}}({layoutService:e});return{query:{getExtrema:()=>r},command:{initialize:()=>{const{min:l,max:c}=function({layoutService:e}){const t={min:NaN,max:NaN},{getLayoutValue:n}=e;if(n("measureAxis.autoMinMax",!1))return t;const i=n("measureAxis.minMax");"min"!==i&&"minMax"!==i||(t.min=+n("measureAxis.min"));"max"!==i&&"minMax"!==i||(t.max=+n("measureAxis.max"));return t}({layoutService:e});return r.explicit.min=l,r.explicit.max=c,r.meta.hasExplicitMin=!Number.isNaN(l),r.meta.hasExplicitMax=!Number.isNaN(c),r.meta.hasExplicit=r.meta.hasExplicitMin||r.meta.hasExplicitMax,async function({layoutService:e,reducedModel:t,continuousModel:n}){const{isDiscrete:i,isStacked:r,measureCount:o,dimensionCount:a,hasMultipleDimensions:s}=e.meta;if(i){const e=t.query.getCube();return e.qDataPages.length?{dataPage:e.qDataPages[0],count:o}:{dataPage:e.qStackedDataPages[0]}}const[l]=await n.fetchMinMaxData();return{dataPage:l,count:r&&s?a:o}}({layoutService:e,reducedModel:t,continuousModel:n}).then(({dataPage:e,count:t})=>{const{min:n,max:l}=s({dataPage:e,count:t});let c=Number((Number.isFinite(n)?n:0).toFixed(13)),u=Number((Number.isFinite(l)?l:0).toFixed(13));if(i.query.hasTrendLines()){const{min:e,max:t}=i.query.getMinMax();c=Number.isFinite(e)?Math.min(c,e):c,u=Number.isFinite(t)?Math.max(u,t):u}r.implicit.min=o&&!a?Math.min(0,c):c,r.implicit.max=o&&!a?Math.max(0,u):u,r.min=Number.isNaN(r.explicit.min)?r.implicit.min:r.explicit.min,r.max=Number.isNaN(r.explicit.max)?r.implicit.max:r.explicit.max,r.meta.hasExplicitMin&&!r.meta.hasExplicitMax&&(r.max=Math.max(r.min,r.max)),r.meta.hasExplicitMax&&!r.meta.hasExplicitMin&&(r.min=Math.min(r.min,r.max)),r.meta.includesZero=!!((0-r.min)*(0-r.max)<=0)})}}}}({layoutService:O,reducedModel:U,continuousModel:z,trendLineModel:V}),j=pf({layoutService:O,extremumModel:$,largeDataService:A}),H=function({picasso:e,chart:t,localeInfo:n,continuousModel:i,layoutService:r,reducedModel:o,legendModel:a,fieldModel:s,trendLineModel:l,colorService:c,largeDataService:u,progressiveRendering:d,options:m,viewCache:h}){const{POINT:p,LINE:f,BRUSH_HIGHLIGHTER:g,REDUCED_LINE:y}=_h.COMPONENT,{exclude:v,resetProgressive:M,shouldUseProgressive:S,renderProgressive:x,setReducedCube:b}=u,E={isUpdateDataless:!1,isUsingLegendCube:!1,isUsingLabelSpace:!1,isSizeChanging:!1,isPartialUpdating:!1},{isContinuous:N,isStacked:C}=r.meta,{virtuals:T}=s,k=[],L={main:k,reduced:k,legend:k,dataset:e.data("q")({key:_h.DATA.MAIN,data:r.getHyperCube(),config:{localeInfo:n,virtualFields:T}})};function I(){L.main=r.getDataPages(),r.setDataPages([])}function O(){r.setDataPages(L.main),L.main=k}const w=()=>{const e=t.component(_h.COMPONENT.OUT_OF_MIN_BOUNDS),n=e&&e.show();return!(!0!==m.chartAnimations||Yp(r)>Gu.LARGE_NUM_POINTS_ANIMATIONS||E.isSizeChanging||E.isPartialUpdating||h.get("hasHiddenMinOobs")&&n||Ms.propertiesHaveChanged({viewCache:h,layout:r.getLayout()}))};return{query:{getDataset:()=>L.dataset,getIsUpdateDataless:()=>E.isUpdateDataless,getIsUsingLegendCube:()=>E.isUsingLegendCube,getIsUsingLabelSpace:()=>E.isUsingLabelSpace,animationsEnabled:w},command:{initialize:()=>{E.isUsingLegendCube=!(N||!C&&!o.query.getIsReduced()||!a.query.getHasCube())},update:()=>(M(),t.layoutComponents(),S()?new Promise(e=>{x(e)}):(t.update(),d.setInProgressive(!1),Promise.resolve())),updateDataless:({settings:e})=>{M(),v.duringMainProgressive=e.components.map(e=>e.key).filter(e=>e!==p&&e!==f),v.duringReducedLineProgressive=e.components.map(e=>e.key).filter(e=>e!==y),v.forClearProgressive=e.components.map(e=>e.key).filter(e=>e!==p&&e!==f&&e!==y),v.postUpdate=e.components.map(e=>e.key).filter(e=>e!==g),v.all=e.components.map(e=>e.key),E.isUpdateDataless=!0;const s=S();I();const u=N?i.getInitialCube():o.query.getCube();b(u);const d=r.getHyperCube()===u;d||(L.reduced=u.qDataPages,u.qDataPages=k),E.isUsingLegendCube&&(L.legend=a.query.getDataPages(),a.command.setDataPages([]));const m=[{type:"q",key:_h.DATA.MAIN,data:r.getHyperCube(),config:{localeInfo:n,virtualFields:T}},{type:"q",key:_h.DATA.REDUCED,data:u,config:{localeInfo:n,virtualFields:T}},...c.getMain().getData()];E.isUsingLegendCube&&m.push({type:"q",key:_h.DATA.LEGEND,data:a.query.getCube(),config:{localeInfo:n,virtualFields:T}}),l.query.hasTrendLines()&&m.push({key:"trend",data:l.query.getData()}),s?t.update({data:m,settings:e}):t.layoutComponents({data:m,settings:e}),O(),d||(u.qDataPages=L.reduced,L.reduced=k),E.isUsingLegendCube&&(a.command.setDataPages(L.legend),L.legend=k),E.isUpdateDataless=!1},updatePartial:()=>(M(!0),S()?new Promise(e=>{x(e,!0)}):(E.isPartialUpdating=!0,t.update({partialData:!0,excludeFromUpdate:v.partialUpdate}),E.isPartialUpdating=!1,d.setInProgressive(!1),Promise.resolve())),setUseLabelSpace:e=>{E.isUsingLabelSpace=e},setState:(e,t)=>{E[e]=t}}}}({picasso:T,chart:E,localeInfo:c,continuousModel:z,layoutService:O,reducedModel:U,legendModel:R,fieldModel:_,trendLineModel:V,colorService:F,largeDataService:A,progressiveRendering:I,options:a,viewCache:k}),B=function({layoutService:e,dockService:t,themeService:n,colorService:i,flags:r}){const{LINE:o,POINT:a}=Oy,s=n.getStyles(),l=e.getLayoutValue("version"),c=wy(l)&&r.isEnabled("TLV_1804_DEFAULT_CHART_SETTINGS"),u=function({layoutService:e}){const{isOneDimensional:t}=e.meta,{style:n}=e.getLayoutValue("components",[]).filter(e=>"line"===e.key)[0]||{},i=e=>`qMeasureInfo.${e}.styling`;return({property:r,defaultValue:o,index:a})=>{const s=n&&Object.hasOwnProperty.call(n,r)?n[r]:o;if(void 0===a)return s;const{style:l}=e.getHyperCubeValue(i(t?a:0),[]).filter(e=>"line"===e.key||e.cId)[0]||{};return l&&Object.hasOwnProperty.call(l,r)?l[r]:s}}({layoutService:e}),d=t=>r.isEnabled("CLIENT_IM_3050")?e.getLayoutValue("components",[]).find(e=>e.key===t):void 0,m=(e,t)=>{const n=i.getMain().getPaletteColor;if(e?.color&&n){const i=n(e);return"none"===i&&e.index>0?e?.color??t:i??t}return t},h=()=>c?o.WIDTH.DEFAULT:"FULL"===t.meta.chart.mode?o.WIDTH.FULL.DEFAULT:o.WIDTH.LESS.DEFAULT,p={line:{getCurve:()=>(e,t)=>u({property:"lineCurve",defaultValue:c?o.CURVE.MONOTONE:o.CURVE.LINEAR,index:t}),getStrokeWidth:()=>(e,t)=>u({property:"lineThickness",defaultValue:h(),index:t}),getStrokeDasharray:()=>(e,t)=>{const n=u({property:"lineType",defaultValue:o.TYPE.SOLID,index:t});return n&&o.TYPE[n.toUpperCase()]}},forecast:{getCurve:()=>t=>{const n=t.datum.line.value;return e.getLayoutValue(`qHyperCube.qMeasureInfo.${n}.forecast.lineCurve`,p.line.getCurve()(t,n))},getStrokeWidth:()=>t=>{const n=t.datum.line.value;return e.getLayoutValue(`qHyperCube.qMeasureInfo.${n}.forecast.lineThickness`,p.line.getStrokeWidth()(t,n))},getStrokeDasharray:()=>t=>{const n=t.datum.line.value,i=e.getLayoutValue(`qHyperCube.qMeasureInfo.${n}.forecast.lineType`);return i?o.TYPE[i.toUpperCase()]:p.line.getStrokeDasharray()(t,n)}},point:{getSize:e=>u({property:"dataPointSize",defaultValue:c?a.SIZE.NEW_DEFAULT:a.SIZE.DEFAULT,index:e})},axis:{title:{getStyle:()=>{const e=d("axis")?.axis?.title;return{fontFamily:e?.fontFamily??s.axis.title.fontFamily,fontSize:e?.fontSize??s.axis.title.fontSize,color:m(e?.color,s.axis.title.color)}}},label:{getStyle:()=>{const e=d("axis")?.axis?.label?.name;return{fill:m(e?.color,s.axis.label.name.color),fontSize:e?.fontSize??s.axis.label.name.fontSize,fontFamily:e?.fontFamily??s.axis.label.name.fontFamily}}}},label:{getStyle:()=>{const e=d("label")?.label?.value;return{fill:m(e?.color,s.label.value.color),fontFamily:e?.fontFamily??s.label.value.fontFamily,fontSize:e?.fontSize??s.label.value.fontSize}}},legend:{title:{getStyle:()=>{const e=d("legend")?.legend?.title;return{fontFamily:e?.fontFamily??s.legend.title.fontFamily,fontSize:e?.fontSize??s.legend.title.fontSize,color:m(e?.color,s.legend.title.color)}}},label:{getStyle:()=>{const e=d("legend")?.legend?.label;return{fontFamily:e?.fontFamily??s.legend.label.fontFamily,fontSize:e?.fontSize??s.legend.label.fontSize,color:m(e?.color,s.legend.label.color)}}}}};return{query:p}}({layoutService:O,dockService:q,themeService:w,colorService:F,flags:N}),W=function({chart:e,layoutService:t,chartModel:n,extremumModel:i,dockService:r,themeService:o}){const a={locked:!1,resolved:void 0},{getExtrema:s}=i.query,l=function({chart:e,layoutService:t,chartModel:n,extremumModel:i,dockService:r,themeService:o}){const a=t.getLayoutValue("measureAxis.logarithmic",!1),{measureText:s}=K.renderer("svg")();return()=>{const l=o.getStyles(),c=e=>s({text:e,fontFamily:l.axis.label.name.fontFamily,fontSize:l.axis.label.name.fontSize}),u=function({chart:e,chartModel:t,dockService:n}){const i=t.query.getIsUpdateDataless()?n.meta.chart.size:e.component(_h.COMPONENT.LINE).rect;return"horizontal"===n.meta.major.orientation?i.height:i.width}({chart:e,chartModel:n,dockService:r}),d=i.query.getExtrema();return(a&&!d.meta.includesZero?Zy:Yy)({chart:e,layoutService:t,dockService:r,measureText:c,extrema:d,size:u})}}({chart:e,layoutService:t,chartModel:n,extremumModel:i,dockService:r,themeService:o}),c=()=>(a.locked&&a.resolved||(a.resolved=l()),a.resolved);return{query:{getValues:()=>c().values,getMin:()=>s().meta.hasExplicitMin?s().explicit.min:c().min,getMax:()=>s().meta.hasExplicitMax?s().explicit.max:c().max},command:{lock:()=>{a.locked=!0},unlock:()=>{a.locked=!1}}}}({chart:E,layoutService:O,chartModel:H,extremumModel:$,dockService:q,themeService:w}),G=Id({app:n,chart:E,embed:r,flags:N,layout:O.getLayout(),localeInfo:c,model:o,options:{direction:a.direction},picasso:T,translator:p}),X=ev({actions:x,chart:E,colorService:F,custom:G,fieldModel:_,layoutService:O,rtl:S,themeService:w,tickModel:W,translator:p,trendLineModel:V,viewState:L}),J=O.meta.isDiscrete?function({chart:e,actions:n,componentKey:i,enigmaModel:r,layoutService:o,dockService:a,trendLineModel:l,itemWidths:c,viewState:d,rtl:m,options:{definitionPath:h="/qHyperCubeDef",getRect:p,axisKey:f,renderer:g,areaBuffer:y,processDataPage:v=()=>{},getReducedCube:M=()=>{}}={}}){const S=u(),x=function({qMode:e}){switch(e){case"K":return Op;case"T":return wp;default:return Ip}}({qMode:o.getHyperCubeValue("qMode")}),b=function({state:e,contains:t}){return e.set(qp,[]),{add:t=>{const n=e.get(qp);n.length=0,n.push(t)},getCurrent:()=>e.get(qp)[0],getAll:()=>e.get(qp),contains:n=>t(e.get(qp)[0],n)}}({state:S,contains:x.contains});!function({layoutService:e,dataStore:t,composition:n}){const i=e.getDataPages()[0];if(!i)return;const r=n.patcher({layoutService:e});r.should(i)&&r(i);t.add(i)}({layoutService:o,dataStore:b,composition:x});const E=function({buffer:e}){return void 0===e?void 0:2*Math.round(e/2)}({buffer:y}),N=function({dataStore:e,composition:t,enigmaModel:n,layoutService:i,trendLineModel:r=zp,definitionPath:o,processDataPage:a}){const{slicer:l,cacheWarden:c,request:u}=t,d=function({dataStore:e,slice:t,warden:n,expand:i,request:r,process:o,connectionless:a,processDataPage:s}){const l=(l,{onProcessing:c}={})=>{if(e.contains(l)){const i=e.getCurrent();if(a)return Promise.resolve(t(i,l));const r=n.release(i.qArea,l),s=o.isProcessing();if(!r&&s&&o.cancel(),!r||s)return Promise.resolve(t(i,l))}if(a)return Promise.resolve(e.getCurrent());o.isProcessing()&&c&&c();const u=i(l);return o(r(u)).then(n=>(s(n),e.add(n),t(n,l)))};return l}({dataStore:e,slice:l,warden:c({bounds:{width:i.meta.size.x,height:i.meta.size.y}}),expand:_p({layoutService:i}),request:u({definitionPath:o}),process:Up(n),connectionless:i.meta.isSnapshot,processDataPage:a}),m=s((e,{onProcessing:t,onData:n})=>{d(e,{onProcessing:t}).then(e=>n(e)).catch(e=>{if(e!==bp)throw e})},Tp);return function(e,{onProcessing:t=Ep,onDataPage:n=Ep}={}){m(e,{onProcessing:t,onData:e=>{i.setDataPages(e?[e]:[]),r.command.update(),n(e)}})}}({dataStore:b,composition:x,enigmaModel:r,layoutService:o,trendLineModel:l,definitionPath:h,processDataPage:v}),C=function({chart:e,componentKey:t,state:n,dataStore:i,pageData:r,layoutService:o,dockService:a,itemWidths:s,getRect:l,axisKey:c,renderer:u,areaBuffer:d,viewState:m,rtl:h,getReducedCube:p}){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:i,dockService:r,getItemWidths:o,axisKey:a,renderer:s,areaBuffer:l,rtl:c,getReducedCube:u}){const{inTotal:d,area:m,scaleRange:h}=function({layoutService:e}){const{isDimensionless:t,isGrouped:n,isGroupedByMeasure:i}=e.meta;if(t)return Fp;if(!n)return Vp;return i?Bp:Xp}({layoutService:i}),p=()=>"horizontal"===r.meta.major.orientation?t().width:t().height,f=e=>e?p()/e:0,g=(e,t)=>-(e-t)*f(t);return{getItems(){const n=i.getLayoutValue("dimensionAxis"),l=d({layoutService:i,getReducedCube:u});return{inTotal:l,inView:Jp({chart:e,rect:t(),dockService:r,itemWidths:o(),axisKey:a,renderer:s,isGrouped:i.meta.isGrouped,dimensionAxis:n,inTotal:l,isMajorLabelless:"none"===n.show||"title"===n.show,maxDataRows:Math.floor(Np/(i.meta.dimensionCount+i.meta.measureCount))})}},getItemSize({items:e}){const{inView:t}=e;return f(t)},getOffsets({pixelOffset:e,items:t}){const{inTotal:n,inView:i}=t,r=Math.min(0,Math.max(e,g(n,i))),o=i?Math.abs(i*r/p()):0;return{start:{pixel:r,item:o},end:{item:Math.min(o+(i||0),n)}}},getUpperBound({items:e}){const{inTotal:t,inView:n}=e;return g(t,n)},getViewRange({pixelOffset:e,items:t}){const{inTotal:n,inView:i}=t;return function({viewSize:e,inTotal:t,inView:n,pixelOffset:i}){const r=e/n*t,o=Math.abs(i)/r,a=Math.min(1,o+e/r);return[o,a]}({viewSize:p(),inTotal:n,inView:i,pixelOffset:e})},getArea:({itemOffset:e,items:t})=>m({getDataPages:n,layoutService:i,itemOffset:e,inView:t.inView,areaBuffer:l}),getScaleRange({offsets:e,items:t}){const o=h({getDataPages:n,layoutService:i,offsets:e,items:t,viewSize:p(),upperBound:g(t.inTotal,t.inView)});return"horizontal"===r.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:i}=t;return e<=0&&e>=g(n,i)}},convert:{itemToPixelOffset({itemOffset:e,items:t}){const{inView:n}=t,i=e*f(n);return Number.isFinite(i)?-i:0},relativeToPixelOffset({relativeOffset:e,items:t}){const{inTotal:n,inView:i}=t;return-e*(f(i)*n)}}}}({chart:e,getRect:()=>n.get("rect"),getDataPages:i.getCurrent,layoutService:o,dockService:a,getItemWidths:()=>n.get("itemWidths"),axisKey:c,renderer:u,areaBuffer:d,rtl:h,getReducedCube:p}),g=()=>{const e=f.getItems();return n.set("items",e),e},y=({pixelOffset:e,items:t})=>{const i=f.getOffsets({pixelOffset:e,items:t});return n.set("offsets",i),i},v=({items:e})=>{const t=o.getLayoutValue("scrollStartPos"),n=m.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:i,end:r}=n,a=1===t&&r?r-e.inView:i;return f.convert.itemToPixelOffset({itemOffset:a,items:e})},M=e=>{const[{qArea:t}]=o.getDataPages();return!!t&&Object.keys(e).every(n=>e[n]===t[n])},S=e=>{const t=Date.now(),i=g(),o=y({pixelOffset:e,items:i}),a=f.getArea({itemOffset:o.start.item,items:i});if(M(a))return void((f.validate.offset({pixelOffset:e,items:i})||m.get("scrollOffset").start!==o.start.item)&&(n.set("finished",t),n.set("scaleRange",f.getScaleRange({offsets:o.start,items:i})),m.preventSet("viewRange",f.getViewRange({pixelOffset:o.start.pixel,items:i})),m.set("scrollOffset",{start:o.start.item,end:o.end.item})));m.preventSet("viewRange",f.getViewRange({pixelOffset:o.start.pixel,items:i}));const s=()=>{n.get("finished")>t||(n.set("finished",t),n.set("scaleRange",f.getScaleRange({offsets:o.start,items:i})),m.set("scrollOffset",{start:o.start.item,end:o.end.item}))};r(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 i=e.component(t);if(!i)return Promise.resolve();n.set("rect","function"==typeof l?l():i.rect),n.set("itemWidths","function"==typeof s?s():s);const o=g();n.set("itemSize",f.getItemSize({items:o}));const a=v({items:o}),c=y({pixelOffset:a,items:o});m.preventSet("viewRange",f.getViewRange({pixelOffset:c.start.pixel,items:o}));const u=f.getArea({itemOffset:c.start.item,items:o});return new Promise(e=>{r(u,{onDataPage:()=>{n.set("scaleRange",f.getScaleRange({offsets:c.start,items:o})),m.preventSet("scrollOffset",{start:c.start.item,end:c.end.item}),e()}})})},scroll(e){const t=n.get("offsets").start.pixel+e;S(t)},scrollToRelative(e){const t=n.get("items"),i=f.convert.relativeToPixelOffset({relativeOffset:e,items:t});S(i)}}}({chart:e,componentKey:i,state:S,dataStore:b,pageData:N,layoutService:o,dockService:a,itemWidths:c,getRect:p,axisKey:f,renderer:g,areaBuffer:E,viewState:d,rtl:m,getReducedCube:M}),T=function({layoutService:e,dataStore:n}){return function(i){const r=t(i,`${e.refs.dataPages}`);r.length=0,r.push(n.getCurrent())}}({layoutService:o,dataStore:b}),k=function({chart:e,actions:t,componentKey:n,dockService:i,rtl:r,scroller:o}){return{gestures:[Pp({chart:e,actions:t,componentKey:n,dockService:i,rtl:r,scroller:o})],native:{type:"native",events:{wheel:Rp({chart:e,actions:t,componentKey:n,scroller:o})}}}}({chart:e,actions:n,componentKey:i,dockService:a,rtl:m,scroller:C});return{interactions:k,query:{getCanScroll:()=>C.enabled(),getItemSize:()=>C.itemSize(),getScaleRange:()=>C.scaleRange(),getCurrentDataPage:()=>b.getCurrent()},command:{initialize:()=>C.initialize(),scrollTo:e=>C.scrollToRelative(e),setSnapshotData:e=>T(e)}}}({chart:E,actions:x,componentKey:_h.COMPONENT.LINE,enigmaModel:o,layoutService:O,dockService:q,trendLineModel:V,itemWidths:bv,viewState:L,rtl:S,options:{axisKey:_h.COMPONENT.MAJOR_AXIS,renderer:T.renderer("svg")(),areaBuffer:O.meta.isTwoDimensional||P.query.getShouldProcess()?40:12,processDataPage:e=>P.command.processDataPage({dataPage:e}),getReducedCube:()=>U.query.getCube()}}):void 0,Y=function({layoutService:e,discreteModel:t}){const{isContinuous:n,canBeContinuous:i,isGroupedByDimension:r}=e.meta,o=e.getLayout(),a="K"===o.qHyperCube.qMode,s=ve.dimensionless(o),l=Ja.getMeasureRefLines(o),c=Ja.getDimensionRefLines(o,s),u=Ja.getMeasureRefLineLabels(o),d=Ja.getDimensionRefLineLabels(o,s);let m={},h={};const p=t=>{if(i){const n=e.getLayoutValue("qHyperCube.qDimensionInfo.0"),{qMin:i,qMax:r}=n;return Ja.isOutOfRange({value:t,qMin:i,qMax:r})}return!1},f=t=>{if(!h[t])return!1;if(!n&&r){const n={valueInfo:h[t]},i="S"===e.getHyperCubeValue("qMode")?"qDataPages.0":"qStackedDataPages.0",r=e.getHyperCubeValue(i);return Ja.isOutOfDataPages({label:n,dataPages:r})}return!0},g=()=>!(!c||!c.length)&&!c.every(t=>{const n=Ja.getInputValue({refLineLayout:t,layoutService:e});return p(n)||f(n)}),y={isKMode:a,canBeContinuous:i,measureRefLines:l,dimensionRefLines:c,measureRefLineLabels:u,dimensionRefLineLabels:d,dimensionRefLineInfo:h,dimensionValuesInfo:m,query:{getRefLines:e=>Ja.getRefLines(o,e),getRefLineLabels:e=>Ja.getRefLineLabels(o,e)},update:()=>{h=y.dimensionRefLineInfo,g()&&(m=Ja.getDimensionValuesInfo({layout:o,canBeContinuous:i,discreteModel:t,layoutService:e}),y.dimensionValuesInfo=m,c.forEach(t=>{const n=Ja.getInputValue({refLineLayout:t,layoutService:e});m[n]&&(h[n]?(h[n].innerValues=m[n].innerValues,h[n].minOrder=Math.min(h[n].minOrder,m[n].minOrder),h[n].maxOrder=Math.max(h[n].maxOrder,m[n].maxOrder),h[n].isMinOrderOk=h[n].isMinOrderOk||m[n].isMinOrderOk,h[n].isMaxOrderOk=h[n].isMaxOrderOk||m[n].isMaxOrderOk):h[n]={id:m[n].id,qText:m[n].qText,innerValues:m[n].innerValues,minOrder:m[n].minOrder,maxOrder:m[n].maxOrder,isMinOrderOk:m[n].isMinOrderOk,isMaxOrderOk:m[n].isMaxOrderOk},h[n].numInnerValues=(h[n].maxOrder||0)-(h[n].minOrder||0)+1)}))}};return y.update(),y}({layoutService:O,discreteModel:J}),Z=M({picassoInstance:T,plugins:l||[],pluginArgs:xv(O)});b({alternativeService:D,chartModel:H,colorService:F,continuousModel:z,customTooltipService:G,dataProcessorModel:P,disclaimerService:j,discreteModel:J,dockService:q,extremumModel:$,fieldModel:_,layoutService:O,legendModel:R,pluginService:Z,reducedModel:U,refLineModel:Y,selectionService:f,styleModel:B,themeService:w,tickModel:W,tooltipService:X,trendLineModel:V,largeDataService:A})},[d,a.direction,f,m.name(),p.language()]),x}({core:n}),r=function({core:e,services:t}){const n=O(),i=C(),r=w(),o=q();(function({core:e}){L(()=>({getViewState(){if(!e)return;const{chart:t,viewState:n}=e,i=t.component(_h.COMPONENT.LEGEND_CATEGORICAL);return{scrollOffset:n.get("scrollOffset"),zoom:n.get("zoom"),legendScrollOffset:i?._DO_NOT_USE_getInfo?.().offset}}}),[e])})({core:e}),function({core:e,services:t}){I(n=>{if(!e||!t)return;const{chart:i,viewState:r}=e,{colorService:o,continuousModel:a,discreteModel:s,dockService:l,layoutService:c,reducedModel:u}=t,{isDiscrete:d,isSnapshot:m}=c.meta,{width:h,height:p}=l.meta.chart.size;return n.snapshotData=n.snapshotData||{},n.snapshotData.content={size:{w:h,h:p}},m?Promise.resolve():(n.snapshotData.content.chartData={scrollOffset:r.get("scrollOffset"),zoom:r.get("zoom"),legendScrollOffset:Me(i,_h.COMPONENT.LEGEND_CATEGORICAL)},d?(s.command.setSnapshotData(n),u.command.setSnapshotData(n)):a.setSnapshotData(n),o.getMain().getSnapshotData().then(e=>{n.snapshotData.content.chartData={...n.snapshotData.content.chartData,...e}}).catch(()=>{}))})}({core:e,services:t});const a=function({enable:e=!0}={}){const t=C(),n=()=>Date.now().toString()+Math.random(),[i,r]=T(n()),o={properties:void 0};return k(()=>{if(!t||!t.getEffectiveProperties||!e)return()=>{};const i=()=>{t.getEffectiveProperties().then(e=>{const t=re(!0,{},e);if(!o.properties)return void(o.properties=t);const i=function(e,t){const n={properties:!1,exclude:!1};if(e===t)return n;const i=re(!0,{},e),r=re(!0,{},t);return n.exclude=!Gd(i.qHyperCubeDef?.qLayoutExclude,r.qHyperCubeDef?.qLayoutExclude),delete i.qHyperCubeDef?.qLayoutExclude,delete r.qHyperCubeDef?.qLayoutExclude,n.properties=!Gd(i,r),n}(o.properties,t);o.properties=t,i.exclude&&!i.properties&&r(n())})};return t.on("changed",i),i(),()=>{t.removeListener("changed",i)}},[e]),i}({enable:!1===t?.layoutService?.meta?.isSnapshot}),[s,l]=D(()=>{if(!e||!t)return Promise.resolve();const{alternativeService:a,chartModel:s,colorService:l,continuousModel:c,customTooltipService:u,disclaimerService:d,extremumModel:m,layoutService:h,pluginService:p,reducedModel:f,selectionService:g,tooltipService:y,largeDataService:v}=t,{isContinuous:M,isSnapshot:S}=h.meta;!function({core:e,options:t,services:n}){const{viewCache:i,viewState:r}=e,{chartModel:o,continuousModel:a,discreteModel:s,layoutService:l,legendModel:c,refLineModel:u}=n,{isContinuous:d,isDiscrete:m,isSnapshot:h}=l.meta,p=t.viewState||{},f=h?l.getLayoutValue("snapshotData.content.chartData",{}):p;r.preventSet("scrollOffset",f.scrollOffset),r.preventSet("legendScrollOffset",f.legendScrollOffset||0),f.zoom&&r.preventSet("zoom",f.zoom);const{onZoomChange:g,onZoomIntercept:y}=Rh.event;m&&r.onChanged("scrollOffset",()=>{c.command.setDataPages([s.query.getCurrentDataPage()]),u.update(),o.command.updatePartial()});d&&(r.intercept("zoom",y({viewCache:i})),r.onChanged("zoom",g({continuousDataModel:a,layoutService:l},o.command.updatePartial)))}({core:e,options:r,services:t});const x=[];return S||x.push(i.getEffectiveProperties()),M&&(v.clear(),x.push(c.initialFetch())),x.push(f.command.initialize()),x.push(async function({services:e,core:t}){const n=e?.layoutService?.getLayout()?.plugins?.some(e=>"image"===e.type),i=t?.hostConfig;if(!n||!i)return null;const{queryParams:r}=await Bh.getWebResourceAuthParams({hostConfig:i});return r}({services:t,core:e})),Promise.all(x).then(async e=>{const t=e[0]||void 0,r=e[e.length-1]||void 0;if(t?.qHyperCubeDef){const e=function({app:e,model:t,properties:n,layoutService:i}){const r=re(!0,{},n),o=i.getLayout();return{shouldUpdate:()=>function({model:e,properties:t,layoutService:n}){const i=n.getLayout(),r=Jc({enabledForecast:Xd(i),properties:t,layout:i});if(r)return!0;return function({model:e,properties:t,layoutService:n}){const i=re(!0,{},t);Jd(t,n.getLayout());const{dimensionCount:r,isContinuous:o}=n.meta;o||1===r?t.qHyperCubeDef.qMode="S":2===r&&(t.qHyperCubeDef.qMode="K");const a=n.getLayout();if(e.colorSupport?.colorByUpdater?.(t,"qHyperCubeDef.",a),function({properties:e,layoutService:t}){const{filteredFields:n}=t.meta;if(!(n.measures.length>0))return;const{mode:i}=e.color||{};if("byExpression"===i){const i=t.getLayout();if("colorByExpression"===i.qHyperCube.qMeasureInfo?.[0]?.qAttrExprInfo?.[0]?.id)return;const{current:r,target:o}=function({properties:e,filtered:t}){const{qMeasures:n}=e.qHyperCubeDef||[],{current:i,target:r}=n.reduce((e,n,i)=>("colorByExpression"===n.qAttributeExpressions[0]?.id&&(e.current=i),void 0!==e.target||t.includes(i)||(e.target=i),e),{current:void 0,target:void 0});return{current:i,target:r}}({properties:e,filtered:n.measures});if(void 0===r)return;const a=e.qHyperCubeDef.qMeasures[r].qAttributeExpressions[0];e.qHyperCubeDef.qMeasures[r].qAttributeExpressions.splice(0,1),e.qHyperCubeDef.qMeasures[o].qAttributeExpressions.splice(0,0,a)}}({properties:t,layoutService:n}),jo.compare(i,t,!0)||JSON.stringify(i)===JSON.stringify(t))return!1;return t.hash=Math.random(),!0}({model:e,properties:t,layoutService:n})}({model:t,properties:n,layoutService:i}),update:async()=>Os(o)?t.setProperties(n).then(()=>{e.clearUndoBuffer()}):Is(t,r,n)}}({app:n,model:i,properties:t,layoutService:h});if(e.shouldUpdate())return await e.update(),void o.pending();o.restore()}u.setProperties(t),y.expando.set("properties",t),await p.initialize(),await m.command.initialize(),await l.initialize(),await a.initialize({properties:t}),d.initialize(),s.command.initialize();const{field:c}=l.getMain().getSettings();return g.setBrushAliases({colorField:c,useLegendCube:s.query.getIsUsingLegendCube(),legendAlias:`${_h.DATA.LEGEND}/${c}`}),{properties:t,queryParams:r}})},[e,t,a]);if(l&&!l.isHandled)throw l;return s}({core:n,services:i});!function({core:e,services:t,bootstrapped:n}){const i=O(),r=V(),o=C(),s=w(),l=W(),c=B(),u=function({value:e,wait:t=100}){const n=T({}),[i,r]=T(e);return k(()=>{if(Date.now()>=n.lastExecuted+t)return n.lastExecuted=Date.now(),r(e),()=>{};const i=setTimeout(()=>{n.lastExecuted=Date.now(),r(e)},t);return()=>clearTimeout(i)},[e]),i}({value:l}),d=P(),m=async()=>{const{chartModel:l,colorService:u,discreteModel:m,layoutService:h,tickModel:p}=t,{isDiscrete:f}=h.meta,{viewCache:g}=e,{queryParams:y}=n;if(!u.isInitialized())return;const v=function({app:e,core:t,localeInfo:n,logicalSize:i,model:r,properties:o,services:s,theme:l,translator:c,queryParams:u}){const{actions:d,chart:m,deviceType:h,flags:p,isUnsupportedFeature:f,picasso:g,selections:y,viewCache:v,viewState:M}=t,{alternativeService:x,chartModel:E,colorService:N,continuousModel:C,disclaimerService:T,discreteModel:k,dockService:L,extremumModel:I,fieldModel:O,layoutService:w,pluginService:q,reducedModel:D,refLineModel:A,selectionService:P,styleModel:R,themeService:_,tickModel:U,tooltipService:z,trendLineModel:F,largeDataService:V}=s,{rtl:$}=L.config,j={deviceType:h,localeInfo:n,logicalSize:i,rtl:$,theme:l},H={app:e,flags:p,model:r,translator:c},B=function({context:e,chart:t,actions:n,viewState:i,layoutService:r,colorService:o,styleModel:a}){const s=r.getLayoutValue("dataPoint.show",!1),l={eventName:"legend-c",key:_h.COMPONENT.LEGEND,viewState:i,chart:t,styleReference:"object.lineChart",styleOverrides:{title:a.query.legend.title.getStyle(),label:a.query.legend.label.getStyle()},rtl:e.rtl};if("categorical"===o.getMain().getSettings().type){const e=!!o.getMain().getScales()[_h.SCALE.MAIN.LEGEND_COLOR];l.settings={item:{shape:{stroke:{scale:e?_h.SCALE.MAIN.LEGEND_COLOR:_h.SCALE.MAIN.COLOR}}}},l.style={item:{shape:{type:s?"line-point":"line",size:12,strokeWidth:2}}}}const c=o.getMain().getLegend(l,{actions:n,navigationDisabled:!n.interact.enabled()});return{components:[...c.components],gestures:[...c.interactions]}}({actions:d,chart:m,colorService:N,context:j,layoutService:w,viewState:M,styleModel:R}),W=function({context:e,picasso:t,viewState:n,viewCache:i,discreteModel:r,layoutService:o,fieldModel:a,extremumModel:s,dockService:l,themeService:c,tickModel:u,colorService:d,legend:m}){const h=function({context:e,picasso:t,viewState:n,viewCache:i,discreteModel:r,layoutService:o,fieldModel:a,extremumModel:s,dockService:l,themeService:c,tickModel:u}){return{[_h.SCALE.MAIN.MINOR]:zM({context:e,layoutService:o,fieldModel:a,extremumModel:s,dockService:l,tickModel:u}),...VM({context:e,picasso:t,viewState:n,viewCache:i,discreteModel:r,layoutService:o,fieldModel:a,dockService:l,themeService:c})}}({context:e,picasso:t,viewState:n,viewCache:i,discreteModel:r,layoutService:o,fieldModel:a,extremumModel:s,dockService:l,themeService:c,tickModel:u});return{...h,...jM({viewCache:i,layoutService:o,fieldModel:a,minor:h[_h.SCALE.MAIN.MINOR],major:h[_h.SCALE.MAIN.MAJOR]}),...HM({context:e,layoutService:o,colorService:d,legend:m})}}({colorService:N,context:j,discreteModel:k,dockService:L,extremumModel:I,fieldModel:O,layoutService:w,legend:B,picasso:g,themeService:_,tickModel:U,viewCache:v,viewState:M}),G=function({chart:e,actions:t,selectionService:n,layoutService:i,chartModel:r,dockService:o,colorService:s,largeDataService:l,scales:c,legend:u,resources:d,isUnsupportedFeature:m}){const h=function({chart:e,actions:t,selectionService:n,layoutService:i,colorService:r,largeDataService:o,resources:s}){const{isTwoDimensional:l}=i.meta,c=n.getIsSingleSelect(),u=[_h.COMPONENT.MAJOR_AXIS,_h.COMPONENT.POINT,_h.COMPONENT.MAJOR_AXIS_OVERLAY_CONTINUOUS,_h.COMPONENT.MAJOR_AXIS_OVERLAY_TIME_INNER,_h.COMPONENT.MAJOR_AXIS_OVERLAY_TIME_OUTER,_h.COMPONENT.LEGEND_CATEGORICAL,_h.COMPONENT.FORECAST_POINT],{flags:d}=s,m=(t,i)=>{const[r]=i,{key:o}=r,a={key:o,action:t.srcEvent.ctrlKey||c?"set":"toggle",contexts:["selection"]};if(o===_h.COMPONENT.LEGEND_CATEGORICAL)return[{key:o,action:t.srcEvent.ctrlKey?"set":"toggle",contexts:["selection"]}];const s=o===_h.COMPONENT.POINT;if(s&&(r.data.null.value||r.data.interpolated.value||.01===r.attrs?.opacity))return!1;const u=n.custom.getIsInnerDimensionLocked();if(-1!==[_h.COMPONENT.MAJOR_AXIS_OVERLAY_CONTINUOUS,_h.COMPONENT.MAJOR_AXIS_OVERLAY_TIME_INNER,_h.COMPONENT.MAJOR_AXIS_OVERLAY_TIME_OUTER].indexOf(o)||(a.data=[o===_h.COMPONENT.POINT&&u?"selectionOuterDimension":"selectionDimension"]),!l||!s)return[a];const{items:d}=e.component(o).data,{value:m}=d[0].line;return d.every(e=>e.line.value===m)&&(a.data=["selectionOuterDimension"]),[a]},h=function({chart:e,selectionService:t,layoutService:n,colorService:i}){const{isOneDimensional:r}=n.meta;return n=>{const{key:o}=n[0],a=t.custom.getIsOuterDimensionLocked();if(o===_h.COMPONENT.LEGEND_CATEGORICAL)return i.getMain().isSelectionLocked({isMeasureSelectionLocked:a});if(r)return a;const s=t.custom.getIsInnerDimensionLocked();if(a&&s)return!0;if(a){if(o===_h.COMPONENT.MAJOR_AXIS)return!0;if(o===_h.COMPONENT.POINT){const{items:t}=e.component(_h.COMPONENT.LINE).data,{value:n}=t[0].line;return t.every(e=>e.line.value===n)}}return!1}}({chart:e,selectionService:n,layoutService:i,colorService:r}),p=e=>e.some(e=>e.key===_h.COMPONENT.POINT)?3:0,f=t=>{const n=e.shapesAt(t,{components:u.map(e=>({key:e}))}).filter(e=>!(e.data.null&&e.data.null.value&&e.data.interpolated&&e.data.interpolated.value));return n.length?[n[0]]:[]};if(d.isEnabled("VIZ_398_CHART_INTERACTION_REFACTOR"))return S({actions:t,components:m,events:{onSelectEnd:()=>{ZM({chart:e,largeDataService:o})}},hitRadius:p,isLocked:h,targets:u});return function(e,t){if(!e.targets)throw new Error("Missing 'targets' property");return{interactions:[XM(e,t)],components:[]}}({targets:u,components:m},{debouncer:a,flags:d,actions:t,isLocked:h,hitRadius:p,shapesAt:f,largeDataService:o})}({chart:e,actions:t,selectionService:n,layoutService:i,colorService:s,largeDataService:l,resources:d}),p=n.getIsSingleSelect();if(p)return{components:[...h.components],gestures:[...h.interactions]};const f=oS({actions:t,selectionService:n,layoutService:i,largeDataService:l,chart:e,resources:d}),g=function({chart:e,actions:t,selectionService:n,layoutService:i,largeDataService:r,dockService:o,scales:a,legend:s,isUnsupporte