UNPKG

@nebula.js/sn-line-chart

Version:
7 lines (6 loc) 763 kB
/* * @nebula.js/sn-line-chart v1.43.2 * Copyright (c) 2025 QlikTech International AB * Released under the MIT license. */ System.register(["qlik-chart-modules","qlik-object-conversion","@nebula.js/stardust","react","react-dom","hammerjs","picasso.js","picasso-plugin-q"],(function(e){"use strict";var t,n,r,i,o,a,s,l,c,u,d,p,m,f,h,g,v,y,x,b,S,M,E,C,T,k,N,O,w,L,I,D,q,A,P,R,z,_,F,j,V,U,H,$,B,W,G,Y,K,X,J,Z,Q,ee,te,ne;return{setters:[function(e){t=e.getValue,n=e.setValue,r=e.createColor,i=e.memoize,o=e.fontResolver,a=e.debouncer,s=e.throttler,l=e.storage,c=e.cache,u=e.colorService,d=e.disclaimerService,p=e.layoutService,m=e.selectionService,f=e.tooltipService,h=e.themeService,g=e.dockService,v=e.alternativeService,y=e.pluginService},function(e){x=e.default},function(e){b=e.useModel,S=e.useState,M=e.useEffect,E=e.useImperativeHandle,C=e.onTakeSnapshot,T=e.useApp,k=e.useOptions,N=e.useRenderState,O=e.usePromise,w=e.useLayout,L=e.useTranslator,I=e.useAction,D=e.useConstraints,q=e.useDeviceType,A=e.useElement,P=e.useSelections,R=e.useAppLayout,z=e.useEmbed,_=e.usePlugins,F=e.useStaleLayout,j=e.useTheme,V=e.useRect},function(e){U=e,H=e.forwardRef,$=e.useContext,B=e.default,W=e.isValidElement,G=e.cloneElement,Y=e.Children,K=e.useState,X=e.useEffect,J=e.useRef},function(e){Z=e.default,Q=e},function(e){ee=e.default},function(e){te=e.default},function(e){ne=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(re).forEach((t=>{e.add(re[t])}))}}(e.translator),{ext:sd(e),qae:ld(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]=S((()=>e));return t}(),n=function(e){const t=D(),n=function(){const e=w(),t=L(),[n,r]=S(!1),[i,o]=S(!1),a=e=>{o("boolean"==typeof e?e:!i)},[s]=S({});return s.enabled=()=>n,s.active=()=>i,s.action=a,s.update=e=>{r(!e.select&&!e.active)},I((()=>{var r,o;const s=!(null===(r=e.qSelectionInfo)||void 0===r||!r.qInSelections),l=!(null===(o=e.qHyperCube)||void 0===o||null===(o=o.qDimensionInfo)||void 0===o||null===(o=o[0])||void 0===o||!o.qIsOneAndOnlyOne);return{key:"lasso",label:t.get(i?"Tooltip.ToggleOffLassoSelection":"Tooltip.ToggleOnLassoSelection"),icon:XI,hidden:!n||!s||l,action:a,active:i}}),[i,n,e,t.language()]),s}(),[r]=S((()=>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(KI.prototype).forEach((e=>{n.select[e]=KI.prototype[e]})),KI.init(n.select),n}({lasso:n,progressiveRendering:e})));return M((()=>{r.update(t)}),[t]),r}(t),r=q(),i=A(),o=k(),a=P(),[s,u]=S();return M((()=>{const{flags:s={isEnabled:()=>!1},isUnsupportedFeature:d=()=>!1}=e,p=function(){const e=te();return e.use(ne),e.use(function(e){if("function"!=typeof e.interaction)return t=>{t.interaction("hammer",xT(e))};return void e.interaction("hammer",xT(Hammer))}(ee)),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",Z.render(function(e,t){return B.createElement(Fw,{generateClassName:t},B.createElement(Gw,{theme:TI},e))}(e,kI),r),!0},itemsAt:()=>[],findShapes:()=>[],clear:()=>(r&&Z.unmountComponentAtNode(r),o),destroy(){r&&r.parentElement&&(Z.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&&Te.getValue(e,"hyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures.length")>0}function n(e){return e.isDimension&&Te.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:m,skipAttributeExpressions:f,translator:h,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),b=a&&a.qLayoutExclude&&a.qLayoutExclude.qHyperCubeDef,S=b&&b[s?"qDimensions":"qMeasures"]||[],M=i||o[s?"qDimensionInfo":"qMeasureInfo"],E=s?RT:_T,C=s?zT:FT,T=Boolean(c&&c.colorSupport&&c.modifiers),k=T&&(n(this.settings.settings)||t(this.settings.settings)),N=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,b=T||x?E({column:o,activeInfo:t,altList:S,app:e,dir:p?"rtl":"ltr",dock:CI(v),model:c,onChange:u,skipAttributeExpressions:f,translator:h,allowChangeOfAlternatives:T}):void 0;return B.createElement(B.Fragment,{key:t.cId},B.createElement(EI,{chartId:null!==(i=null==c?void 0:c.id)&&void 0!==i?i:"",showGroupDimOptions:x,popover:b,titleData:a,model:c,translator:h,selections:m,disabled:r(),style:this.style,isDimension:s,padding:d,minWidth:l,hasAlternative:k,supportConditional:g}),!y&&B.createElement("span",{style:{lineHeight:"normal",...this.style}},", "))}));return B.createElement("div",{style:x,dir:y},N)}}}(e.renderer("svg")()))}}()),e.renderer("react-qcm",gT),e.component("axis-overlay",Qp.picassoComponents.axisOverlay),e.component("axis-title",cT),e.component("brush-highlighter",_I),e.component("disclaimer",dT),e.component("ghost-point",FI),e.component("label-space",tf),e.component("out-of-bounds-marker",rf),e.component("point-label",ef),e.component("reference-line-labels",Ns),e.component("scroll-hint",Go),e.component("scrollbar",Wl),e.component("time-axis",Qp.picassoComponents.timeAxis),e.scale("logarithmic",BI),e.scale("time",Qp.picassoScales.time),e.symbol("line-point",jI),e}(),m=p({renderer:{prio:[o.renderer||"canvas"]}});i.style.overflow="hidden";const f=m.chart({element:i,data:[],settings:{}});return u({actions:n,chart:f,deviceType:r,flags:s,isUnsupportedFeature:d,picasso:m,progressiveRendering:t,selections:a,viewCache:c(),viewState:l({scrollOffset:void 0,viewRange:[0,1]})}),function(){n.destroy(),f.destroy()}}),[]),s}({env:e}),r=function({core:e}){const n=T(),r=R(),i=z(),o=b(),a=k(),l=_(),u=P(),d=F(),m=j(),f=L(),[x,E]=S(),[C,N]=S();return M((()=>{if(!e)return()=>{};const{actions:t,chart:n}=e,r=XD({actions:t,chart:n,selections:u});return E(r),function(){r.destroy(),r.destroyLazySelection()}}),[e]),M((()=>{if(!x)return;const{qLocaleInfo:u}=r,b="rtl"===a.direction,{actions:S,chart:M,flags:E,isUnsupportedFeature:C,picasso:T,viewCache:k,viewState:O,progressiveRendering:w}=e,L=p({source:d,metaAdditionsFn:GD(C),experimental:{filter:!0}});x.setFilteredFields(L.meta.filteredFields),x.setLayout(L.getLayout());const I=h({theme:m,config:{id:"lineChart"}}),D=g({chart:M,layoutService:L,config:{logicalSize:jq({layout:L.getLayout(),options:a}),rtl:b},typeConfig:{type:"major-minor",fallback:"horizontal",invert:!1}}),q=v({app:n,translator:f}),A=function({chart:e,layoutService:n,progressiveRendering:r,options:i}){const{POINT:o,LINE:a,BRUSH_HIGHLIGHTER:s,REDUCED_LINE:l}=em.COMPONENT,c={partialUpdate:[em.COMPONENT.MINOR_AXIS,em.COMPONENT.GRID_LINE,em.COMPONENT.ZERO_LINE,em.COMPONENT.MAJOR_AXIS_TITLE,em.COMPONENT.MINOR_AXIS_TITLE,em.COMPONENT.MEASURE_REF_LINE_LABEL,em.COMPONENT.LEGEND_CATEGORICAL,l],duringMainProgressive:[],duringReducedLineProgressive:[],forClearProgressive:[],postUpdate:[],all:[]},{dimensionCount:u,measureCount:d,isOneDimensional:p,isContinuous:m,size:f,isStacked:h,isConnect:g}=n.meta,v=n.getLayout(),y=!0,x=void 0===v.maxNumPoints||v.maxNumPoints<Pq?Pq:Math.min(Rq,Math.ceil(v.maxNumPoints)),b=Math.min(zq,x),S=t(v.qHyperCube,"qSize.qcy"),M=1===u?S*d:S,E=()=>{const e=void 0===v.maxNumLines||v.maxNumLines<=0?_q:Math.min(Fq,Math.ceil(v.maxNumLines));return 1===u?Math.min(e,d):2===u?Math.min(e,f.dimensions[1]+1):void 0},C=E(),T=m&&M>b&&x>b&&(x>Pq&&C>=_q||x>=Pq&&C>_q),k={mainPages:[],reducedCube:void 0,reducedPages:[]},N={isMaxNumPointsEnabled:y,isLargeNumPoints:T,maxNumPoints:x,maxNumLines:C,pointProgressive:!1,lineProgressive:!1,reducedLineProgressive:!1,highlighterProgressive:!1,hasInjectedData:!g||h},O={linesDict:{},lines:[],chunks:[],matrix:[]},w={linesDict:{},lines:[],chunks:[],matrix:[]};function L(){k.mainPages=n.getDataPages(),n.setDataPages([])}function I(){n.setDataPages(k.mainPages),k.mainPages=[]}function D(){k.reducedCube&&(k.reducedPages=k.reducedCube.qDataPages||[],k.reducedCube.qDataPages=[])}function q(){k.reducedCube&&(k.reducedCube.qDataPages=k.reducedPages,k.reducedPages=[])}const A=()=>Tq({layoutService:n,isMaxNumPointsEnabled:y,maxNumPoints:x,maxNumLines:C,options:i}),P=t=>{const n=t?[...c.partialUpdate,o,a,s]:[l,o,a,s];e.update({partialData:!0,excludeFromUpdate:n})},R=t=>{requestAnimationFrame((()=>{null===r.reducedLineTimer&&null===r.mainTimer&&(e.update({partialData:!0,excludeFromUpdate:c.postUpdate}),r.setInProgressive(!1),t())}))},z=e=>{requestAnimationFrame((()=>{N.pointProgressive=!1,N.lineProgressive=!1,r.mainTimer=null,R(e)}))},_=e=>{requestAnimationFrame((()=>{N.reducedLineProgressive=!1,r.reducedLineTimer=null,R(e)}))},F=(t,i)=>{r.setInProgressive(!0);const o=n.getDataPages();if(!o.length)return void i(t);const a=o[0].qMatrix.length,s=d;let l=0;const u=()=>{r.mainTimer=requestAnimationFrame((()=>{if(null==e||!e.update)return void Dq({progressiveRendering:r,meta:N});const n=Math.max(0,l*a),o=Math.min(a*d,(l+1)*a);N.pointProgressive={start:n,end:o,isFirst:0===l,isLast:l===s-1},N.lineProgressive={...N.pointProgressive},e.update({partialData:!0,excludeFromUpdate:c.duringMainProgressive}),l++,l<s?u():i(t)}))};u()},j=(t,n)=>{r.setInProgressive(!0);const{reducedCube:i}=k,o=i.qDataPages;if(!o.length)return void n(t);const a=o[0].qMatrix.length,s=d;let l=0;const u=()=>{r.reducedLineTimer=requestAnimationFrame((()=>{const r=Math.max(0,l*a),i=Math.min(a*d,(l+1)*a);N.reducedLineProgressive={start:r,end:i,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),r.renderPromise={resolve:e},t)F(e,z);else{const{reducedCube:t}=k,n=t.qDataPages;F(e,z),n.length&&c.all.includes(l)&&j(e,_)}},U=(t,i)=>{const o=n.getDataPages()[0].qMatrix.length,{lines:a,matrix:s}=O,l=a.length,u=a[0].points.length,d=Aq(a),p=Math.ceil(u/d);let m=0;const f=()=>{r.mainTimer=requestAnimationFrame((()=>{if(null==e||!e.update)return void Dq({progressiveRendering:r,meta:N});L();const a=m*l*d,u=Math.min(o,(m+1)*l*d),h=Math.max(a-l,0),g=u;N.pointProgressive={start:h,end:g,isFirst:0===m,isLast:g===o},N.lineProgressive={...N.pointProgressive};const v=[{...k.mainPages[0],qMatrix:s.slice(a,u)}];n.setDataPages(v),e.update({partialData:!0,excludeFromUpdate:c.duringMainProgressive}),I(),m++,m<p?f():i(t)}))};f()},H=(t,i)=>{const o=n.getDataPages()[0].qMatrix.length,{chunks:a}=O,s=a.length;let l=0,u=0;const d=()=>{r.mainTimer=requestAnimationFrame((()=>{if(null==e||!e.update)return void Dq({progressiveRendering:r,meta:N});L();const p=Math.min(o,u+a[l].length);N.pointProgressive={start:u,end:p,isFirst:0===l,isLast:l===s-1},N.lineProgressive={...N.pointProgressive},u=p;const m=[{...k.mainPages[0],qMatrix:a[l]}];n.setDataPages(m),e.update({partialData:!0,excludeFromUpdate:c.duringMainProgressive}),I(),l++,l<s?d():i(t)}))};d()},$=(e,t)=>{r.setInProgressive(!0);const i=n.getDataPages();i.length?(Oq(n,i,O,h,!0),h?U(e,t):H(e,t)):t(e)},B=(t,n)=>{const{reducedCube:i}=k,o=i.qDataPages[0].qMatrix.length,{lines:a,matrix:s}=O,l=a.length,u=a[0].points.length,d=Aq(a),p=Math.ceil(u/d);let m=0;const f=()=>{r.reducedLineTimer=requestAnimationFrame((()=>{if(null==e||!e.update)return void Dq({progressiveRendering:r,meta:N});D();const a=m*l*d,u=Math.min(o,(m+1)*l*d),h=Math.max(a-l,0),g=u;N.reducedLineProgressive={start:h,end:g,isFirst:0===m,isLast:g===o};const v=[{...k.reducedPages[0],qMatrix:s.slice(a,u)}];i.qDataPages=v,e.update({partialData:!0,excludeFromUpdate:c.duringReducedLineProgressive}),q(),m++,m<p?f():n(t)}))};f()},W=(t,n)=>{const{reducedCube:i}=k,o=i.qDataPages[0].qMatrix.length,{chunks:a}=w,s=a.length;let l=0,u=0;const d=()=>{r.reducedLineTimer=requestAnimationFrame((()=>{if(null==e||!e.update)return void Dq({progressiveRendering:r,meta:N});D();const p=Math.min(o,u+a[l].length);N.reducedLineProgressive={start:u,end:p,isFirst:0===l,isLast:l===s-1},u=p;const m=[{...k.reducedPages[0],qMatrix:a[l]}];i.qDataPages=m,e.update({partialData:!0,excludeFromUpdate:c.duringReducedLineProgressive}),q(),l++,l<s?d():n(t)}))};d()},G=(e,t)=>{r.setInProgressive(!0);const{reducedCube:i}=k,o=i.qDataPages;o.length?(Oq(n,o,w,h),h?B(e,t):W(e,t)):t(e)},Y=(e,t)=>{if(P(t),r.renderPromise={resolve:e},t)$(e,z);else{const{reducedCube:t}=k,n=t.qDataPages;$(e,z),n.length&&c.all.includes(l)&&G(e,_)}},K=(e,t)=>{p?V(e,t):Y(e,t)},X=({render:t,nodes:i})=>wq({chart:e,layoutService:n,progressiveRendering:r,meta:N,render:t,nodes:i,timerId:"highlighterTimer",progressiveId:"highlighterProgressive",shouldUseProgressive:A}),J=({render:t,nodes:i})=>wq({chart:e,layoutService:n,progressiveRendering:r,meta:N,render:t,nodes:i,timerId:"lineTimer",progressiveId:"lineProgressive",shouldUseProgressive:A}),Z=()=>{null===r.mainTimer&&null===r.pointTimer&&null===r.lineTimer&&null===r.reducedLineTimer||(Dq({progressiveRendering:r,meta:N}),L(),D(),e.update({partialData:!0,excludeFromUpdate:c.forClearProgressive}),I(),q())};return{meta:N,exclude:c,getSelectionContext:()=>T?"lazySelection":"selection",shouldUseProgressive:A,isLargeNumVisiblePoints:()=>Cq({layoutService:n,maxNumPoints:x,maxNumLines:C}),resetProgressive:e=>Dq({progressiveRendering:r,isPartialUpdate:e,meta:N}),renderProgressive:K,brushPoints:({render:t,nodes:n})=>Iq({chart:e,shouldUseProgressive:A,progressiveRendering:r,meta:N,render:t,nodes:n}),dimLines:J,highlightLines:X,setReducedCube:e=>{k.reducedCube=e},clear:Z}}({chart:M,layoutService:L,progressiveRendering:w,options:a}),P=function({layoutService:e}){const t=function({layoutService:e}){const t=e.meta.isDiscrete?zD:VD;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:L}),R=function({layoutService:e}){const t={layoutService:void 0},{isDiscrete:n,hasMultipleDimensions:r}=e.meta,i=e.getLayoutValue("color",{}),o=i.auto?r:"byDimension"===i.mode&&i.byDimDef&&i.byDimDef.activeDimensionIndex>-1;n&&o&&(t.layoutService=p({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:L}),z=function({layoutService:e}){const{isOneDimensional:t,isContinuous:n}=e.meta,r="qDimensionInfo/0",i=`${r}:numeric`,o="qDimensionInfo/"+(t?0:1),a=e.getHyperCubeValue("qMeasureInfo"),s=a.map(((e,t)=>`qMeasureInfo/${t}`)),l=n?[{key:i,from:r,override:{value:e=>e.qNum}}]:void 0;return{main:{outer:r,inner:o,outerNumeric:i,minors:s},reduced:{outer:r,inner:o,minors:t?s:["qMeasureInfo/0","qMeasureInfo/1"]},forecast:WD(a),virtuals:l}}({layoutService:L}),_=function({enigmaModel:e,layoutService:t,dataProcessorModel:n}){const r={cube:void 0,on:!1},i=function({enigmaModel:e,layoutService:t}){const{isSnapshot:n,isContinuous:r}=t.meta;if(n)return function({layoutService:e}){return function(){return Promise.resolve({reducedCube:e.getLayoutValue("reducedHyperCube")||e.getHyperCube()})}}({layoutService:t});if(r)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(Ie).then((e=>{var n;const r=t.getHyperCubeValue("qMode"),i=t.getHyperCubeValue("qDimensionInfo"),o="K"===r&&i.length>1&&(null===(n=e[0])||void 0===n?void 0:n.qIsReduced),a=e.slice(),s=t.getHyperCubeValue("qMeasureInfo"),l=o?[]:t.getHyperCubeValue("qColumnOrder");return{reducedCube:{qDataPages:a,qDimensionInfo:i.slice(),qEffectiveInterColumnSortOrder:[1,0],qMeasureInfo:o?[s[0],s[0]]:s.slice(),qStackedDataPages:[],qMode:"S",qHasOtherValues:t.getHyperCubeValue("qHasOtherValues"),qSize:t.getHyperCubeValue("qSize"),qColumnOrder:l}}}))}(e,t,{path:"/qHyperCubeDef",rect:YD({layoutService:t}),zoomLevel:-1,filter:"D1"})}}({enigmaModel:e,layoutService:t})}({enigmaModel:e,layoutService:t}),o=function({layoutService:e}){const{isSnapshot:t,isTwoDimensional:n,isStacked:r}=e.meta,i=e=>{e.qDimensionInfo.unshift({key:"dummy-patch-dimension"})};return i.should=e=>!!(t&&n&&r&&1===e.qDimensionInfo.length),i}({layoutService:t});return{query:{getCube:()=>r.cube,getIsReduced:()=>r.on},command:{initialize:()=>i().then((e=>{const{reducedCube:i}=e;o.should(i)&&o(i),r.cube=i,r.on=!!(r.cube&&r.cube.qDataPages[0]&&r.cube.qDataPages[0].qIsReduced),t.meta.isDiscrete&&t.meta.isOneDimensional&&r.cube.qDataPages[0]&&n.command.processDataPage({dataPage:r.cube.qDataPages[0]})})),setSnapshotData:e=>{e.reducedHyperCube=r.cube}}}}({enigmaModel:o,layoutService:L,dataProcessorModel:P}),F=L.meta.isContinuous?Qp.model({model:o,viewState:O,viewCache:k,layoutService:L,largeDataService:A,dataProcessorModel:P}):void 0;F&&F.update(L.getLayout());const j=OD({app:n,model:o,translator:f,picasso:T,localeInfo:u,theme:m,layoutService:L,reducedModel:_,legendModel:R,continuousModel:F}),V=Uc({layoutService:L,viewState:O,colorModel:{settings:()=>j.getMain().getSettings(),resolveUIColor:e=>j.getMain().getPaletteColor(e)},chart:M,env:{translator:f},keys:{colorScale:em.SCALE.MAIN.COLOR},isEnabled:()=>L.meta.dimensionCount<2});V.command.update();const U=function({layoutService:e,reducedModel:t,continuousModel:n,trendLineModel:r}){const i={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=>{var t,n;return null!==(t=null===(n=e.qAttrExprInfo)||void 0===n?void 0:n.filter((e=>-1!==$D.indexOf(e.id))))&&void 0!==t?t:[]})))}(t),{min:Math.min(...t.filter((e=>HD(e.qMin))).map((e=>e.qMin))),max:Math.max(...t.filter((e=>HD(e.qMax))).map((e=>e.qMax)))}}}({layoutService:e});return n?function({dataPage:e,count:t}){const{qMatrix:n}=e,r={min:NaN,max:NaN};return n.forEach((e=>{let n=0,i=0;e.slice(-t).forEach((e=>{"NaN"!==e.qNum&&(e.qNum>=0?i+=e.qNum:n+=e.qNum)})),r.min=Number.isNaN(r.min)?n:Math.min(n,r.min),r.max=Number.isNaN(r.max)?i:Math.max(i,r.max)})),r}: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=>BD(e.qMinNeg))).map((e=>e.qMinNeg))),n.max=Math.max(...t[0].qSubNodes.filter((e=>BD(e.qMaxPos))).map((e=>e.qMaxPos))),n}const{qMatrix:r}=e,i={};return r.forEach((e=>{const n=e[0].qElemNumber;i[n]||(i[n]={key:n,min:0,max:0}),e.slice(t).forEach((e=>{"NaN"!==e.qNum&&(e.qNum>=0?i[n].max+=e.qNum:i[n].min+=e.qNum)}))})),Object.keys(i).forEach((e=>{n.min=Number.isNaN(n.min)?i[e].min:Math.min(i[e].min,n.min),n.max=Number.isNaN(n.max)?i[e].max:Math.max(i[e].max,n.max)})),n}}({layoutService:e});return{query:{getExtrema:()=>i},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 r=n("measureAxis.minMax");"min"!==r&&"minMax"!==r||(t.min=+n("measureAxis.min"));"max"!==r&&"minMax"!==r||(t.max=+n("measureAxis.max"));return t}({layoutService:e});return i.explicit.min=l,i.explicit.max=c,i.meta.hasExplicitMin=!Number.isNaN(l),i.meta.hasExplicitMax=!Number.isNaN(c),i.meta.hasExplicit=i.meta.hasExplicitMin||i.meta.hasExplicitMax,async function({layoutService:e,reducedModel:t,continuousModel:n}){const{isDiscrete:r,isStacked:i,measureCount:o,dimensionCount:a,hasMultipleDimensions:s}=e.meta;if(r){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:i&&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(r.query.hasTrendLines()){const{min:e,max:t}=r.query.getMinMax();c=Number.isFinite(e)?Math.min(c,e):c,u=Number.isFinite(t)?Math.max(u,t):u}i.implicit.min=o&&!a?Math.min(0,c):c,i.implicit.max=o&&!a?Math.max(0,u):u,i.min=Number.isNaN(i.explicit.min)?i.implicit.min:i.explicit.min,i.max=Number.isNaN(i.explicit.max)?i.implicit.max:i.explicit.max,i.meta.hasExplicitMin&&!i.meta.hasExplicitMax&&(i.max=Math.max(i.min,i.max)),i.meta.hasExplicitMax&&!i.meta.hasExplicitMin&&(i.min=Math.min(i.min,i.max)),i.meta.includesZero=!!((0-i.min)*(0-i.max)<=0)}))}}}}({layoutService:L,reducedModel:_,continuousModel:F,trendLineModel:V}),H=UD({layoutService:L,extremumModel:U,largeDataService:A}),$=function({picasso:e,chart:t,localeInfo:n,continuousModel:r,layoutService:i,reducedModel:o,legendModel:a,fieldModel:s,trendLineModel:l,colorService:c,largeDataService:u,progressiveRendering:d,options:p,viewCache:m}){const{POINT:f,LINE:h,BRUSH_HIGHLIGHTER:g,REDUCED_LINE:v}=em.COMPONENT,{exclude:y,resetProgressive:x,shouldUseProgressive:b,renderProgressive:S,setReducedCube:M}=u,E={isUpdateDataless:!1,isUsingLegendCube:!1,isUsingLabelSpace:!1,isSizeChanging:!1,isPartialUpdating:!1},{isContinuous:C,isStacked:T}=i.meta,{virtuals:k}=s,N=[],O={main:N,reduced:N,legend:N,dataset:e.data("q")({key:em.DATA.MAIN,data:i.getHyperCube(),config:{localeInfo:n,virtualFields:k}})};function w(){O.main=i.getDataPages(),i.setDataPages([])}function L(){i.setDataPages(O.main),O.main=N}const I=()=>{const e=t.component(em.COMPONENT.OUT_OF_MIN_BOUNDS),n=e&&e.show();return!(!0!==p.chartAnimations||TD(i)>du.LARGE_NUM_POINTS_ANIMATIONS||E.isSizeChanging||E.isPartialUpdating||m.get("hasHiddenMinOobs")&&n||Ls.propertiesHaveChanged({viewCache:m,layout:i.getLayout()}))};return{query:{getDataset:()=>O.dataset,getIsUpdateDataless:()=>E.isUpdateDataless,getIsUsingLegendCube:()=>E.isUsingLegendCube,getIsUsingLabelSpace:()=>E.isUsingLabelSpace,animationsEnabled:I},command:{initialize:()=>{E.isUsingLegendCube=!(C||!T&&!o.query.getIsReduced()||!a.query.getHasCube())},update:()=>(x(),t.layoutComponents(),b()?new Promise((e=>{S(e)})):(t.update(),d.setInProgressive(!1),Promise.resolve())),updateDataless:({settings:e})=>{x(),y.duringMainProgressive=e.components.map((e=>e.key)).filter((e=>e!==f&&e!==h)),y.duringReducedLineProgressive=e.components.map((e=>e.key)).filter((e=>e!==v)),y.forClearProgressive=e.components.map((e=>e.key)).filter((e=>e!==f&&e!==h&&e!==v)),y.postUpdate=e.components.map((e=>e.key)).filter((e=>e!==g)),y.all=e.components.map((e=>e.key)),E.isUpdateDataless=!0;const s=b();w();const u=C?r.getInitialCube():o.query.getCube();M(u);const d=i.getHyperCube()===u;d||(O.reduced=u.qDataPages,u.qDataPages=N),E.isUsingLegendCube&&(O.legend=a.query.getDataPages(),a.command.setDataPages([]));const p=[{type:"q",key:em.DATA.MAIN,data:i.getHyperCube(),config:{localeInfo:n,virtualFields:k}},{type:"q",key:em.DATA.REDUCED,data:u,config:{localeInfo:n,virtualFields:k}},...c.getMain().getData()];E.isUsingLegendCube&&p.push({type:"q",key:em.DATA.LEGEND,data:a.query.getCube(),config:{localeInfo:n,virtualFields:k}}),l.query.hasTrendLines()&&p.push({key:"trend",data:l.query.getData()}),s?t.update({data:p,settings:e}):t.layoutComponents({data:p,settings:e}),L(),d||(u.qDataPages=O.reduced,O.reduced=N),E.isUsingLegendCube&&(a.command.setDataPages(O.legend),O.legend=N),E.isUpdateDataless=!1},updatePartial:()=>(x(!0),b()?new Promise((e=>{S(e,!0)})):(E.isPartialUpdating=!0,t.update({partialData:!0,excludeFromUpdate:y.partialUpdate}),E.isPartialUpdating=!1,d.setInProgressive(!1),Promise.resolve())),setUseLabelSpace:e=>{E.isUsingLabelSpace=e},setState:(e,t)=>{E[e]=t}}}}({picasso:T,chart:M,localeInfo:u,continuousModel:F,layoutService:L,reducedModel:_,legendModel:R,fieldModel:z,trendLineModel:V,colorService:j,largeDataService:A,progressiveRendering:w,options:a,viewCache:k}),B=function({layoutService:e,dockService:t,themeService:n,flags:r}){const{LINE:i,POINT:o}=JD,a=n.getStyles(),s=function({layoutService:e}){const{isOneDimensional:t}=e.meta,{style:n}=e.getLayoutValue("components",[]).filter((e=>"line"===e.key))[0]||{},r=e=>`qMeasureInfo.${e}.styling`;return({property:i,defaultValue:o,index:a})=>{const s=n&&Object.hasOwnProperty.call(n,i)?n[i]:o;if(void 0===a)return s;const{style:l}=e.getHyperCubeValue(r(t?a:0),[]).filter((e=>"line"===e.key||e.cId))[0]||{};return l&&Object.hasOwnProperty.call(l,i)?l[i]:s}}({layoutService:e}),l=t=>r.isEnabled("CLIENT_IM_3050")?e.getLayoutValue("components",[]).find((e=>e.key===t)):void 0,c={line:{getCurve:()=>(e,t)=>s({property:"lineCurve",defaultValue:i.CURVE.LINEAR,index:t}),getStrokeWidth:()=>(e,n)=>s({property:"lineThickness",defaultValue:"FULL"===t.meta.chart.mode?i.WIDTH.FULL.DEFAULT:i.WIDTH.LESS.DEFAULT,index:n}),getStrokeDasharray:()=>(e,t)=>{const n=s({property:"lineType",defaultValue:i.TYPE.SOLID,index:t});return n&&i.TYPE[n.toUpperCase()]}},forecast:{getCurve:()=>t=>{const n=t.datum.line.value;return e.getLayoutValue(`qHyperCube.qMeasureInfo.${n}.forecast.lineCurve`,c.line.getCurve()(t,n))},getStrokeWidth:()=>t=>{const n=t.datum.line.value;return e.getLayoutValue(`qHyperCube.qMeasureInfo.${n}.forecast.lineThickness`,c.line.getStrokeWidth()(t,n))},getStrokeDasharray:()=>t=>{const n=t.datum.line.value,r=e.getLayoutValue(`qHyperCube.qMeasureInfo.${n}.forecast.lineType`);return r?i.TYPE[r.toUpperCase()]:c.line.getStrokeDasharray()(t,n)}},point:{getSize:e=>s({property:"dataPointSize",defaultValue:o.SIZE.DEFAULT,index:e})},axis:{title:{getStyle:()=>{var e,t,n,r,i,o;return{color:null!==(e=null===(t=l("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:a.axis.title.color,fontFamily:null!==(n=null===(r=l("axis"))||void 0===r||null===(r=r.axis)||void 0===r||null===(r=r.title)||void 0===r?void 0:r.fontFamily)&&void 0!==n?n:a.axis.title.fontFamily,fontSize:null!==(i=null===(o=l("axis"))||void 0===o||null===(o=o.axis)||void 0===o||null===(o=o.title)||void 0===o?void 0:o.fontSize)&&void 0!==i?i:a.axis.title.fontSize}}},label:{getStyle:()=>{var e,t,n,r,i,o;return{fill:null!==(e=null===(t=l("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:a.axis.label.name.color,fontFamily:null!==(n=null===(r=l("axis"))||void 0===r||null===(r=r.axis)||void 0===r||null===(r=r.label)||void 0===r||null===(r=r.name)||void 0===r?void 0:r.fontFamily)&&void 0!==n?n:a.axis.label.name.fontFamily,fontSize:null!==(i=null===(o=l("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.fontSize)&&void 0!==i?i:a.axis.label.name.fontSize}}}},label:{getStyle:()=>{var e,t,n,r,i,o;return{fill:null!==(e=null===(t=l("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:a.label.value.color,fontFamily:null!==(n=null===(r=l("label"))||void 0===r||null===(r=r.label)||void 0===r||null===(r=r.value)||void 0===r?void 0:r.fontFamily)&&void 0!==n?n:a.label.value.fontFamily,fontSize:null!==(i=null===(o=l("label"))||void 0===o||null===(o=o.label)||void 0===o||null===(o=o.value)||void 0===o?void 0:o.fontSize)&&void 0!==i?i:a.label.value.fontSize}}},legend:{title:{getStyle:()=>{var e,t,n,r,i,o;return{fontFamily:null!==(e=null===(t=l("legend"))||void 0===t||null===(t=t.legend)||void 0===t||null===(t=t.title)||void 0===t?void 0:t.fontFamily)&&void 0!==e?e:a.legend.title.fontFamily,fontSize:null!==(n=null===(r=l("legend"))||void 0===r||null===(r=r.legend)||void 0===r||null===(r=r.title)||void 0===r?void 0:r.fontSize)&&void 0!==n?n:a.legend.title.fontSize,color:null!==(i=null===(o=l("legend"))||void 0===o||null===(o=o.legend)||void 0===o||null===(o=o.title)||void 0===o||null===(o=o.color)||void 0===o?void 0:o.color)&&void 0!==i?i:a.legend.title.color}}},label:{getStyle:()=>{var e,t,n,r,i,o;return{fontFamily:null!==(e=null===(t=l("legend"))||void 0===t||null===(t=t.legend)||void 0===t||null===(t=t.label)||void 0===t?void 0:t.fontFamily)&&void 0!==e?e:a.legend.label.fontFamily,fontSize:null!==(n=null===(r=l("legend"))||void 0===r||null===(r=r.legend)||void 0===r||null===(r=r.label)||void 0===r?void 0:r.fontSize)&&void 0!==n?n:a.legend.label.fontSize,color:null!==(i=null===(o=l("legend"))||void 0===o||null===(o=o.legend)||void 0===o||null===(o=o.label)||void 0===o||null===(o=o.color)||void 0===o?void 0:o.color)&&void 0!==i?i:a.legend.label.color}}}}};return{query:c}}({layoutService:L,dockService:D,themeService:I,flags:E}),W=function({chart:e,layoutService:t,chartModel:n,extremumModel:r,dockService:i,themeService:o}){const a={locked:!1,resolved:void 0},{getExtrema:s}=r.query,l=function({chart:e,layoutService:t,chartModel:n,extremumModel:r,dockService:i,themeService:o}){const a=t.getLayoutValue("measureAxis.logarithmic",!1),{measureText:s}=te.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 r=t.query.getIsUpdateDataless()?n.meta.chart.size:e.component(em.COMPONENT.LINE).rect;return"horizontal"===n.meta.major.orientation?r.height:r.width}({chart:e,chartModel:n,dockService:i}),d=r.query.getExtrema();return(a&&!d.meta.includesZero?yq:gq)({chart:e,layoutService:t,dockService:i,measureText:c,extrema:d,size:u})}}({chart:e,layoutService:t,chartModel:n,extremumModel:r,dockService:i,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:M,layoutService:L,chartModel:$,extremumModel:U,dockService:D,themeService:I}),G=Gu({app:n,chart:M,embed:i,flags:E,layout:L.getLayout(),localeInfo:u,model:o,options:{direction:a.direction},picasso:T,translator:f}),Y=bq({actions:S,chart:M,colorService:j,custom:G,fieldModel:z,layoutService:L,rtl:b,themeService:I,tickModel:W,translator:f,trendLineModel:V,viewState:O}),K=L.meta.isDiscrete?function({chart:e,actions:n,componentKey:r,enigmaModel:i,layoutService:o,dockService:a,trendLineModel:l,itemWidths:u,viewState:d,rtl:p,options:{definitionPath:m="/qHyperCubeDef",getRect:f,axisKey:h,renderer:g,areaBuffer:v,processDataPage:y=()=>{}}={}}){const x=c(),b=function({qMode:e}){switch(e){case"K":return oD;case"T":return aD;default:return iD}}({qMode:o.getHyperCubeValue("qMode")}),S=function({state:e,contains:t}){return e.set(sD,[]),{add:t=>{const n=e.get(sD);n.length=0,n.push(t)},getCurrent:()=>e.get(sD)[0],getAll:()=>e.get(sD),contains:n=>t(e.get(sD)[0],n)}}({state:x,contains:b.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:b});const M=function({buffer:e}){return void 0===e?void 0:2*Math.round(e/2)}({buffer:v}),E=function({dataStore:e,composition:t,enigmaModel:n,layoutService:r,trendLineModel:i=fD,definitionPath:o,processDataPage:a}){const{slicer:l,cacheWarden:c,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:l,warden:c({bounds:{width:r.meta.size.x,height:r.meta.size.y}}),expand:pD({layoutService:r}),request:u({definitionPath:o}),process:mD(n),connectionless:r.meta.isSnapshot,processDataPage:a}),p=s(((e,{onProcessing:t,onData:n})=>{d(e,{onProcessing:t}).then((e=>n(e))).catch((e=>{if(e!==JI)throw e}))}),tD);return function(e,{onProcessing:t=ZI,onDataPage:n=ZI}={}){p(e,{onProcessing:t,onData:e=>{r.setDataPages(e?[e]:[]),i.command.update(),n(e)}})}}({dataStore:S,composition:b,enigmaModel:i,layoutService:o,trendLineModel:l,definitionPath:m,processDataPage:y}),C=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:m}){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 hD;if(!n)return gD;return r?bD:ED}({layoutService:r}),m=()=>"horizontal"===i.meta.major.orientation?t().width:t().height,f=e=>e?m()/e:0,h=(e,t)=>-(e-t)*f(t);return{getItems(){const n=r.getLayoutValue("dimensionAxis"),l=u({layoutService:r});return{inTotal:l,inView:CD({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(QI/(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,h(n,r))),o=r?Math.abs(r*i/m()):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 h(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:m(),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:m(),upperBound:h(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>=h(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:m}),h=()=>{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]))},x=e=>{const t=Date.now(),r=h(),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=h();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;x(t)},scrollToRelative(e){const t=n.get("items"),r=f.convert.relativeToPixelOffset({relativeOffset:e,items:t});x(r)}}}({chart:e,componentKey:r,state:x,dataStore:S,pageData:E,layoutService:o,dockService:a,itemWidths:u,getRect:f,axisKey:h,renderer:g,areaBuffer:M,viewState:d,rtl:p}),T=function({layoutService:e,dataStore:n}){return function(r){const i=t(r,`${e.refs.dataPages}`);i.length=0,i.push(n.getCurrent())}}({layoutService:o,dataStore:S}),k=function({chart:e,actions:t,componentKey:n,dockService:r,rtl:i,scroller:o}){return{gestures:[uD({chart:e,actions:t,componentKey:n,dockService:r,rtl:i,scroller:o})],native:{type:"native",events:{wheel:dD({chart:e,actions:t,componentKey:n,scroller:o})}}}}({chart:e,actions:n,componentKey:r,dockService:a,rtl:p,scroller:C});return{interactions:k,query:{getCanScroll:()=>C.enabled(),getItemSize:()=>C.itemSize(),getScaleRange:()=>C.scaleRange(),getCurrentDataPage:()=>S.getCurrent()},command:{initialize:()=>C.initialize(),scrollTo:e=>C.scrollToRelative(e),setSnapshotData:e=>T(e)}}}({chart:M,actions:S,componentKey:em.COMPONENT.LINE,enigmaModel:o,layoutService:L,dockService:D,trendLineModel:V,itemWidths:Uq,viewState:O,rtl:b,options:{axisKey:em.COMPONENT.MAJOR_AXIS,renderer:T.renderer("svg")(),areaBuffer:L.meta.isTwoDimensional||P.query.getShouldProcess()?40:12,processDataPage:e=>P.command.processDataPage({dataPage:e})}}):void 0,X=function({layoutService:e,discreteModel:t}){const{isContinuous:n,canBeContinuous:r,isGroupedByDimension:i}=e.meta,o=e.getLayout(),a="K"===o.qHyperCube.qMode,s=we.dimensionless(o),l=as.getMeasureRefLines(o),c=as.getDimensionRefLines(o,s),u=as.getMeasureRefLineLabels(o),d=as.getDimensionRefLineLabels(o,s);let p={},m={};const f=t=>{if(r){const n=e.getLayoutValue("qHyperCube.qDimensionInfo.0"),{qMin:r,qMax:i}=n;return as.isOutOfRange({value:t,qMin:r,qMax:i})}return!1},h=t=>{if(!m[t])return!1;if(!n&&i){const n={valueInfo:m[t]},r="S"===e.getHyperCubeValue("qMode")?"qDataPages.0":"qStackedDataPages.0",i=e.getHyperCubeValue(r);return as.isOutOfDataPages({label:n,dataPages:i})}return!0},g=()=>!(!c||!c.length)&&!c.every((t=>{const n=as.getInputValue({refLineLayout:t,layoutService:e});return f(n)||h(n)})),v={isKMode:a,canBeContinuous:r,measureRefLines:l,dimensionRefLines:c,measureRefLineLabels:u,dimensionRefLineLabels:d,dimensionRefLineInfo:m,dimensionValuesInfo:p,query:{getRefLines:e=>as.getRefLines(o,e),getRefLineLabels:e=>as.getRefLineLabels(o,e)},update:()=>{m=v.dimensionRefLineInfo,g()&&(p=as.getDimensionValuesInfo({layout:o,canBeContinuous:r,discreteModel:t,layoutService:e}),v.dimensionValuesInfo=p,c.forEach((t=>{const n=as.getInputValue({refLineLayout:t,layoutService:e});p[n]&&(m[n]?(m[n].innerValues=p[n].innerValues,m[n].minOrder=Math.min(m[n].minOrder,p[n].minOrder),m[n].maxOrder=Math.max(m[n].maxOrder,p[n].maxOrder),m[n].isMinOrderOk=m[n].isMinOrderOk||p[n].isMinOrderOk,m[n].isMaxOrderOk=m[n].isMaxOrderOk||p[n].isMaxOrderOk):m[n]={id:p[n].id,qText:p[n].qText,innerValues:p[n].innerValues,minOrder:p[n].minOrder,maxOrder:p[n].maxOrder,isMinOrderOk:p[n].isMinOrderOk,isMaxOrderOk:p[n].isMaxOrderOk},m[n].numInnerValues=(m[n].maxOrder||0)-(m[n].minOrder||0)+1)})))}};return v.update(),v}({layoutService:L,discreteModel:K}),J=y({picassoInstance:T,plugins:l||[],pluginArgs:Vq(L)});N({alternativeService:q,chartModel:$,colorService:j,continuousModel:F,customTooltipService:G,dataProcessorModel:P,disclaimerService:H,discreteModel:K,dockService:D,extremumModel:U,fieldModel:z,layoutService:L,legendModel:R,pluginService:J,reducedModel:_,refLineModel:X,selectionService:x,styleModel:B,themeService:I,tickModel:W,tooltipService:Y,trendLineModel:V,largeDataService:A})}),[d,a.direction,x,m.name(),f.language()]),C}({core:n}),i=function({core:e,services:t}){var n;const r=T(),i=b(),o=k(),a=N();(function({core:e}){E((()=>({getViewState(){var t;if(!e)return;const{chart:n,viewState:r}=e,i=n.component(em.COMPONENT.LEGEND_CATEGORICAL);return{scrollOffset:r.get("scrollOffset"),zoom:r.get("zoom"),legendScrollOffset:null==i||null===(t=i._DO_NOT_USE_getInfo)||void 0===t?void 0:t.call(i).offset}}})),[e])})({core:e}),function({core:e,services:t}){C((n=>{if(!e||!t)return;const{chart:r,viewState:i}=e,{colorService:o,continuousModel:a,discreteModel:s,dockService:l,layoutService:c,reducedModel:u}=t,{isDiscrete:d,isSnapshot:p}=c.meta,{width:m,height:f}=l.meta.chart.size;return n.snapshotData=n.snapshotData||{},n.snapshotData.content={size:{w:m,h:f}},p?Promise.resolve():(n.snapshotData.content.chartData={scrollOffset:i.get("scrollOffset"),zoom:i.get("zoom"),legendScrollOffset:Le(r,em.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 s=function({enable:e=!0}={}){const t=b(),n=()=>Date.now().toString()+Math.random(),[r,i]=S(n()),o={properties:void 0};return M((()=>{if(!t||!t.getEffectiveProperties||!e)return()=>{};const r=()=>{t.getEffectiveProperties().then((e=>{const t=he(!0,{},e);if(!o.properties)return void(o.properties=t);const r=function(e,t){var n,r,i,o;const a={properties:!1,exclude:!1};if(e===t)return a;const s=he(!0,{},e),l=he(!0,{},t);return a.exclude=!dd(null===(n=s.qHyperCubeDef)||void 0===n?void 0:n.qLayoutExclude,null===(r=l.qHyperCubeDef)||void 0===r?void 0:r.qLayoutExclude),null===(i=s.qHyperCubeDef)||void 0===i||delete i.qLayoutExclude,null===(o=l.qHyperCubeDef)||void 0===o||delete o.qLayoutExclude,a.properties=!dd(s,l),a}(o.properties,t);o.properties=t,r.exclude&&!r.properties&&i(n())}))};return t.on("changed",r),r(),()=>{t.removeListener("changed",r)}}),[e]),r}({enable:!1===(null==t||null===(n=t.layoutService)||void 0===n||null===(n=n.meta)||void 0===n?void 0:n.isSnapshot)}),[l,c]=O((()=>{if(!e||!t)return Promise.resolve();const{flags:n}=e,{alternativeService:s,chartModel:l,colorService:c,continuousModel:u,customTooltipService:d,disclaimerService:p,extremumModel:m,layoutService:f,pluginService:h,reducedModel:g,selectionService:v,tooltipService:y,largeDataService:x}=t,{isContinuous:b,isSnapshot:S}=f.meta;!function({core:e,options:t,services:n}){const{viewCache:r,viewState:i}=e,{chartModel:o,continuousModel:a,discreteModel:s,layoutService:l,legendModel:c,refLineModel:u}=n,{isContinuous:d,isDiscrete:p,isSnapshot:m}=l.meta,f=t.viewState||{},h=m?l.getLayoutValue("snapshotData.content.chartData",{}):f;i.preventSet("scrollOffset",h.scrollOffset),i.preventSet("legendScrollOffset",h.legendScrollOffset||0),h.zoom&&i.preventSet("zoom",h.zoom);const{onZoomChange:g,onZoomIntercept:v}=Qp.event;p&&i.onChanged("scrollOffset",(()=>{c.command.setDataPages([s.query.getCurrentDataPage()]),u.update(),o.command.updatePartial()}));d&&(i.intercept("zoom",v({viewCache:r})),i.onChanged("zoom",g({continuousDataModel:a,layoutService:l},o.command.updatePartial)))}({core:e,options:o,services:t});const M=[];return S||M.push(i.getEffectiveProperties()),b&&(x.clear(),M.push(u.initialFetch())),M.push(g.command.initialize()),Promise.all(M).then((async e=>{const t=e[0]||void 0;if(null!=t&&t.qHyperCubeDef){const e=function({app:e,model:t,properties:n,layoutService:r,flags:i}){const o=he(!0,{},n),a=r.getLayout();return{shouldUpdate:()=>function({model:e,properties:t,layoutService:n,flags:r}){const i=n.getLayout(),o=yc({enabledForecast:r.isEnabled("LINECHART_FORECAST")||pd(i),properties:t,layout:i});if(o)return!0;return function({model:e,properties:t,layoutService:n}){var r,i;const o=he(!0,{},t);md(t,n.getLayout());const{dimensionCount:a,isContinuous:s}=n.meta;s||1===a?t.qHyperCubeDef.qMode="S":2===a&&(t.qHyperCubeDef.qMode="K");const l=n.getLayout();if(null===(r=e.colorSupport)||void 0===r||null===(i=r.colorByUpdater)||void 0===i||i.call(r,t,"qHyperCubeDef.",l),function({properties:e,layoutService:t}){const{filteredFields:n}=t.meta;if(!(n.measures.length>0))return;const{mode:r}=e.color||{};if("byExpression"===r){var i;if("colorByExpression"===(null===(i=t.getLayout().qHyperCube.qMeasureInfo)||void 0===i||null===(i=i[0])||void 0===i||null===(i=i.qAttrExprInfo)||void 0===i||null===(i=i[0])||void 0===i?void 0:i.id))return;const{current:r,target:o}=function({properties:e,filtered:t}){const{qMeasures:n}=e.qHyperCubeDef||[],{current:r,target:i}=n.reduce(((e,n,r)=>{var i;return"colorByExpression"===(null===(i=n.qAttributeExpressions[0])||void 0===i?void 0:i.id)&&(e.current=r),void 0!==e.target||t.includes(r)||(e.target=r),e}),{current:void 0,target:void 0});return{current:r,target:i}}({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}),ea.compare(o,t,!0)||JSON.stringify(o)===JSON.stringify(t))return!1;return t.hash=Math.random(),!0}({model:e,properties:t,layoutService:n})}({model:t,properties:n,layoutService:r,flags:i}),update:async()=>Us(a)?t.setProperties(n).then((()=>{e.clearUndoBuffer()})):Vs(t,o,n)}}({app:r,model:i,properties:t,layoutService:f,flags:n});if(e.shouldUpdate())return await e.update(),void a.pending();a.restore()}d.setProperties(t),y.expando.set("properties",t),await h.initialize(),await m.command.initialize(),await c.initialize(),await s.initialize({properties:t}),p.initialize(),l.command.initialize();const{field:o}=c.getMain().getSettings();return v.setBrushAliases({colorField:o,useLegendCube:l.query.getIsUsingLegendCube(),legendAlias:`${em.DATA.LEGEND}/${o}`}),{properties:t}}))}),[e,t,s]);if(c&&!c.isHandled)throw c;return l}({core:n,services:r});!function({core:e,services:t,bootstrapped:n}){const r=T(),i=R(),o=b(),s=k(),l=V(),c=j(),u=function({value:e,wait:t=100}){const n=S({}),[r,i]=S(e);return M((()=>{if(Date.now()>=n.lastExecuted+t)return n.lastExecuted=Date.now(),i(e),()=>{};const r=setTimeout((()=>{n.lastExecuted=Date.