@nebula.js/sn-line-chart
Version:
Line chart supernova
7 lines (6 loc) • 704 kB
JavaScript
/*
* @nebula.js/sn-line-chart v1.41.0
* 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,i,r,o,a,s,l,c,u,d,p,m,f,h,g,v,y,x,b,S,M,E,C,T,N,k,O,L,w,I,D,q,A,P,R,_,z,F,V,j,U,H,$,B,W,G,Y,K,X,J,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.cache,c=e.storage,u=e.colorService,d=e.disclaimerService,p=e.layoutService,m=e.selectionService,f=e.tooltipService,h=e.themeService,g=e.dockService,v=e.pluginService},function(e){y=e.default},function(e){x=e.useModel,b=e.useState,S=e.useEffect,M=e.useImperativeHandle,E=e.onTakeSnapshot,C=e.useApp,T=e.useOptions,N=e.useRenderState,k=e.usePromise,O=e.useLayout,L=e.useTranslator,w=e.useAction,I=e.useConstraints,D=e.useDeviceType,q=e.useElement,A=e.useAppLayout,P=e.useEmbed,R=e.usePlugins,_=e.useSelections,z=e.useStaleLayout,F=e.useTheme,V=e.useRect},function(e){j=e,U=e.forwardRef,H=e.useContext,$=e.default,B=e.Children,W=e.isValidElement,G=e.cloneElement},function(e){Y=e.default,K=e},function(e){X=e.default},function(e){J=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:Md(e),qae:Ed(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]=b((()=>e));return t}(),n=function(e){const t=I(),n=function(){const e=O(),t=L(),[n,i]=b(!1),[r,o]=b(!1),a=e=>{o("boolean"==typeof e?e:!r)},[s]=b({});return s.enabled=()=>n,s.active=()=>r,s.action=a,s.update=e=>{i(!e.select&&!e.active)},w((()=>{var i,o;const s=!(null===(i=e.qSelectionInfo)||void 0===i||!i.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(r?"Tooltip.ToggleOffLassoSelection":"Tooltip.ToggleOnLassoSelection"),icon:jk,hidden:!n||!s||l,action:a,active:r}}),[r,n,e,t.language()]),s}(),[i]=b((()=>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(Vk.prototype).forEach((e=>{n.select[e]=Vk.prototype[e]})),Vk.init(n.select),n}({lasso:n,progressiveRendering:e})));return S((()=>{i.update(t)}),[t]),i}(t),i=D(),r=q(),o=T(),[a,s]=b();return S((()=>{const{flags:a={isEnabled:()=>!1},isUnsupportedFeature:u=(()=>!1)}=e,d=function(){const e=J();return e.use(Z),e.use(function(e){if("function"!=typeof e.interaction)return t=>{t.interaction("hammer",yS(e))};return void e.interaction("hammer",yS(Hammer))}(X)),e.use(function(){return function(e){e.renderer("react",function(){function e({x:e,y:t,width:n,height:i,scaleRatio:r,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(i)?a.height:i,void 0!==r&&(a.scaleRatio.x=Number.isNaN(r.x)?a.scaleRatio.x:r.x,a.scaleRatio.y=Number.isNaN(r.y)?a.scaleRatio.y:r.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 i,r=e();const o={element:()=>i,root:()=>i,appendTo:e=>(i||(i=n("div"),i.style.position="absolute",i.style["-webkit-font-smoothing"]="antialiased",i.style["-moz-osx-font-smoothing"]="antialiased",i.style.pointerEvents="none"),e.appendChild(i),i),render(e){if(!i)return!1;const t=r.scaleRatio.x,n=r.scaleRatio.y;return i.style.left=`${Math.round(r.margin.left+r.x*t)}px`,i.style.top=`${Math.round(r.margin.top+r.y*n)}px`,i.style.width=`${Math.round(r.width)}px`,i.style.height=`${Math.round(r.height)}px`,i.style.transform=`scale(${t}, ${n})`,i.style.transformOrigin="top left",Y.render(function(e,t){return $.createElement(NT,{generateClassName:t},$.createElement(AT,{theme:gk},e))}(e,vk),i),!0},itemsAt:()=>[],findShapes:()=>[],clear:()=>(i&&Y.unmountComponentAtNode(i),o),destroy(){i&&i.parentElement&&(Y.unmountComponentAtNode(i),i.parentElement.removeChild(i)),i=null},size:t=>(t&&(r=e(t)),r)};return o}}()),e.component("data-title",function(e){function t(e){return!e.isDimension&&he.getValue(e,"hyperCubeDef.qLayoutExclude.qHyperCubeDef.qMeasures.length")>0}function n(e){return e.isDimension&&he.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:i,explicitItemInfos:r,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=r||o[s?"qDimensionInfo":"qMeasureInfo"],E=s?PS:_S,C=s?RS:zS,T=Boolean(c&&c.colorSupport&&c.modifiers),N=T&&(n(this.settings.settings)||t(this.settings.settings)),k=M.map(((t,n)=>{var r;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:hk(v),model:c,onChange:u,skipAttributeExpressions:f,translator:h,allowChangeOfAlternatives:T}):void 0;return $.createElement($.Fragment,{key:t.cId},$.createElement(fk,{chartId:null!==(r=null==c?void 0:c.id)&&void 0!==r?r:"",showGroupDimOptions:x,popover:b,titleData:a,model:c,translator:h,selections:m,disabled:i(),style:this.style,isDimension:s,padding:d,minWidth:l,hasAlternative:N,supportConditional:g}),!y&&$.createElement("span",{style:{lineHeight:"normal",...this.style}},", "))}));return $.createElement("div",{style:x,dir:y},k)}}}(e.renderer("svg")()))}}()),e.renderer("react-qcm",hS),e.component("axis-overlay",ym.picassoComponents.axisOverlay),e.component("brush-highlighter",Lk),e.component("disclaimer",uS),e.component("ghost-point",wk),e.component("label-space",nf),e.component("out-of-bounds-marker",of),e.component("point-label",tf),e.component("reference-line-labels",Vs),e.component("scroll-hint",oa),e.component("scrollbar",oc),e.component("time-axis",ym.picassoComponents.timeAxis),e.scale("logarithmic",Rk),e.scale("time",ym.picassoScales.time),e.symbol("line-point",Ik),e}(),p=d({renderer:{prio:[o.renderer||"canvas"]}});r.style.overflow="hidden";const m=p.chart({element:r,data:[],settings:{}});return s({actions:n,chart:m,deviceType:i,flags:a,isUnsupportedFeature:u,picasso:p,viewCache:l(),viewState:c({scrollOffset:void 0,viewRange:[0,1]}),progressiveRendering:t}),function(){n.destroy(),m.destroy()}}),[]),a}({env:e}),i=function({core:e}){const n=C(),i=A(),r=P(),o=x(),a=T(),c=R(),u=_(),d=z(),m=F(),f=L(),[y,M]=b(),[E,N]=b();return S((()=>{if(!e)return()=>{};const{actions:t,chart:n}=e,i=UO({actions:t,chart:n,selections:u});return M(i),function(){i.destroy(),i.destroyLazySelection()}}),[e]),S((()=>{if(!y)return;const{qLocaleInfo:u}=i,x="rtl"===a.direction,{actions:b,chart:S,flags:M,isUnsupportedFeature:E,picasso:C,viewCache:T,viewState:k,progressiveRendering:O}=e,L=p({source:d,metaAdditionsFn:FO(E),experimental:{filter:!0}});y.setFilteredFields(L.meta.filteredFields),y.setLayout(L.getLayout());const w=h({theme:m,config:{id:"lineChart"}}),I=g({chart:S,layoutService:L,config:{logicalSize:DL({layout:L.getLayout(),options:a}),rtl:x},typeConfig:{type:"major-minor",fallback:"horizontal",invert:!1}}),D=function({chart:e,layoutService:n,progressiveRendering:i,options:r}){const{POINT:o,LINE:a,BRUSH_HIGHLIGHTER:s,REDUCED_LINE:l}=xm.COMPONENT,c={partialUpdate:[xm.COMPONENT.MINOR_AXIS,xm.COMPONENT.GRID_LINE,xm.COMPONENT.ZERO_LINE,xm.COMPONENT.MAJOR_AXIS_TITLE,xm.COMPONENT.MINOR_AXIS_TITLE,xm.COMPONENT.MEASURE_REF_LINE_LABEL,xm.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<kL?kL:Math.min(OL,Math.ceil(v.maxNumPoints)),b=Math.min(LL,x),S=t(v.qHyperCube,"qSize.qcy"),M=1===u?S*d:S,E=()=>{const e=void 0===v.maxNumLines||v.maxNumLines<=0?wL:Math.min(IL,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>kL&&C>=wL||x>=kL&&C>wL),N={mainPages:[],reducedCube:void 0,reducedPages:[]},k={isMaxNumPointsEnabled:y,isLargeNumPoints:T,maxNumPoints:x,maxNumLines:C,pointProgressive:!1,lineProgressive:!1,reducedLineProgressive:!1,highlighterProgressive:!1,hasInjectedData:!g||h},O={linesDict:{},lines:[],chunks:[],matrix:[]},L={linesDict:{},lines:[],chunks:[],matrix:[]};function w(){N.mainPages=n.getDataPages(),n.setDataPages([])}function I(){n.setDataPages(N.mainPages),N.mainPages=[]}function D(){N.reducedCube&&(N.reducedPages=N.reducedCube.qDataPages||[],N.reducedCube.qDataPages=[])}function q(){N.reducedCube&&(N.reducedCube.qDataPages=N.reducedPages,N.reducedPages=[])}const A=()=>vL({layoutService:n,isMaxNumPointsEnabled:y,maxNumPoints:x,maxNumLines:C,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)}))},z=e=>{requestAnimationFrame((()=>{k.reducedLineProgressive=!1,i.reducedLineTimer=null,R(e)}))},F=(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(null==e||!e.update)return void CL({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()},V=(t,n)=>{i.setInProgressive(!0);const{reducedCube:r}=N,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()},j=(e,t)=>{if(P(t),i.renderPromise={resolve:e},t)F(e,_);else{const{reducedCube:t}=N,n=t.qDataPages;F(e,_),n.length&&c.all.includes(l)&&V(e,z)}},U=(t,r)=>{const o=n.getDataPages()[0].qMatrix.length,{lines:a,matrix:s}=O,l=a.length,u=a[0].points.length,d=NL(a),p=Math.ceil(u/d);let m=0;const f=()=>{i.mainTimer=requestAnimationFrame((()=>{if(null==e||!e.update)return void CL({progressiveRendering:i,meta:k});w();const a=m*l*d,u=Math.min(o,(m+1)*l*d),h=Math.max(a-l,0),g=u;k.pointProgressive={start:h,end:g,isFirst:0===m,isLast:g===o},k.lineProgressive={...k.pointProgressive};const v=[{...N.mainPages[0],qMatrix:s.slice(a,u)}];n.setDataPages(v),e.update({partialData:!0,excludeFromUpdate:c.duringMainProgressive}),I(),m++,m<p?f():r(t)}))};f()},H=(t,r)=>{const o=n.getDataPages()[0].qMatrix.length,{chunks:a}=O,s=a.length;let l=0,u=0;const d=()=>{i.mainTimer=requestAnimationFrame((()=>{if(null==e||!e.update)return void CL({progressiveRendering:i,meta:k});w();const p=Math.min(o,u+a[l].length);k.pointProgressive={start:u,end:p,isFirst:0===l,isLast:l===s-1},k.lineProgressive={...k.pointProgressive},u=p;const m=[{...N.mainPages[0],qMatrix:a[l]}];n.setDataPages(m),e.update({partialData:!0,excludeFromUpdate:c.duringMainProgressive}),I(),l++,l<s?d():r(t)}))};d()},$=(e,t)=>{i.setInProgressive(!0);const r=n.getDataPages();r.length?(bL(n,r,O,h,!0),h?U(e,t):H(e,t)):t(e)},B=(t,n)=>{const{reducedCube:r}=N,o=r.qDataPages[0].qMatrix.length,{lines:a,matrix:s}=O,l=a.length,u=a[0].points.length,d=NL(a),p=Math.ceil(u/d);let m=0;const f=()=>{i.reducedLineTimer=requestAnimationFrame((()=>{if(null==e||!e.update)return void CL({progressiveRendering:i,meta:k});D();const a=m*l*d,u=Math.min(o,(m+1)*l*d),h=Math.max(a-l,0),g=u;k.reducedLineProgressive={start:h,end:g,isFirst:0===m,isLast:g===o};const v=[{...N.reducedPages[0],qMatrix:s.slice(a,u)}];r.qDataPages=v,e.update({partialData:!0,excludeFromUpdate:c.duringReducedLineProgressive}),q(),m++,m<p?f():n(t)}))};f()},W=(t,n)=>{const{reducedCube:r}=N,o=r.qDataPages[0].qMatrix.length,{chunks:a}=L,s=a.length;let l=0,u=0;const d=()=>{i.reducedLineTimer=requestAnimationFrame((()=>{if(null==e||!e.update)return void CL({progressiveRendering:i,meta:k});D();const p=Math.min(o,u+a[l].length);k.reducedLineProgressive={start:u,end:p,isFirst:0===l,isLast:l===s-1},u=p;const m=[{...N.reducedPages[0],qMatrix:a[l]}];r.qDataPages=m,e.update({partialData:!0,excludeFromUpdate:c.duringReducedLineProgressive}),q(),l++,l<s?d():n(t)}))};d()},G=(e,t)=>{i.setInProgressive(!0);const{reducedCube:r}=N,o=r.qDataPages;o.length?(bL(n,o,L,h),h?B(e,t):W(e,t)):t(e)},Y=(e,t)=>{if(P(t),i.renderPromise={resolve:e},t)$(e,_);else{const{reducedCube:t}=N,n=t.qDataPages;$(e,_),n.length&&c.all.includes(l)&&G(e,z)}},K=(e,t)=>{p?j(e,t):Y(e,t)},X=({render:t,nodes:r})=>SL({chart:e,layoutService:n,progressiveRendering:i,meta:k,render:t,nodes:r,timerId:"highlighterTimer",progressiveId:"highlighterProgressive",shouldUseProgressive:A}),J=({render:t,nodes:r})=>SL({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||(CL({progressiveRendering:i,meta:k}),w(),D(),e.update({partialData:!0,excludeFromUpdate:c.forClearProgressive}),I(),q())};return{meta:k,exclude:c,getSelectionContext:()=>T?"lazySelection":"selection",shouldUseProgressive:A,isLargeNumVisiblePoints:()=>gL({layoutService:n,maxNumPoints:x,maxNumLines:C}),resetProgressive:e=>CL({progressiveRendering:i,isPartialUpdate:e,meta:k}),renderProgressive:K,brushPoints:({render:t,nodes:n})=>EL({chart:e,shouldUseProgressive:A,progressiveRendering:i,meta:k,render:t,nodes:n}),dimLines:J,highlightLines:X,setReducedCube:e=>{N.reducedCube=e},clear:Z}}({chart:S,layoutService:L,progressiveRendering:O,options:a}),q=function({layoutService:e}){const t=function({layoutService:e}){const t=e.meta.isDiscrete?LO:qO;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}),A=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=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}),P=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:zO(a),virtuals:l}}({layoutService:L}),R=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")||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=>{var n;const i=t.getHyperCubeValue("qMode"),r=t.getHyperCubeValue("qDimensionInfo"),o="K"===i&&r.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:r.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:VO({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:L,dataProcessorModel:q}),_=L.meta.isContinuous?ym.model({model:o,viewState:k,viewCache:T,layoutService:L,largeDataService:D,dataProcessorModel:q}):void 0;_&&_.update(L.getLayout());const z=bO({app:n,model:o,translator:f,picasso:C,localeInfo:u,theme:m,layoutService:L,reducedModel:R,legendModel:A,continuousModel:_}),F=iu({layoutService:L,viewState:k,colorModel:{settings:()=>z.getMain().getSettings(),resolveUIColor:e=>z.getMain().getPaletteColor(e)},chart:S,env:{translator:f},keys:{colorScale:xm.SCALE.MAIN.COLOR},isEnabled:()=>L.meta.dimensionCount<2});F.command.update();const V=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=>{var t,n;return null!==(t=null===(n=e.qAttrExprInfo)||void 0===n?void 0:n.filter((e=>-1!==RO.indexOf(e.id))))&&void 0!==t?t:[]})))}(t),{min:Math.min(...t.filter((e=>PO(e.qMin))).map((e=>e.qMin))),max:Math.max(...t.filter((e=>PO(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=>_O(e.qMinNeg))).map((e=>e.qMinNeg))),n.max=Math.max(...t[0].qSubNodes.filter((e=>_O(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:L,reducedModel:R,continuousModel:_,trendLineModel:F}),j=AO({layoutService:L,extremumModel:V,largeDataService:D}),U=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:p,viewCache:m}){const{POINT:f,LINE:h,BRUSH_HIGHLIGHTER:g,REDUCED_LINE:v}=xm.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}=r.meta,{virtuals:N}=s,k=[],O={main:k,reduced:k,legend:k,dataset:e.data("q")({key:xm.DATA.MAIN,data:r.getHyperCube(),config:{localeInfo:n,virtualFields:N}})};function L(){O.main=r.getDataPages(),r.setDataPages([])}function w(){r.setDataPages(O.main),O.main=k}const I=()=>{const e=t.component(xm.COMPONENT.OUT_OF_MIN_BOUNDS),n=e&&e.show();return!(!0!==p.chartAnimations||vO(r)>Nu.LARGE_NUM_POINTS_ANIMATIONS||E.isSizeChanging||E.isPartialUpdating||m.get("hasHiddenMinOobs")&&n||Hs.propertiesHaveChanged({viewCache:m,layout:r.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();L();const u=C?i.getInitialCube():o.query.getCube();M(u);const d=r.getHyperCube()===u;d||(O.reduced=u.qDataPages,u.qDataPages=k),E.isUsingLegendCube&&(O.legend=a.query.getDataPages(),a.command.setDataPages([]));const p=[{type:"q",key:xm.DATA.MAIN,data:r.getHyperCube(),config:{localeInfo:n,virtualFields:N}},{type:"q",key:xm.DATA.REDUCED,data:u,config:{localeInfo:n,virtualFields:N}},...c.getMain().getData()];E.isUsingLegendCube&&p.push({type:"q",key:xm.DATA.LEGEND,data:a.query.getCube(),config:{localeInfo:n,virtualFields:N}}),l.query.hasTrendLines()&&p.push({key:"trend",data:l.query.getData()}),s?t.update({data:p,settings:e}):t.layoutComponents({data:p,settings:e}),w(),d||(u.qDataPages=O.reduced,O.reduced=k),E.isUsingLegendCube&&(a.command.setDataPages(O.legend),O.legend=k),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:C,chart:S,localeInfo:u,continuousModel:_,layoutService:L,reducedModel:R,legendModel:A,fieldModel:P,trendLineModel:F,colorService:z,largeDataService:D,progressiveRendering:O,options:a,viewCache:T}),H=function({layoutService:e,dockService:t,themeService:n,flags:i}){const{LINE:r,POINT:o}=HO,a=n.getStyles(),s=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,flags:i}),l=t=>i.isEnabled("CLIENT_IM_3050")?e.getLayoutValue("components",[]).find((e=>e.key===t)):void 0,c={line:{getCurve:()=>(e,t)=>s({property:"lineCurve",defaultValue:r.CURVE.LINEAR,index:t}),getStrokeWidth:()=>(e,n)=>s({property:"lineThickness",defaultValue:"FULL"===t.meta.chart.mode?r.WIDTH.FULL.DEFAULT:r.WIDTH.LESS.DEFAULT,index:n}),getStrokeDasharray:()=>(e,t)=>{const n=s({property:"lineType",defaultValue:r.TYPE.SOLID,index:t});return n&&r.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,i=e.getLayoutValue(`qHyperCube.qMeasureInfo.${n}.forecast.lineType`);return i?r.TYPE[i.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,i,r,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===(i=l("axis"))||void 0===i||null===(i=i.axis)||void 0===i||null===(i=i.title)||void 0===i?void 0:i.fontFamily)&&void 0!==n?n:a.axis.title.fontFamily,fontSize:null!==(r=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!==r?r:a.axis.title.fontSize}}},label:{getStyle:()=>{var e,t,n,i,r,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===(i=l("axis"))||void 0===i||null===(i=i.axis)||void 0===i||null===(i=i.label)||void 0===i||null===(i=i.name)||void 0===i?void 0:i.fontFamily)&&void 0!==n?n:a.axis.label.name.fontFamily,fontSize:null!==(r=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!==r?r:a.axis.label.name.fontSize}}}},label:{getStyle:()=>{var e,t,n,i,r,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===(i=l("label"))||void 0===i||null===(i=i.label)||void 0===i||null===(i=i.value)||void 0===i?void 0:i.fontFamily)&&void 0!==n?n:a.label.value.fontFamily,fontSize:null!==(r=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!==r?r:a.label.value.fontSize}}},legend:{title:{getStyle:()=>{var e,t,n,i,r,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===(i=l("legend"))||void 0===i||null===(i=i.legend)||void 0===i||null===(i=i.title)||void 0===i?void 0:i.fontSize)&&void 0!==n?n:a.legend.title.fontSize,color:null!==(r=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!==r?r:a.legend.title.color}}},label:{getStyle:()=>{var e,t,n,i,r,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===(i=l("legend"))||void 0===i||null===(i=i.legend)||void 0===i||null===(i=i.label)||void 0===i?void 0:i.fontSize)&&void 0!==n?n:a.legend.label.fontSize,color:null!==(r=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!==r?r:a.legend.label.color}}}}};return{query:c}}({layoutService:L,dockService:I,themeService:w,flags:M}),$=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}=J.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(xm.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?uL:lL)({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:S,layoutService:L,chartModel:U,extremumModel:V,dockService:I,themeService:w}),B=ld({app:n,chart:S,embed:r,flags:M,layout:L.getLayout(),localeInfo:u,model:o,options:{direction:a.direction},picasso:C,translator:f}),W=pL({actions:b,chart:S,colorService:z,custom:B,fieldModel:P,layoutService:L,rtl:x,themeService:w,tickModel:$,translator:f,trendLineModel:F,viewState:k}),G=L.meta.isDiscrete?function({chart:e,actions:n,componentKey:i,enigmaModel:r,layoutService:o,dockService:a,trendLineModel:c,itemWidths:u,viewState:d,rtl:p,options:{definitionPath:m="/qHyperCubeDef",getRect:f,axisKey:h,renderer:g,areaBuffer:v,processDataPage:y=(()=>{})}={}}){const x=l(),b=function({qMode:e}){switch(e){case"S":default:return Kk;case"K":return Xk;case"T":return Jk}}({qMode:o.getHyperCubeValue("qMode")}),S=function({state:e,contains:t}){return e.set(Zk,[]),{add:t=>{const n=e.get(Zk);n.length=0,n.push(t)},getCurrent:()=>e.get(Zk)[0],getAll:()=>e.get(Zk),contains:n=>t(e.get(Zk)[0],n)}}({state:x,contains:b.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: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:i,trendLineModel:r=oO,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:iO({layoutService:i}),request:u({definitionPath:o}),process:rO(n),connectionless:i.meta.isSnapshot,processDataPage:a}),p=s(((e,{onProcessing:t,onData:n})=>{d(e,{onProcessing:t}).then((e=>n(e))).catch((e=>{if(e!==Uk)throw e}))}),Wk);return function(e,{onProcessing:t=Hk,onDataPage:n=Hk}={}){p(e,{onProcessing:t,onData:e=>{i.setDataPages(e?[e]:[]),r.command.update(),n(e)}})}}({dataStore:S,composition:b,enigmaModel:r,layoutService:o,trendLineModel:c,definitionPath:m,processDataPage:y}),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: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:i,dockService:r,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:i}=e.meta;if(t)return aO;if(!n)return sO;return i?dO:hO}({layoutService:i}),m=()=>"horizontal"===r.meta.major.orientation?t().width:t().height,f=e=>e?m()/e:0,h=(e,t)=>-(e-t)*f(t);return{getItems(){const n=i.getLayoutValue("dimensionAxis"),l=u({layoutService:i});return{inTotal:l,inView:gO({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($k/(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,h(n,i))),o=i?Math.abs(i*r/m()):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 h(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:m(),inTotal:n,inView:i,pixelOffset:e})},getArea:({itemOffset:e,items:t})=>d({getDataPages:n,layoutService:i,itemOffset:e,inView:t.inView,areaBuffer:l}),getScaleRange({offsets:e,items:t}){const o=p({getDataPages:n,layoutService:i,offsets:e,items:t,viewSize:m(),upperBound:h(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>=h(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:m}),h=()=>{const e=f.getItems();return n.set("items",e),e},g=({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=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:i,end:r}=n,a=1===t&&r?r-e.inView:i;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(),i=h(),o=g({pixelOffset:e,items:i}),a=f.getArea({itemOffset:o.start.item,items:i});if(y(a))return void((f.validate.offset({pixelOffset:e,items:i})||p.get("scrollOffset").start!==o.start.item)&&(n.set("finished",t),n.set("scaleRange",f.getScaleRange({offsets:o.start,items:i})),p.preventSet("viewRange",f.getViewRange({pixelOffset:o.start.pixel,items:i})),p.set("scrollOffset",{start:o.start.item,end:o.end.item})));p.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})),p.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=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=>{r(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"),i=f.convert.relativeToPixelOffset({relativeOffset:e,items:t});x(i)}}}({chart:e,componentKey:i,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(i){const r=t(i,`${e.refs.dataPages}`);r.length=0,r.push(n.getCurrent())}}({layoutService:o,dataStore:S}),N=function({chart:e,actions:t,componentKey:n,dockService:i,rtl:r,scroller:o}){return{gestures:[tO({chart:e,actions:t,componentKey:n,dockService:i,rtl:r,scroller:o})],native:{type:"native",events:{wheel:nO({chart:e,actions:t,componentKey:n,scroller:o})}}}}({chart:e,actions:n,componentKey:i,dockService:a,rtl:p,scroller:C});return{interactions:N,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:S,actions:b,componentKey:xm.COMPONENT.LINE,enigmaModel:o,layoutService:L,dockService:I,trendLineModel:F,itemWidths:AL,viewState:k,rtl:x,options:{axisKey:xm.COMPONENT.MAJOR_AXIS,renderer:C.renderer("svg")(),areaBuffer:L.meta.isTwoDimensional||q.query.getShouldProcess()?40:12,processDataPage:e=>q.command.processDataPage({dataPage:e})}}):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=xe.dimensionless(o),l=ys.getMeasureRefLines(o),c=ys.getDimensionRefLines(o,s),u=ys.getMeasureRefLineLabels(o),d=ys.getDimensionRefLineLabels(o,s);let p={},m={};const f=t=>{if(i){const n=e.getLayoutValue("qHyperCube.qDimensionInfo.0"),{qMin:i,qMax:r}=n;return ys.isOutOfRange({value:t,qMin:i,qMax:r})}return!1},h=t=>{if(!m[t])return!1;if(!n&&r){const n={valueInfo:m[t]},i="S"===e.getHyperCubeValue("qMode")?"qDataPages.0":"qStackedDataPages.0",r=e.getHyperCubeValue(i);return ys.isOutOfDataPages({label:n,dataPages:r})}return!0},g=()=>!(!c||!c.length)&&!c.every((t=>{const n=ys.getInputValue({refLineLayout:t,layoutService:e});return f(n)||h(n)})),v={isKMode:a,canBeContinuous:i,measureRefLines:l,dimensionRefLines:c,measureRefLineLabels:u,dimensionRefLineLabels:d,dimensionRefLineInfo:m,dimensionValuesInfo:p,query:{getRefLines:e=>ys.getRefLines(o,e),getRefLineLabels:e=>ys.getRefLineLabels(o,e)},update:()=>{m=v.dimensionRefLineInfo,g()&&(p=ys.getDimensionValuesInfo({layout:o,canBeContinuous:i,discreteModel:t,layoutService:e}),v.dimensionValuesInfo=p,c.forEach((t=>{const n=ys.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:G}),K=v({picassoInstance:C,plugins:c||[],pluginArgs:qL(L)});N({chartModel:U,colorService:z,continuousModel:_,customTooltipService:B,dataProcessorModel:q,disclaimerService:j,discreteModel:G,dockService:I,extremumModel:V,fieldModel:P,layoutService:L,legendModel:A,pluginService:K,reducedModel:R,refLineModel:Y,selectionService:y,styleModel:H,themeService:w,tickModel:$,tooltipService:W,trendLineModel:F,largeDataService:D})}),[d,a.direction,y,m.name(),f.language()]),E}({core:n}),r=function({core:e,services:t}){var n;const i=C(),r=x(),o=T(),a=N();(function({core:e}){M((()=>({getViewState(){var t;if(!e)return;const{chart:n,viewState:i}=e,r=n.component(xm.COMPONENT.LEGEND_CATEGORICAL);return{scrollOffset:i.get("scrollOffset"),zoom:i.get("zoom"),legendScrollOffset:null==r||null===(t=r._DO_NOT_USE_getInfo)||void 0===t?void 0:t.call(r).offset}}})),[e])})({core:e}),function({core:e,services:t}){E((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: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:r.get("scrollOffset"),zoom:r.get("zoom"),legendScrollOffset:be(i,xm.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=x(),n=()=>Date.now().toString()+Math.random(),[i,r]=b(n()),o={properties:void 0};return S((()=>{if(!t||!t.getEffectiveProperties||!e)return()=>{};const i=()=>{t.getEffectiveProperties().then((e=>{const t=oe(!0,{},e);if(!o.properties)return void(o.properties=t);const i=function(e,t){var n,i,r,o;const a={properties:!1,exclude:!1};if(e===t)return a;const s=oe(!0,{},e),l=oe(!0,{},t);return a.exclude=!Nd(null===(n=s.qHyperCubeDef)||void 0===n?void 0:n.qLayoutExclude,null===(i=l.qHyperCubeDef)||void 0===i?void 0:i.qLayoutExclude),null===(r=s.qHyperCubeDef)||void 0===r||delete r.qLayoutExclude,null===(o=l.qHyperCubeDef)||void 0===o||delete o.qLayoutExclude,a.properties=!Nd(s,l),a}(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===(null==t||null===(n=t.layoutService)||void 0===n||null===(n=n.meta)||void 0===n?void 0:n.isSnapshot)}),[l,c]=k((()=>{if(!e||!t)return Promise.resolve();const{flags:n}=e,{chartModel:s,colorService:l,continuousModel:c,customTooltipService:u,disclaimerService:d,extremumModel:p,layoutService:m,pluginService:f,reducedModel:h,selectionService:g,tooltipService:v,largeDataService:y}=t,{isContinuous:x,isSnapshot:b}=m.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:p,isSnapshot:m}=l.meta,f=t.viewState||{},h=m?l.getLayoutValue("snapshotData.content.chartData",{}):f;r.preventSet("scrollOffset",h.scrollOffset),r.preventSet("legendScrollOffset",h.legendScrollOffset||0),h.zoom&&r.preventSet("zoom",h.zoom);const{onZoomChange:g,onZoomIntercept:v}=ym.event;p&&r.onChanged("scrollOffset",(()=>{c.command.setDataPages([s.query.getCurrentDataPage()]),u.update(),o.command.updatePartial()}));d&&(r.intercept("zoom",v({viewCache:i})),r.onChanged("zoom",g({continuousDataModel:a,layoutService:l},o.command.updatePartial)))}({core:e,options:o,services:t});const S=[];return b||S.push(r.getEffectiveProperties()),x&&(y.clear(),S.push(c.initialFetch())),S.push(h.command.initialize()),Promise.all(S).then((async e=>{const t=e[0]||void 0;if(null!=t&&t.qHyperCubeDef){const e=function({app:e,model:t,properties:n,layoutService:i,flags:r}){const o=oe(!0,{},n),a=i.getLayout();return{shouldUpdate:()=>function({model:e,properties:t,layoutService:n,flags:i}){const r=n.getLayout(),o=Ic({enabledForecast:i.isEnabled("LINECHART_FORECAST")||kd(r),properties:t,layout:r});if(o)return!0;return function({model:e,properties:t,layoutService:n}){var i,r;const o=oe(!0,{},t);Od(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===(i=e.colorSupport)||void 0===i||null===(r=i.colorByUpdater)||void 0===r||r.call(i,t,"qHyperCubeDef.",l),function({properties:e,layoutService:t}){const{filteredFields:n}=t.meta;if(!(n.measures.length>0))return;const{mode:i}=e.color||{};if("byExpression"===i){var r;if("colorByExpression"===(null===(r=t.getLayout().qHyperCube.qMeasureInfo)||void 0===r||null===(r=r[0])||void 0===r||null===(r=r.qAttrExprInfo)||void 0===r||null===(r=r[0])||void 0===r?void 0:r.id))return;const{current:i,target:o}=function({properties:e,filtered:t}){const{qMeasures:n}=e.qHyperCubeDef||[],{current:i,target:r}=n.reduce(((e,n,i)=>{var r;return"colorByExpression"===(null===(r=n.qAttributeExpressions[0])||void 0===r?void 0:r.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===i)return;const a=e.qHyperCubeDef.qMeasures[i].qAttributeExpressions[0];e.qHyperCubeDef.qMeasures[i].qAttributeExpressions.splice(0,1),e.qHyperCubeDef.qMeasures[o].qAttributeExpressions.splice(0,0,a)}}({properties:t,layoutService:n}),pa.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:i,flags:r}),update:async()=>tl(a)?t.setProperties(n).then((()=>{e.clearUndoBuffer()})):el(t,o,n)}}({app:i,model:r,properties:t,layoutService:m,flags:n});if(e.shouldUpdate())return await e.update(),void a.pending();a.restore()}u.setProperties(t),v.expando.set("properties",t),await f.initialize(),await p.command.initialize(),await l.initialize(),d.initialize(),s.command.initialize();const{field:o}=l.getMain().getSettings();return g.setBrushAliases({colorField:o,useLegendCube:s.query.getIsUsingLegendCube(),legendAlias:`${xm.DATA.LEGEND}/${o}`}),{properties:t}}))}),[e,t,s]);if(c&&!c.isHandled)throw c;return l}({core:n,services:i});!function({core:e,services:t,bootstrapped:n}){const i=C(),r=A(),o=x(),s=T(),l=V(),c=F(),u=function({value:e,wait:t=100}){const n=b({}),[i,r]=b(e);return S((()=>{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=L(),p=async()=>{const{chartModel:l,colorService:u,discreteModel:p,layoutService:m,tickModel:f}=t,{isDiscrete:h}=m.meta,{viewCache:g}=e;if(!u.isInitia