@nebula.js/sn-scatter-plot
Version:
A scatter plot.
7 lines (6 loc) • 233 kB
JavaScript
/*
* @nebula.js/sn-scatter-plot v3.59.6
* Copyright (c) 2026 QlikTech International AB
* Released under the MIT license.
*/
System.register(["@nebula.js/stardust","qlik-chart-modules","picasso.js","picasso-plugin-q","hammerjs","qlik-chart-modules/react","react","@mui/material","qlik-object-conversion"],(function(e){"use strict";var t,n,i,o,a,r,s,l,c,u,d,p,m,h,g,y,f,x,b,v,M,S,E,A,C,T,L,w,N,I,D,k,O,P,q,R,z,_,V,H,B,F,j,U,$,X,W;return{setters:[function(e){t=e.useConstraints,n=e.useState,i=e.useLayout,o=e.useTranslator,a=e.useEffect,r=e.useAction,s=e.useElement,l=e.useOptions,c=e.useStaleLayout,u=e.useTheme,d=e.useModel,p=e.useRect,m=e.useSelections,h=e.useApp,g=e.useAppLayout,y=e.usePlugins,f=e.useEmbed,x=e.usePromise,b=e.onTakeSnapshot,v=e.useImperativeHandle},function(e){M=e.storage,S=e.cache,E=e.pointLabelComponent,A=e.getValue,C=e.trendlinesService,T=e.setValue,L=e.selectionService,w=e.colorService,N=e.tooltipService,I=e.layoutService,D=e.alternativeService,k=e.dockService,O=e.themeService,P=e.pluginService,q=e.createColor,R=e.debouncer,z=e.fontResolver},function(e){_=e.default},function(e){V=e.default},function(e){H=e.default},function(e){B=e.reactRenderer,F=e.axisTitleComponent,j=e.disclaimerComponent},function(e){U=e.default},function(e){$=e.styled,X=e.Button},function(e){W=e.default}],execute:function(){e("default",(function(e){const{flags:t}=e;return function(e){if(e&&e.get&&e.add){const t="properties.compression.providingOverviewOf";if(e.get(t)!==t)return;Object.keys(Lr).forEach((t=>{e.add(Lr[t])}))}}(e.translator),{qae:_a(e),ext:Cr(e),component(){const e=ze(),n=Di({core:e,flags:t}),i=Oa({core:e,models:n,flags:t});Pa({settings:i,models:n}),Tr({core:e,models:n})}}}));const Y={shapes:[{type:"path",attrs:{d:"M15.9488039,5.20769129 C16.0487326,6.70662306 15.3492311,8.30548361 14.050157,9.30477145 C12.651154,10.5039169 10.8524359,10.8037032 8.85386017,10.4039881 L7.3549284,10.0042729 L5.75606786,9.70448659 C5.75606786,9.90434416 5.65613907,10.0042729 5.4562815,10.2041305 C5.05656637,10.6038456 4.55692244,10.8037032 4.05727852,10.8037032 C3.75749217,10.8037032 3.45770582,10.7037744 3.15791946,10.6038456 C3.05799068,10.903632 3.15791946,11.2034184 3.45770582,11.7030623 C5.05656637,14.0014243 3.85742095,15.9000712 3.75749217,16 L2.2585604,15.3004985 C2.2585604,15.2005697 2.95806189,14.0014243 1.95877405,12.6024213 C1.6589877,12.0028486 1.15934378,11.0035608 1.55905891,10.0042729 C1.6589877,9.80441537 1.75891648,9.6045578 1.95877405,9.40470024 C1.6589877,8.90505631 1.55905891,8.30548361 1.85884527,7.7059109 C1.55905891,7.40612455 1.25927256,7.1063382 1.15934378,6.70662306 C0.859557424,5.90719279 0.959486209,4.5081898 1.6589877,3.30904439 C1.95877405,2.6095429 2.55834676,2.0099702 3.15791946,1.51032628 C3.95734974,0.91075357 4.95663758,0.610967217 6.15578299,0.311180864 C9.05371774,-0.388320626 11.9516525,0.111323295 13.9502282,1.61025506 C15.1493736,2.50961412 15.8488751,3.80868831 15.9488039,5.20769129 Z M13.0508691,8.10562604 C13.8502994,7.40612455 14.3499433,6.40683671 14.3499433,5.30762008 C14.2500145,4.20840345 13.550513,3.40897318 12.9509403,2.90932926 C12.1515101,2.40968533 11.252151,2.0099702 10.1529344,1.81011263 C8.95378895,1.61025506 7.75464354,1.71018384 6.45556935,1.91004141 C4.75678001,2.30975655 3.65756338,3.00925804 3.05799068,4.10847467 C2.55834676,5.00783373 2.65827554,5.90719279 2.75820433,6.20697914 C2.75820433,6.30690792 2.85813311,6.40683671 3.05799068,6.40683671 C3.15791946,6.40683671 3.25784825,6.40683671 3.35777703,6.40683671 C3.45770582,6.40683671 3.45770582,6.40683671 3.45770582,6.40683671 L3.5576346,6.40683671 L3.65756338,6.40683671 C4.65685123,6.40683671 5.4562815,6.90648063 5.85599664,7.80583969 L5.85599664,8.00569726 C6.35564056,8.10562604 7.05514205,8.30548361 7.75464354,8.50534118 L9.25357531,8.90505631 C10.0530056,9.0049851 10.7525071,9.0049851 11.4520086,8.80512753 C12.0515813,8.70519875 12.5512252,8.40541239 13.0508691,8.10562604 Z"}}]};function G(){const[e]=n({}),s=t(),l=function(e){const i=t(),[o,r]=n(!1),[s,l]=n({});return a((()=>()=>{l({})}),[]),a((()=>{i&&r(!i.select&&!i.active)}),[i]),{enabled:()=>o&&!e.getProgressive(),emit:(e,...t)=>s[e]?.forEach((e=>e(...t))),removeListener:(e,t)=>{const n=s[e]?.indexOf(t);n>-1&&s[e].splice(n,1)},removeAllListeners:e=>{s[e]=void 0},on:(e,t)=>{Array.isArray(s[e])?s[e].push(t):s[e]=[t]},getBrushOptions:e=>({orMode:"tap"===e})}}(e),c=function(){const e=t(),[s,l]=n(!1),[c,u]=n(!1),d=i(),p=o(),m=!!d.qSelectionInfo.qInSelections,h=!!d.qHyperCube?.qDimensionInfo?.[0]?.qIsOneAndOnlyOne;a((()=>{e&&l(!e.select&&!e.active)}),[e]);const g=e=>{u("boolean"==typeof e?e:!c)};return r((()=>({key:"lasso",label:p.get(c?"Tooltip.ToggleOffLassoSelection":"Tooltip.ToggleOnLassoSelection"),icon:Y,hidden:!s||!m||h,active:c,action:g})),[m,h,c,s]),{action:g,enabled:()=>s,active:()=>c}}();return e.zoom={enabled:()=>s&&!s.active},e.scroll={enabled:()=>s&&!s.active},e.interact={enabled:()=>s&&!s.active},e.tooltip={enabled:()=>s&&!s.passive},e.getProgressive=()=>e.progressive,e.setProgressive=t=>{e.progressive=t},e.lasso=c,e.select=l,e}const Z={click:"Tap",Click:"Tap",tap:"Tap",pan:"Pan",swipe:"Swipe",rotate:"Rotate",press:"Press",pinch:"Pinch"};function K(e){return Z[e]||e}function J(e){return function(t,n,i){let o,a,r,s,l=[],c=!0;function u(){"function"==typeof o.enable&&(o.enable=o.enable.bind(a)()),o.enable&&(o.gestures.forEach((t=>{t.options=t.options||{},void 0===t.options.enable&&(t.options.enable=!0),"function"==typeof t.options.enable&&(t.options.enable=t.options.enable.bind(a));const n=K(t.type);e&&e[n]&&(t.options.event=t.options.event||t.type.toLowerCase(),r=r||new e.Manager(i),r.add(new e[n](t.options)),Object.keys(t.events).forEach((e=>{t.events[e]=t.events[e].bind(a),r.on(e,t.events[e])})),l.push(t))})),o.gestures.forEach((t=>{const n=K(t.type);e&&e[n]&&(t.recognizeWith&&r.get(t.options.event).recognizeWith(t.recognizeWith.split(" ").filter((e=>""!==e))),t.requireFailure&&r.get(t.options.event).requireFailure(t.requireFailure.split(" ").filter((e=>""!==e))))})))}function d(){l.forEach((e=>{Object.keys(e.events).forEach((t=>{r.off(t,e.events[t])})),r.remove(e.options.event)})),l=[]}return{get key(){return s},set(e){!function(e){s=e.key,o=e,a={chart:t,mediator:n,settings:o},o.gestures=o.gestures||[],void 0===o.enable&&(o.enable=!0)}(e),d(),c&&u()},off(){c=!1,d()},on(){c=!0,0===l.length&&u()},destroy(){d(),r&&r.destroy(),r=null,a=null,o=null}}}}const Q={getGap(e,t){const n=e.position<t.position?e:t,i=e.position<t.position?t:e;return i.position-i.radius-(n.position+n.radius)},findSegmentPositionMeetMaxThenMin(e,t,n){const i=e.position+e.radius,o=e.position-Math.max(0,i-n),a=o-e.radius;return o+Math.max(0,t-a)},layoutPositionFromMin(e,t,n,i=0){const o=e.length-1;let a,r,s,l=t;for(let t=0;t<o;t++)a=e[t],r=e[t+1],s=(a.position+r.position)/2-i/2,a.position=Q.findSegmentPositionMeetMaxThenMin(a,l,s),l=a.position+a.radius+i;r.position=Q.findSegmentPositionMeetMaxThenMin(r,l,n)},adjustPositionFromMax(e,t,n,i=0){const o=e.length-1,a=Math.max(0,e[o].position+e[o].radius-n);if(0===a)return;let r,s,l,c,u=0;for(r=o;r>0&&(s=e[r],l=e[r-1],c=Math.max(0,Q.getGap(l,s)-i),c-=Math.max(0,u+c-a),u+=c,s.move=c,!(u>=a));r--);for(u<a&&(c=Math.max(0,l.position-l.radius-t),c-=Math.max(0,u+c-a),u+=c,l.move=c),u=0,r=0;r<=o;r++)s=e[r],u+=s.move||0,s.move=u,s.position-=u},createLayout(e,t,n,i=0){const o=e.map((e=>e.segment)),a=o.length-1;if(a<0)return[];if(0===a){const e=o[0];e.position=Q.findSegmentPositionMeetMaxThenMin(e,t,n)}else Q.layoutPositionFromMin(o,t,n,i),Q.adjustPositionFromMax(o,t,n,i);return e.filter((e=>{const i=Math.ceil(e.segment.position-e.segment.radius),o=e.segment.position+e.segment.radius;return i>=t&&o<=n}))}},ee={getTitle:e=>!1!==e.showValue?!1!==e.showLabel?`${e.text} ${e.valueString}`:e.valueString:!1!==e.showLabel?e.text:"",addLabelPositions(e,t,n){for(let i=0;i<e.length;i++){const o=e[i],{value:a}=o,r=t(a);o.center=r*n}e.sort(((e,t)=>e.center-t.center))},addLabelWidth(e,t){for(let n=0;n<e.length;n++){const i=e[n];i.totalWidth=t(i.title).width}},addLabelSizes(e,t,n,i){for(let o=0;o<e.length;o++){const a=e[o];a.width=Math.min(t,Math.max(...a.lines.map((e=>i(e).width)))),a.height=a.lines.length*n}},addLabelSegments(e,t){for(let n=0;n<e.length;n++){const i=e[n],{center:o}=i,a=i[t]/2;i.segment={position:o,radius:a}}},addLabelTitles(e,t,n){let i;for(let o=0;o<e.length;o++){const a=e[o],{value:r,valueLabel:s}=a;i=ee.hasEngineFormat(r,s,n)?s:t?t(r):r,a.valueString=`(${i})`,a.title=ee.getTitle(a)}},hasEngineFormat(e,t,n){if(void 0===e||void 0===t||e.toString()===t)return!1;if(!n)return!0;const i=`+-${n.qDecimalSep||""}${n.qThousandSep||""}`.replace(/[-[\]/{}()*+?.\\^$|]/g,"\\$&");return String(t).replace(new RegExp(`[0-9e${i}]`,"g"),"").length>0},reduceMaxNumLines({labels:e,min:t,max:n,gap:i,lineHeight:o,epsilon:a}){const r=e.length-1;if(r<0)return;let s,l;if([s]=e,s.cMin=t,0!==r){for(let t=0;t<r;t++)s=e[t],l=e[t+1],s.cMax=(s.center+l.center-i)/2,l.cMin=s.cMax+i;l.cMax=n;for(let t=0;t<e.length;t++){const n=e[t],i=Math.floor((Math.max(0,n.cMax-n.cMin)+a)/o),r=Math.min(i,n.maxNumLines);n.maxNumLines=Math.max(r,1)}}else s.cMax=n},resolveLabels:e=>e.map((e=>({...e,value:"function"==typeof e.value?e.value():e.value})))};function te(e){let t;if(void 0!==e&&e.data){const n=e.data()&&e.data().fields;t=n&&n[0]?n[0].formatter():null}return t}let ne;function ie(){ne=ne||document.createElement("canvas").getContext("2d")}const oe={measureTextWidth(e){ie();const{width:t}=ne.measureText(e);return t},lineWrap(e,t,n,i){let o,a;ie();const r=e?e.split(/\n+|\r+|\r\n/):[],s=[];let l,c,u,d,p=e?e.split(/\s+/):[],m=r[0];if("number"!=typeof t||t<=0)return[e];if("number"==typeof i&&r.length>=i)return r.slice(0,i);for(n&&(ne.font=n),a=0;a<r.length;a++){for(d=r[a],p=d.split(/\s+/),[m]=p,u="",o=1;o<p.length;o++)if(l=`${m} ${p[o]}`,c=oe.measureTextWidth(l),c>t&&("number"!=typeof i||i>s.length)?(s.push(m),m=p[o]):m=l,"number"==typeof i&&s.length>=i){u=p.slice(o+1).join(" ");break}"number"!=typeof i||s.length<i?s.push(m):s[Math.max(0,s.length-1)]=`${s[Math.max(0,s.length-1)]} ${m} ${u}`}return s},wordWrap(e,t,n,i,o){if(ie(),!e||!e.length)return[];n&&(ne.font=n);let a=[];const r=e.slice();let s,l,c,u;if(r.filter((e=>!!e)),"number"!=typeof t||t<0)return e.slice();for(u=0;u<r.length;u++)c=r[u],l=null,c.length<=1||oe.measureTextWidth(c)<=t?a.push(c):(s=oe.splitWord(c,t,void 0,i-a.length),s.length<=1?a.push(s[0]):(l=s.pop(),a=a.concat(s),r[u+1]?oe.measureTextWidth(`${l} ${r[u+1]}`)>t&&a.length+r.length-u<=i?r.splice(u+1,0,l):r[u+1]=`${l} ${r[u+1]}`:r.push(l)));return a.forEach(((e,t,n)=>{n[t]=e.trim()})),a.length>i?(a=a.splice(0,i),a[a.length-1]=oe.truncate(a[a.length-1],t,n,o).text):(c=a[a.length-1],c&&c.length>1&&oe.measureTextWidth(c)>t&&(a[a.length-1]=oe.truncate(c,t,n,o).text)),a},truncate(e,t,n,i="…"){ie();let o,a,r,s,l=e;const c=oe.measureTextWidth("i"),u=Math.ceil(t/c);if(n&&(ne.font=n),e&&t){if(oe.measureTextWidth(l)>t){for(o=Math.min(u,l.length);o>0;o--)if(a=l.substring(0,o-1),r=a.trim()+i,oe.measureTextWidth(r)<=t){s=l.substring(o-1),l=r;break}o||(s=l,l="…")}}else s=void 0;return{text:l,rest:s}},isNumber:e=>"number"==typeof e&&Number.isFinite(e),explodeWord(e,t,n,i){let o;ie();let a,r=e,s="",l=[];if(oe.isNumber(n)&&n<=1)return[e];const c=Math.ceil(t/i);for(o=Math.min(e.length,c);o>0&&(r=e.substring(0,o),a=e.substring(o-1,o)," "===a?r=e.substring(0,o-1):r+="-",s=e.substring(o),!(oe.measureTextWidth(r)<=t));o--);return(!o&&!r||oe.measureTextWidth(r)>t)&&(r=e.substring(0,1),s=e.substring(1)),l.push(r),s?(oe.measureTextWidth(s)>t?(s=oe.explodeWord(s,t,n-1,i),l=l.concat(s)):l.push(s),l.filter((e=>""!==e.trim()))):l},splitWord:(e,t,n,i)=>(ie(),e&&t?(n&&(ne.font=n),oe.explodeWord(e,t,i,Math.max(1,oe.measureTextWidth("i")))):[]),wrapText(e,t,n,i,o){let a;return Number.isNaN(t)||!t?[e]:(a=i>1?oe.lineWrap(e,t,n,i):[e],a=oe.wordWrap(a,t,n,i,o),a)},getFontHeight:e=>(ie(),e&&(ne.font=e),1.5*oe.measureTextWidth("m")),tokenize(e,t,n,i,o,a,r=1){ie(),t&&(ne.font=t);const s=oe.getFontHeight(),l=r*s;let c=[],u=0,d=[];if(a<s)return[];const p=a?Math.max(1,Math.floor(a/l)):i||1;return Array.isArray(i)?(i.forEach((e=>{u+=Number.isNaN(e)||e<=0||!e?0:e})),i.forEach((e=>{c.push(Number.isNaN(e)||e<=0||!e?p-u:e)}))):c=[Number.isNaN(i)||i<=0||!i?p:Math.min(p,i)],Array.isArray(e)?e.forEach(((e,n)=>{d.length<p&&(d=d.concat(oe.wrapText(e,o,t,c[n])))})):d=oe.wrapText(e,o,t,c[0],n),d}};function ae(e){return e.showValue?`… ${e.valueString}`:"…"}function re(e,t,n,i){for(let o=0;o<e.length;o++){const a=e[o];a.lines=oe.tokenize(a.title,t,ae(a),i,n),a.maxNumLines=a.lines.length}}const se={getLabelTooltip({title:e,font:t,ellipsis:n,maxNumLines:i,maxWidth:o}){const a=oe.tokenize(e,t,n,i,o),r=a.length;let s="";if(r){[s]=a;for(let e=1;e<r;e++)s=`${s}\n${a[e]}`}return s},getOobsTooltip({oobs:e,font:t,ellipsis:n,maxNumLines:i,maxWidth:o}){const a=e.map((e=>se.getLabelTooltip({title:e.title,font:t,ellipsis:`${n} ${e.valueString}`,maxNumLines:i,maxWidth:o}))),r=a.length;let s="";if(r){[s]=a;for(let e=1;e<r;e++)s=`${s}\n\n${a[e]}`}return s}};function le(e){const{fontFamily:t,fontSize:n,gap:i,maxWidth:o,maxNumLines:a,padding:r}=e,s=`normal ${n} ${t}`;return{fontFamily:t,fontSize:n,font:s,lineHeight:oe.getFontHeight(s),gap:i||12,maxLabelWidth:o||75,maxNumLines:a||1,padding:{top:r.top||0,bottom:r.bottom||0,left:r.left||0,right:r.right||0}}}function ce(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var ue,de;var pe=function(){if(de)return ue;de=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,i=Object.getOwnPropertyDescriptor,o=function(e){return"function"==typeof Array.isArray?Array.isArray(e):"[object Array]"===t.call(e)},a=function(n){if(!n||"[object Object]"!==t.call(n))return!1;var i,o=e.call(n,"constructor"),a=n.constructor&&n.constructor.prototype&&e.call(n.constructor.prototype,"isPrototypeOf");if(n.constructor&&!o&&!a)return!1;for(i in n);return void 0===i||e.call(n,i)},r=function(e,t){n&&"__proto__"===t.name?n(e,t.name,{enumerable:!0,configurable:!0,value:t.newValue,writable:!0}):e[t.name]=t.newValue},s=function(t,n){if("__proto__"===n){if(!e.call(t,n))return;if(i)return i(t,n).value}return t[n]};return ue=function e(){var t,n,i,l,c,u,d=arguments[0],p=1,m=arguments.length,h=!1;for("boolean"==typeof d&&(h=d,d=arguments[1]||{},p=2),(null==d||"object"!=typeof d&&"function"!=typeof d)&&(d={});p<m;++p)if(null!=(t=arguments[p]))for(n in t)i=s(d,n),d!==(l=s(t,n))&&(h&&l&&(a(l)||(c=o(l)))?(c?(c=!1,u=i&&o(i)?i:[]):u=i&&a(i)?i:{},r(d,{name:n,newValue:e(h,u,l)})):void 0!==l&&r(d,{name:n,newValue:l}));return d},ue}(),me=ce(pe);const he={getDefaultSettings:({size:e=10,fill:t="#999",alignment:n}={})=>({show:!0,type:"n-polygon",fill:t,stroke:"#000",strokeWidth:0,size:e,sides:3,startAngle:-90,alignment:n}),createOob({oob:e,dockValue:t,boxCenter:n,majorAxis:i,rendWidth:o,rendHeight:a,symbol:r}){let s,l,c;return"x"===i?(0===t?(s=e.size/2,c=180):(s=o-e.size/2,c=0),l=a*n):(0===t?(l=a-e.size/2,c=-90):(l=e.size/2,c=90),s=o*n),r(me({},e,{x:s,y:l,startAngle:c}))}},ge={filterOobLabels({labels:e,minValue:t,maxValue:n,slopeEnabled:i}){let o=e.filter((e=>e.value>=t));if(o=o.filter((e=>e.value<=n)),!i){const i=e.filter((e=>e.value<t)),a=e.filter((e=>e.value>n));return{filteredLabels:o,lowerOobs:i,upperOobs:a,numLowerOobs:i.length,numUpperOobs:a.length}}return{filteredLabels:o}},getOobSizes(e){let t,n=0;for(let i=1;i<10;i++)t=e(i),n=Math.max(n,Math.sqrt(t.width*t.width+t.height*t.height));return t=e("9+"),[n,Math.max(n,Math.sqrt(t.width*t.width+t.height*t.height))]},getCircleSize:(e,t)=>e>9?t[1]:t[0],createOobsInfo({labels:e,minValue:t,maxValue:n,orientation:i,style:o,padding:a,measureText:r}){const{lowerOobs:s,upperOobs:l,numLowerOobs:c,numUpperOobs:u,filteredLabels:d}=ge.filterOobLabels({labels:e,minValue:t,maxValue:n,slopeEnabled:!1}),p=ge.getOobSizes(r),m=ge.getCircleSize(c,p),h=ge.getCircleSize(u,p),[g,y]="vertical"===i?[a.top,a.bottom]:[a.left,a.right];return{filteredLabels:d,lowerOobs:s,upperOobs:l,lowerCircleSize:m,upperCircleSize:h,lowerOobSpace:c>0?g+o.oob.size+m:0,upperOobSpace:u>0?y+o.oob.size+h:0}},createOobs({alignment:e,dockValue:t,oobs:n,style:i,rect:o,symbol:a,position:r,area:s,radius:l,font:c}){const u=n?n.length:0;if(u<1)return[];const{majorAxis:d,minorAxis:p,minorDimension:m}=s,h=o[m];return[he.createOob({oob:he.getDefaultSettings({size:i.size,fill:i.fill,alignment:e}),dockValue:t,boxCenter:.5,majorAxis:d,rendWidth:o.width,rendHeight:o.height,symbol:a}),{type:"circle",r:l,stroke:"transparent",fill:i.text.background.fill,strokeWidth:0,[`c${p}`]:h/2,[`c${d}`]:r},{type:"text",text:u>9?"9+":u,title:se.getOobsTooltip({oobs:n,font:c,ellipsis:"…"}),dx:0,dy:0,maxWidth:h,width:h,fontSize:i.text.fontSize,fontFamily:i.text.fontFamily,fill:i.text.fill,baseline:"central",anchor:"middle",[p]:h/2,[d]:r}]}};var ye={require:["renderer","symbol"],defaultSettings:{layout:{displayOrder:0,prioOrder:0}},measureText(e){return this.renderer.measureText({text:e,fontSize:this.settings.style.label.fontSize,fontFamily:this.settings.style.label.fontFamily})},preferredSize(){const{scale:e}=this,{style:t,localeInfo:n}=this.settings,i=te(e),o=ee.resolveLabels(this.settings.labels);ee.addLabelTitles(o,i,n);const a=le(t.label),{dock:r}=this.settings.layout,{filteredLabels:s}=ge.filterOobLabels({labels:o,minValue:e.domain()[0],maxValue:e.domain()[1],slopeEnabled:!0});if(s){ee.addLabelWidth(s,this.measureText);const e=function(e,t,n){if("left"===t||"right"===t){const{padding:t,maxLabelWidth:i}=n,o=Math.max(...e.map((e=>e.totalWidth)));return Math.min(i,o)+t.left+t.right}const{padding:i,maxLabelWidth:o,maxNumLines:a,font:r,lineHeight:s}=n;let l=1;return Math.max(...e.map((e=>e.totalWidth)))>o&&(re(e,r,o,a),l=Math.max(...e.map((e=>e.lines.length)))),l*s+i.top+i.bottom}(s,r,a);return e}return 0},render(){const{scale:e,rect:t}=this,n=ee.resolveLabels(this.settings.labels);if(e.domain().length<=0||n.length<=0)return!1;const{dock:i}=this.settings.layout,{style:o,localeInfo:a}=this.settings,{fontSize:r,fontFamily:s,font:l,lineHeight:c,gap:u,maxLabelWidth:d,maxNumLines:p,padding:m}=le(o.label),h=te(e),{filteredLabels:g}=ge.filterOobLabels({labels:n,minValue:e.domain()[0],maxValue:e.domain()[1],slopeEnabled:!0});if(g.length>0){const n=function(e,t,n){return"left"===t||"right"===t?{orientation:"vertical",majorAxis:"y",majorDimension:"height",majorSize:e.height,minorAxis:"x",minorDimension:"width",minorCenter:(e.width-n.right-n.left)/2+n.left}:{orientation:"horizontal",majorAxis:"x",majorDimension:"width",majorSize:e.width,minorAxis:"y",minorDimension:"height",minorCenter:(e.height-n.top-n.bottom)/2+n.top}}(t,i,m),{orientation:o,majorAxis:y,majorDimension:f,majorSize:x,minorAxis:b,minorCenter:v}=n;ee.addLabelTitles(g,h,a),ee.addLabelPositions(g,e,x);const[M,S]=[0,x];re(g,l,d,p),"vertical"===o&&(ee.reduceMaxNumLines({labels:g,min:M,max:S,gap:u,lineHeight:c,epsilon:.05*u}),function(e,t,n){for(let i=0;i<e.length;i++){const o=e[i];o.lines.length>o.maxNumLines&&(o.lines=oe.tokenize(o.title,t,ae(o),o.maxNumLines,n))}}(g,l,d)),ee.addLabelSizes(g,d,c,this.measureText),ee.addLabelSegments(g,f);const E=Q.createLayout(g,M,S,u);let A=[];return E?.forEach(((e,t)=>{const{lines:n}=e,i=n.length,o=n.map(((n,o)=>{const a={fontSize:r,fontFamily:s,type:"text",text:n,title:se.getLabelTooltip({title:e.title,font:l,ellipsis:ae(e),maxNumLines:p,maxWidth:d}),dx:0,dy:0,maxWidth:d,width:d,fill:e.labelStroke??e.fill,baseline:"central",anchor:"middle",[b]:v,[y]:e.segment.position,labelID:`${y}-${t}`};return a.y+=(o-(i-1)/2)*c,a}));if(e.labelStroke){const t={type:"rect",[b]:v,[y]:e.segment.position,rx:3,ry:3,maxWidth:d,width:e.width+4,height:c*i+4,stroke:e.fill,fill:e.fill};t.x-=e.width/2+2,t.y-=i*c/2+2,A.push(t)}A=A.concat(o)})),A}return!1}};function fe(e,t){return e.x1<=t.x2&&t.x1<=e.x2&&e.y1<=t.y2&&t.y1<=e.y2}function xe(e,t){let{bounds:n}=t;const{x:i,y:o,r:a}=t,r=a*a;return n||(n={x1:i-a,x2:i+a,y1:o-a,y2:o+a},t.bounds=n),!!fe(e,n)&&(!!function(e,t){const{x1:n,x2:i,y1:o,y2:a}=e,{x:r,y:s}=t;return n<=r&&i>=r&&o<=s&&a>=s}(e,t)||(function(e,t){const{x1:n,x2:i,y1:o,y2:a}=t;return function(e,t,n){const i=(e.x-t.x)**2;return n.y<e.y?(n.y-e.y)**2+i:t.y>e.y?(t.y-e.y)**2+i:i}(e,{x:Math.abs(n-e.x)<Math.abs(i-e.x)?n:i,y:o},{y:a})}(t,e)<r||function(e,t){const{x1:n,x2:i,y1:o,y2:a}=t;return function(e,t,n){const i=(e.y-t.y)**2;return n.x<e.x?(n.x-e.x)**2+i:t.x>e.x?(t.x-e.x)**2+i:i}(e,{x:n,y:Math.abs(o-e.y)<Math.abs(a-e.y)?o:a},{x:i})}(t,e)<r))}function be({text:e,textWidth:t,maxWidth:n,measureText:i}){if(e="string"==typeof e?e:`${e}`,void 0===n)return e;if(t<=n)return e;let o=0,a=e.length-1;for(;o<=a;){const t=Math.floor((o+a)/2);i(e.substr(0,t)+"…").width<=n?o=t+1:a=t-1}return e.substr(0,a)+"…"}function ve({measureText:e,nodes:t,label:n,component:i}){const{width:o}=i.rect;return t.map((t=>{const i=n(t),a=e(i).width,{localBounds:r}=t,{x:s,y:l,width:c}=r,u=s+c/2,d=l-6;return{ellipsed:be({text:i,textWidth:a,maxWidth:2*Math.min(u,o-u),measureText:e}),cx:u,topRect:{y2:d},pointValue:t.data.value}}))}function Me({measureText:e,mode:t,nodes:n,label:i,labelHeight:o,component:a}){if(2===t)return{topLabels:ve({measureText:e,nodes:n,label:i,component:a}),bottomLabels:[]};const r=[],s=[],l=[],{width:c,height:u}=a.rect,d=n.map((t=>{const n=i(t),a=e(n).width,{localBounds:r}=t,{x:s,y:l,width:u,height:d}=r,p=s+u/2,m=2*Math.min(p,c-p),h=Math.min(a,m),g=p-h/2,y=p+h/2,f=l-o-6,x=l-6,b=be({text:n,textWidth:a,maxWidth:m,measureText:e});return{text:n,cx:p,topRect:{x1:g,y1:f,x2:y,y2:x},textWidth:a,maxWidth:m,ellipsed:b,isEllipsisChar:"…"===b,circle:{x:p,y:l+d/2,r:d/2,height:d},pointValue:t.data.value}}));return d.forEach((e=>{e.isEllipsisChar||((e=>{const{topRect:t}=e;return t.y1<0||r.some((e=>fe(t,e.topRect)))||d.some((e=>xe(t,e.circle)))})(e)?l.push(e):r.push(e))})),l.forEach((e=>{const{x1:t,x2:n,y1:i,y2:a}=e.topRect,l=e.circle.height+12+o;e.bottomRect={x1:t,x2:n,y1:i+l,y2:a+l};const c=(e=>{const{bottomRect:t}=e;return t.y2>u||r.some((e=>fe(t,e.topRect)))||s.some((e=>fe(t,e.bottomRect)))||d.some((e=>xe(t,e.circle)))})(e);c||s.push(e)})),{topLabels:r,bottomLabels:s}}var Se,Ee,Ae={require:["chart","renderer"],defaultSettings:{settings:{rtl:!1,label:()=>{},showLabel:()=>!0,target:{point:"point-component"},mode:1},style:{fontFamily:"QlikView Sans, sans-serif",fontSize:"12px",fill:"#333",backgroundColor:"yellow"}},preferredSize:()=>({edgeBleed:{top:0,bottom:0,right:0,left:0}}),render(){const{settings:e}=this.settings,{target:t,label:n,showLabel:i,mode:o,debugMode:a,maxVisibleBubblesForLabeling:r}=e,s=t.point,l=this.chart.component(s);if(!l||0===o)return[];const{rendererSettings:c={}}=l.settings,u="function"==typeof c.progressive&&c.progressive();if(u&&!u.isLast)return[];const d=(e=>[...e.findShapes("circle"),...e.findShapes("path")])(this.chart).filter((e=>e.key===s&&i(e))).reverse();if(!d.length||d.length>r)return[];const{fontSize:p,fontFamily:m,fill:h,backgroundColor:g}=this.style,y=e=>this.renderer.measureText({text:e,fontSize:p,fontFamily:m}),f=y("M").height-2,{topLabels:x,bottomLabels:b}=Me({measureText:y,mode:o,nodes:d,label:n,labelHeight:f,component:l}),v=x.map((e=>({type:"text",text:e.ellipsed,x:e.cx,y:e.topRect.y2,fontSize:p,fontFamily:m,fill:h,baseline:"text-after-edge",anchor:"middle",pointValue:e.pointValue}))),M=2!==o&&a?x.map((e=>({type:"rect",x:e.topRect.x1,y:e.topRect.y1,width:e.textWidth,height:f,fill:g,pointValue:e.pointValue}))):[],S=x.map((e=>({type:"line",x1:e.cx,x2:e.cx,y1:e.topRect.y2,y2:e.topRect.y2+5,stroke:h,strokeWidth:1,pointValue:e.pointValue}))),E=b.map((e=>({type:"text",text:e.ellipsed,x:e.cx,y:e.bottomRect.y1,fontSize:p,fontFamily:m,fill:h,baseline:"text-before-edge",anchor:"middle",pointValue:e.pointValue})));return[...M,...2!==o&&a?b.map((e=>({type:"rect",x:e.bottomRect.x1,y:e.bottomRect.y1,width:e.textWidth,height:f,fill:g,pointValue:e.pointValue}))):[],...v,...E,...S,...b.map((e=>({type:"line",x1:e.cx,x2:e.cx,y1:e.bottomRect.y1-5,y2:e.bottomRect.y1,stroke:h,strokeWidth:1,pointValue:e.pointValue})))]}},Ce={exports:{}},Te={};var Le=(Ee||(Ee=1,Ce.exports=function(){if(Se)return Te;Se=1;var e=U,t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,o=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a={key:!0,ref:!0,__self:!0,__source:!0};function r(e,n,r){var s,l={},c=null,u=null;for(s in void 0!==r&&(c=""+r),void 0!==n.key&&(c=""+n.key),void 0!==n.ref&&(u=n.ref),n)i.call(n,s)&&!a.hasOwnProperty(s)&&(l[s]=n[s]);if(e&&e.defaultProps)for(s in n=e.defaultProps)void 0===l[s]&&(l[s]=n[s]);return{$$typeof:t,type:e,key:c,ref:u,props:l,_owner:o.current}}return Te.Fragment=n,Te.jsx=r,Te.jsxs=r,Te}()),Ce.exports);function we({fill:e,path:t,width:n}){const i={fontSize:"28px",display:"inline-block",fontStyle:"normal",lineHeight:"0",textAlign:"center",textTransform:"none",verticalAlign:"-.125em",textRendering:"optimizeLegibility",WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",padding:(n-parseInt(28,10))/2+"px"};return Le.jsx("i",{style:i,children:Le.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",width:"1em",height:"1em",viewBox:"0 0 24 24",fill:e?e():"currentColor",pointerEvents:"none",children:Le.jsx("path",{d:t})})})}var Ne={DRILL_DOWN:"M15.9993744,3 L15.9993744,5 L4.99937445,5 L4.99937445,3 L15.9993744,3 Z M8.99937445,7 L15.9993744,7 L15.9993744,9 L8.99937445,9 L8.99937445,7 Z M11.9993744,11 L15.9993744,11 L15.9993744,13 L11.9993744,13 L11.9993744,11 Z M2.2,11 L7,11 L7,9.00369263 C7,8.89323568 7.08954305,8.80369263 7.2,8.80369263 C7.2549016,8.80369263 7.30738916,8.82626165 7.34515712,8.86610844 L10.1852182,11.8624926 C10.2583124,11.93961 10.258346,12.0604218 10.1852948,12.13758 L7.34523376,15.1373102 C7.2692928,15.2175206 7.14270711,15.2209817 7.06249671,15.1450407 C7.02260076,15.1072683 7,15.0547472 7,14.9998069 L7,12.9043747 C4.79351111,12.9043747 2.8018683,12.9266213 1.02507156,12.9711145 L1.02507252,12.9711526 C0.472939773,12.9849787 0.014139487,12.5485949 0.000313396522,11.9964622 C0.000104473692,11.988119 -1.32268838e-12,11.9797736 -1.3231638e-12,11.9714278 L-1.83320026e-12,3 L2,3 L2,10.8 C2,10.9104569 2.08954305,11 2.2,11 Z",LOCK:"M13,7 L8,7 L13,7 L13,4.98151367 C13,2.23029964 10.7614237,0 8,0 C5.23857625,0 3,2.23029964 3,4.98151367 L3,7 L3.75,7 L3,7 L4.5,7 L4.5,5.33193359 C4.5,3.21561511 5.54860291,1.5 8,1.5 C10.4513971,1.5 11.5,3.21561511 11.5,5.33193359 L11.5,7 L12.25,7 L3,7 C2.44771525,7 2,7.44771525 2,8 L2,15 C2,15.5522847 2.44771525,16 3,16 L13,16 C13.5522847,16 14,15.5522847 14,15 L14,8 C14,7.44771525 13.5522847,7 13,7 L3,7 L13,7 Z",TICK:"M6,10 L13,3 L15,5 L8,12 L6,14 L1,9 L3,7 L6,10 Z",TRIANGLE_DOWN:"M2.4,4 L13.6,4 C13.7104569,4 13.8,4.08954305 13.8,4.2 C13.8,4.24327404 13.7859644,4.28538077 13.76,4.32 L8.16,11.7866667 C8.09372583,11.8750322 7.96836556,11.8929408 7.88,11.8266667 C7.86483887,11.8152958 7.85137085,11.8018278 7.84,11.7866667 L2.24,4.32 C2.17372583,4.23163444 2.19163444,4.10627417 2.28,4.04 C2.31461923,4.01403557 2.35672596,4 2.4,4 Z",TRIANGLE_RIGHT:"M4,13.6 L4,2.4 C4,2.28954305 4.08954305,2.2 4.2,2.2 C4.24327404,2.2 4.28538077,2.21403557 4.32,2.24 L11.7866667,7.84 C11.8750322,7.90627417 11.8929408,8.03163444 11.8266667,8.12 C11.8152958,8.13516113 11.8018278,8.14862915 11.7866667,8.16 L4.32,13.76 C4.23163444,13.8262742 4.10627417,13.8083656 4.04,13.72 C4.01403557,13.6853808 4,13.643274 4,13.6 Z",HOME:"m 6.9922481,16.023902 0.026486,3.628553 3.7874679,0.02649 0.02648,-3.708011 z M 4.4496124,22.19509 4.5025844,12.024548 12.051034,6.3830749 19.49354,11.998062 19.52003,22.19509 h -2.383721 v -6.250646 l -3.760982,-0.02649 -0.07946,6.303617 z M 1.8540052,10.197028 12.104005,2.0129199 l 3.602067,2.9399225 0.05297,-1.748062 2.569121,0.026486 v 3.9728682 l 3.655039,2.9399224 -1.085917,1.218346 -8.819768,-6.8068472 -8.7932813,6.9657622 z",LEFT:"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z",RIGHT:"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",UP:"M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z",DOWN:"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z",ZOOM_IN:"M15.5,14L20.5,19L19,20.5L14,15.5V14.71L13.73,14.43C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.43,13.73L14.71,14H15.5M9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14M12,10H10V12H9V10H7V9H9V7H10V9H12V10Z",ZOOM_OUT:"M15.5,14H14.71L14.43,13.73C15.41,12.59 16,11.11 16,9.5A6.5,6.5 0 0,0 9.5,3A6.5,6.5 0 0,0 3,9.5A6.5,6.5 0 0,0 9.5,16C11.11,16 12.59,15.41 13.73,14.43L14,14.71V15.5L19,20.5L20.5,19L15.5,14M9.5,14C7,14 5,12 5,9.5C5,7 7,5 9.5,5C12,5 14,7 14,9.5C14,12 12,14 9.5,14M7,9H12V10H7V9Z"};const Ie=$(X,{})((({presentation:e})=>{const{rtl:t,vertical:n,horizontal:i,width:o}=e,a=t?"left":"right";return{position:"absolute",borderRadius:"2px",width:`${o}px`,height:`${o}px`,top:`${n}px`,[a]:`${i}px`,pointerEvents:"auto",color:"rgba(0, 0, 0, 0.54)","&:focus":{color:"#1A1A1A"}}}));function De({callback:e,title:t,disabled:n,presentation:i}){return Le.jsx(Ie,{"aria-label":t,disabled:n(),onClick:()=>e(),onTouchEnd:()=>e(),presentation:i,title:t,children:Le.jsx(we,{fill:()=>n()?"#E6E6E6":"currentColor",path:Ne[i.icon],width:i.width})})}var ke={renderer:"react-qcm",disableTriggers:!0,render(){const{callback:e,disabled:t,presentation:n,title:i,show:o}=this.settings.settings;return!(o&&!o())&&Le.jsx(De,{callback:e,title:i,disabled:t,presentation:n})}},Oe={require:["renderer"],defaultSettings:{style:{borderColor:"black",background:"red",borderRadius:"0px"},settings:{rect:{x:()=>100,y:()=>100,width:()=>100,height:()=>100}}},renderer:"dom",render(e){const{x:t,y:n,width:i,height:o}=this.settings.settings.rect,{borderColor:a,background:r,borderRadius:s}=this.settings.style;return[e("div",{style:{position:"relative",left:`${t()}px`,top:`${n()}px`,width:`${i()}px`,height:`${o()}px`,"background-color":r,"border-style":"solid","border-color":a,"border-width":"1px","border-radius":s}})]}},Pe={DATA:{MAIN:"qHyperCube",BIN:"binData"},SCALE:{COLOR:"color",X:"x",Y:"y",BIN_X:"binX",BIN_Y:"binY",HEAT_MAP_COLOR:"heat-map-color"},COMPONENT:{GRID_LINES:"grid-lines",REFERENCE_LINES_X:"reference-lines-x",REFERENCE_LINES_Y:"reference-lines-y",REFERENCE_LINE_LABELS_X:"reference-line-labels-x",REFERENCE_LINE_LABELS_Y:"reference-line-labels-y",POINT:"point-component",TOOLTIP:"tooltip",POINT_LABELS:"point-labels",LEGEND:"legend-color",LEGEND_CATEGORICAL:"legend-color-cat",LEGEND_CAT_TOOLTIP:"legend-cat-tooltip",LEGEND_HEAT_MAP:"legend-heat-map",X_AXIS:"x-axis",Y_AXIS:"y-axis",X_AXIS_TITLE:"x-axis-title",Y_AXIS_TITLE:"y-axis-title",HEAT_MAP:"heat-map",HEAT_MAP_LABELS:"heat-map-labels",HEAT_MAP_HIGHLIGHT:"heat-map-highlight",MINI_CHART_BACKGROUND:"mini-chart-background-rect",MINI_CHART_NAVIGATION:"mini-chart-navigation-rect",MINI_CHART_POINT:"mini-chart-points",OUT_OF_BOUNDS:"out-of-bounds",TRENDLINES:"trend-lines",NAVIGATION_PANEL:{HOME:"home-button",UP:"up-button",LEFT:"left-button",RIGHT:"right-button",DOWN:"down-button",ZOOM_IN:"zoom-in-button",ZOOM_OUT:"zoom-out-button"}},COLLECTION:{MAIN:"main-collection"},FORMATTER:{X:"x",Y:"y"},FIELDS:{DIM:"qDimensionInfo/0",X:"qMeasureInfo/0",Y:"qMeasureInfo/1",SIZE:"qMeasureInfo/2",BIN:"bin",BIN_X:"binX",BIN_Y:"binY",BIN_DENSITY:"binDensity"},BRUSH:{X_RANGE:"x-range-brush",Y_RANGE:"y-range-brush",BIN_X_RANGE:"bin-x-range-brush",BIN_Y_RANGE:"bin-y-range-brush"},REJECTION_TOKEN:"rejected"};var qe={require:["renderer","chart"],renderer:"canvas",render(){const{element:e}=this.chart,t=e.querySelector(`[data-key=${Pe.COMPONENT.HEAT_MAP}]`),n=this.renderer.element();if(!t||!n)return;const{width:i,height:o}=this.rect,a={x:0,y:0,w:i,h:o},{actions:r,dataView:s,rtl:l}=this.settings.settings,c=t.getContext("2d"),u=function(e={}){const t=e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(window.devicePixelRatio||1)/t}(c);let d;const p=n.getContext("2d");p.clearRect(0,0,i*u,o*u);const m=(e,t)=>{if(!d)return;p.clearRect(0,0,i*u,o*u);const{x:n,y:r,w:c,h:m}=function(e,t,n,i,o,a,r){let{x:s,y:l,w:c,h:u}=i;const{xAxisMin:d,xAxisMax:p,yAxisMin:m,yAxisMax:h}=n(),{min:g,max:y}=e;return"x"===t?(s=Number(r?(Math.abs((p-y)/(p-d))*o).toFixed(2):(Math.abs((g-d)/(p-d))*o).toFixed(2)),c=Number((Math.abs((y-g)/(p-d))*o).toFixed(2))):(l=Number((Math.abs((h-y)/(h-m))*a).toFixed(2)),u=Number((Math.abs((y-g)/(h-m))*a).toFixed(2))),{x:s,y:l,w:c,h:u}}(e,t,s,a,i,o,l);a.x=n,a.y=r,a.w=c,a.h=m,p.drawImage(d,n*u,r*u,c*u,m*u,n*u,r*u,c*u,m*u)};r.select.removeAllListeners("selectionStart"),r.select.removeAllListeners("binXRange"),r.select.removeAllListeners("binYRange"),r.select.removeAllListeners("binRangeHighlightClear"),r.select.removeAllListeners("binsRangeSelectionClear"),r.select.on("selectionStart",(async()=>{if(!d){t.style.opacity=1;const e=c.getImageData(0,0,t.width,t.height),n=e.data;for(let e=3,i=t.width*t.height*4;e<i;e+=4)n[e]=0===n[e]?0:255;d=await createImageBitmap(e)}})),r.select.on("binXRange",(e=>{m(e,"x")})),r.select.on("binYRange",(e=>{m(e,"y")})),r.select.on("binRangeHighlightClear",(()=>{d=void 0,p.clearRect(0,0,i*u,o*u)})),r.select.on("binsRangeSelectionClear",(()=>{p.clearRect(0,0,i*u,o*u),a.x=0,a.y=0,a.w=i,a.h=o}))}};function Re(){const e=_();return e.use(V),e.use(function(e){if("function"!=typeof e.interaction)return t=>{t.interaction("hammer",J(e))};e.interaction("hammer",J(Hammer))}(H)),e.renderer("react-qcm",B),e.component("axis-title",F),e.component("reference-line-labels",ye),e.component("point-label",Ae),e.component("disclaimer",j),e.component("mini-chart-window",Oe),e.component("button",ke),e.component("heat-map-highlight",qe),e.component("point-label-plugin",E),e}const ze=()=>{const e=s(),t=l(),i=G(),{viewState:o,viewCache:r}=function(){const[e,t]=n(),[i,o]=n();return a((()=>{t(M({dataView:{},legendScrollOffset:void 0})),o(S())}),[]),{viewCache:i,viewState:e}}(),[c,u]=n();return a((()=>{if(!o)return;e.style.overflow="hidden";const n=Re(),a=n({renderer:{prio:[t.renderer||"canvas"]}}),s=a.chart({element:e,data:[],settings:{}});return u({picassoInstance:a,chart:s,actions:i,viewState:o,viewCache:r,picasso:n,progressive:{timer:null,renderPromise:null}}),()=>{s.destroy()}}),[o]),c};var _e={REF_LABELS:{MAX_WIDTH:{X:100,Y:70},PADDING:{TOP:2,BOTTOM:2,START:4,END:2},GAP:{X:16,Y:10},MAX_NUM_LINES:3,OOB:{SIZE:8}},AXIS:{X:{PADDING:{END:4}},Y:{PADDING:{END:24}}},GRID_DISTANCE:{NARROW:50,MEDIUM:100,WIDE:200,FALLBACK:100},LEGEND_CAT:{SYMBOL:{SIZE:10}},LAYOUT_MODES:{FULL:{width:550,height:450},MEDIUM:{width:400,height:220},MEDIUM_NAV:{width:400,height:400},SMALL:{width:300,height:150},XSMALL:{width:150,height:75},SPARK:{width:0,height:0}},MAX_NR_SCATTER:1e3,LARGE_NUM_DATA_POINTS:5e3,DEFAULT_VISIBLE_BUBBLES:2500,MAX_VISIBLE_BUBBLES:5e4,CHUNK_SIZE:3e3,MINI_CHART:{RATIO:.15,PADDING:10},MAX_NR_ANIMATION:1e3,NAVIGATION_PANEL:{BUTTON_WIDTH:45},WINDOW_SIZE_BASE:300,DIAMETER_OVER_RADIUS:2,OOB_SPACE:10,OOB_SIZE:6};function Ve(e,t){return function({layout:e}){const n=!!e.snapshotData,i=!!A(e.qHyperCube,"qMeasureInfo.2"),o=A(e.qHyperCube,"qSize.qcy"),a=!t?.some((e=>"binningData"===e)),r=void 0===e.maxVisibleBubbles||e.maxVisibleBubbles<=0?_e.MAX_NR_SCATTER:Math.min(_e.MAX_VISIBLE_BUBBLES,Math.max(_e.MAX_NR_SCATTER,Math.ceil(e.maxVisibleBubbles))),s=a&&o>r,l=!t?.some((e=>"rangeSelections"===e)),c=Math.min(_e.LARGE_NUM_DATA_POINTS,r);return{isSnapshot:n,hasSizeMeasure:i,isBigData:s,isContinuous:!0,isRangeSelectionsSupported:l,isLargeNumDataPoints:!s&&o>c,maxVisibleBubbles:r,largeNumDataPoints:c,numDataPoints:o}}}function He(e,t,n,i,o){let a;return a=Math.abs(t-e)*o,Math.abs(n-e)<=a&&Math.abs(i-t)<=a}var Be={dataRelatedPropertiesPaths:["qHyperCube.qGrandTotalRow","qHyperCube.qHasOtherValues","qHyperCube.qSize","qHyperCube.qDimensionInfo[].qAttrDimInfo","qHyperCube.qDimensionInfo[].qAttrExprInfo","qHyperCube.qDimensionInfo[].qCardinalities","qHyperCube.qDimensionInfo[].qMax","qHyperCube.qDimensionInfo[].qMin","qHyperCube.qDimensionInfo[].qStateCounts","qHyperCube.qMeasureInfo[].qApprMaxGlyphCount","qHyperCube.qMeasureInfo[].qAttrExprInfo","qHyperCube.qMeasureInfo[].qMax","qHyperCube.qMeasureInfo[].qMin","qHyperCube.qMeasureInfo[].qTrendLines","qHyperCube.qTreeNodesOnDim"]};function Fe(e){const{qHyperCube:t,...n}=e,{qDataPages:i,qStackedDataPages:o,qTreeDataPages:a,...r}=t,s=me(!0,{},{...n,qHyperCube:{...r,qDataPages:null,qStackedDataPages:null,qTreeDataPages:null}}),{dataRelatedPropertiesPaths:l}=Be;return l.forEach((e=>{const t=e.split("[");if(1===t.length)void 0!==A(s,e)&&T(s,e,null);else{const e=t[0],n=t[1].split("].")[1];A(s,e,[]).forEach((e=>{void 0!==A(e,n)&&T(e,n,null)}))}})),s}function je({viewCache:e,layout:t}){const n=Fe(t);e.set("dataIndependentProperties",JSON.stringify(n))}function Ue({chart:e,localeInfo:t,layoutService:n,largeDataService:i,colorService:o,viewState:a,viewCache:r,extremumModel:s,dataHandler:l,trendLinesService:c,actions:u,progressive:d,getCurrentYTicks:p,getYTicks:m,options:h}){const g=[Pe.COMPONENT.X_AXIS_TITLE,Pe.COMPONENT.Y_AXIS_TITLE,Pe.COMPONENT.MINI_CHART_POINT],y=[Pe.COMPONENT.X_AXIS_TITLE,Pe.COMPONENT.Y_AXIS_TITLE,Pe.COMPONENT.MINI_CHART_POINT,Pe.COMPONENT.POINT_LABELS,Pe.COMPONENT.X_AXIS,Pe.COMPONENT.Y_AXIS,Pe.COMPONENT.GRID_LINES],f=function({viewState:e,extremumModel:t}){const{xAxisMax:n,xAxisMin:i}=t.query.getXExtrema(),{yAxisMax:o,yAxisMin:a}=t.query.getYExtrema(),r={homeStateDataView:{xAxisMax:n,xAxisMin:i,yAxisMax:o,yAxisMin:a},scale:1,maxScale:2**4.1,minScale:2**-20.1,checkScale:2**-9.1,isHomeState:!0};let s=!1;const l={getDataView:()=>e.get("dataView"),setDataView(n){const{xAxisMin:i,xAxisMax:o,yAxisMin:a,yAxisMax:s}=n,{xAxisMin:l,xAxisMax:c,yAxisMin:u,yAxisMax:d}=r.homeStateDataView,p=1e-4;He(i,o,l,c,p)&&He(a,s,u,d,p)?(r.isHomeState=!0,t.command.updateExtrema(r.homeStateDataView,r.isHomeState),r.scale=1,e.set("dataView",r.homeStateDataView)):(r.isHomeState=!1,t.command.updateExtrema(n,r.isHomeState),r.scale=(o-i)/(c-l),e.set("dataView",n))},getMeta:()=>r,setMeta(e){me(!0,r,e)},setInteractionInProgress:e=>{s=e},getInteractionInProgress:()=>s,transform:()=>{if(s){const{deltaX:e,deltaY:t,scale:n}=l.getDataView();return{horizontalScaling:n||1,verticalScaling:n||1,horizontalSkewing:0,verticalSkewing:0,horizontalMoving:e,verticalMoving:t}}return!1}};return l}({extremumModel:s,viewState:a}),x={key:Pe.DATA.MAIN,data:n.getHyperCube(),config:{localeInfo:t}},b={isPrelayout:!0,isPartialUpdating:void 0,isSizeChanging:void 0,isDataViewUnchanged:void 0,progressive:!1};let v=[];function M(){v=n.getDataPages(),n.setDataPages([])}function S(){n.setDataPages(v)}function E(){b.visiblePoints=function({layoutService:e,viewHandler:t}){const{xAxisMin:n,xAxisMax:i,yAxisMin:o,yAxisMax:a}=t.getDataView(),r=e.getDataPages(),{qMatrix:s}=r[0]||{};return s?s.filter((e=>{const t=e[1].qNum,r=e[2].qNum;return t>=n&&t<=i&&r>=o&&r<=a})):[]}({layoutService:n,viewHandler:f}),b.numVisiblePoints=b.visiblePoints.length,b.isLargeNumVisibleBubbles=b.numVisiblePoints>n.meta.largeNumDataPoints}function A(){null!==d.timer&&(cancelAnimationFrame(d.timer),d.timer=null,d.renderPromise?.resolve(),d.renderPromise=null)}function C(){u.setProgressive(!1),b.progressive=!1,A(),e.update({partialData:!0,excludeFromUpdate:g}),E()}const T=t=>{A(),d.renderPromise={resolve:t},u.setProgressive(!1);const i=n.getDataPages();if(!i.length)return;const o=i[0].qMatrix.length,a=Math.ceil(o/_e.CHUNK_SIZE);if(a<=1)return C(),void t();u.setProgressive(!0),E();let r=0;const s=()=>{d.timer=requestAnimationFrame((()=>{if(!e?.update)return void A();M();const i=r*_e.CHUNK_SIZE,l=Math.min(o,(r+1)*_e.CHUNK_SIZE);b.progressive={start:i,end:l,isFirst:0===r,isLast:r===a-1};const c=[{...v[0],qMatrix:v[0].qMatrix.slice(i,l)}];n.setDataPages(c),e.update({partialData:!0,excludeFromUpdate:0===r||r===a-1?g:y}),S(),r++,r<a?s():requestAnimationFrame((()=>{b.progressive=!1,u.setProgressive(!1),d.timer=null,t()}))}))};s()};function L(e=!1){return b.isPartialUpdating=!0,c.update(),e||!i.shouldUseProgressive()?(C(),Promise.resolve()):new Promise((e=>{T(e)}))}const w=()=>[{type:"q",...x},...l.getMeta().isBinnedData?[{key:Pe.DATA.BIN,type:"matrix",data:l.binArray,config:{parse:{fields:()=>[{key:Pe.FIELDS.BIN,title:"Bin"},{key:Pe.FIELDS.BIN_X,title:"X"},{key:Pe.FIELDS.BIN_Y,title:"Y"},{key:Pe.FIELDS.BIN_DENSITY,title:"Density"}],row:e=>({bin:e.qElemNumber,binX:(e.qText[0]+e.qText[2])/2,binY:(e.qText[1]+e.qText[3])/2,binDensity:e.qNum})}}}]:[],...o.getData(),...c.getData()],N=({settings:t}={})=>(A(),b.progressive=!1,b.isPartialUpdating=void 0===t,c.update(),i.shouldUseProgressive()?(M(),e.update({data:w(),settings:t}),S(),r.set("isBigData",n.meta.isBigData),je({viewCache:r,layout:n.getLayout()}),new Promise((e=>{T(e)}))):(e.update({data:w(),settings:t}),E(),r.set("isBigData",n.meta.isBigData),je({viewCache:r,layout:n.getLayout()}),Promise.resolve()));let I=!1;const D=()=>{const e=f.getDataView(),{xAxisMin:t,xAxisMax:n,yAxisMin:i,yAxisMax:o}=f.getMeta().homeStateDataView,a=n-.1*(n-t),r=t+.1*(n-t),s=o-.1*(o-i),l=i+.1*(o-i);return e.xAxisMax<=a||e.xAxisMin>=r||e.yAxisMax<=s||e.yAxisMin>=l};let k=!1;const O=[];a.onChanged("dataView",(()=>{if(k=((e,t,n)=>{if("function"==typeof t&&n){const i=e.formatters()[Pe.SCALE.Y],o=t()?.filter((e=>!e.isMinor));if(!o)return!1;const a=n().filter((e=>!e.isMinor)),r=Math.max(...o.map((e=>i(e.value).toString().length)));return Math.max(...a.map((e=>i(e.value).toString().length)))>r}return!1})(e,p,m),f.getInteractionInProgress())return O.push(k),void L(!0);const t=k||O.filter((e=>e)).length>0,n=l.getMeta().isBinnedData;l.fetch().catch((()=>{})).finally((()=>{const i=e.component(Pe.COMPONENT.MINI_CHART_POINT)&&D(),o=!I&&i||I&&!i;I=i,n!==l.getMeta().isBinnedData||o||t||f.getMeta().isHomeState?N():L(!1)})),O.length=0}));const P={query:{getViewState:()=>a,getViewHandler:()=>f,getDataHandler:()=>l,getLocaleInfo:()=>t,getAutoFormatPattern:e=>function(e,t,n){if(!n)return"";let i,o;if(e===Pe.SCALE.X?({xAxisMin:i,xAxisMax:o}=t.getMeta().homeStateDataView):({yAxisMin:i,yAxisMax:o}=t.getMeta().homeStateDataView),!Number.isFinite(i)||!Number.isFinite(o))return!1;let a="";const r=Math.floor(Math.log10(Math.abs(i))),s=Math.floor(Math.log10(Math.abs(o))),l=Math.min(Math.abs(r),Math.abs(s)),c=Math.abs(o-i),u=Math.floor(Math.log10(Math.abs(c/50)));let d=Math.abs(u);const p=n.qThousandSep||!1,m=n.qDecimalSep||".";if(0===c)return"0".concat(m,"##");let h;if(u>=0?d=Math.max(2,l-u):(h=(l-l%3)*(s<0?1:-1),d-=h),a+=p?"#".concat(p,"##0"):"0",d){a+=m;for(let e=0;e<d;e++)a+="#"}return a}(e,f,t),getMeta:()=>b,animationsEnabled:()=>{const e=f.getInteractionInProgress(),t=n.getHyperCubeValue("qSize.qcy",0);return!(!1===h.chartAnimations||e||b.isPartialUpdating||b.isSizeChanging||b.isDataViewUnchanged||i.shouldUseProgressive()||n.meta.isBigData!==r.get("isBigData")||!n.meta.isBigData&&t>_e.MAX_NR_ANIMATION||function({viewCache:e,layout:t}){const n=Fe(t);return e.get("dataIndependentProperties")!==JSON.stringify(n)}({viewCache:r,layout:n.getLayout()}))},miniChartEnabled:D,getChart:()=>e,areSameVisiblePoints:()=>function(e){if(!e)return!1;if(e.length<2)return!0;const t=e[0],n=t[1].qNum,i=t[2].qNum;return e.every((e=>e[1].qNum===n&&e[2].qNum===i))}(b.visiblePoints)},command:{setMeta(e){me(b,e)},layoutComponents:({settings:t}={})=>{e.layoutComponents({data:w(),settings:t}),b.isPrelayout=!1},update:N,brush:({render:t,nodes:n})=>{A();const i=Math.ceil(n.length/_e.CHUNK_SIZE);if(i<=1)return void t(n);let o=0;const a=()=>{d.timer=requestAnimationFrame((()=>{if(!e?.update)return void A();const r=o*_e.CHUNK_SIZE,s=Math.min(n.length,(o+1)*_e.CHUNK_SIZE);b.progressive={start:r,end:s,isFirst:0===o,isLast:o===i-1},t(n.slice(r,s)),o++,o<i?a():(b.progressive=!1,d.timer=null)}))};a()}}};return P}function $e(e,t){return null==e||null==t?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Xe(e,t){return null==e||null==t?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function We(e){let t,n,i;function o(e,i,o=0,a=e.length){if(o<a){if(0!==t(i,i))return a;do{const t=o+a>>>1;n(e[t],i)<0?o=t+1:a=t}while(o<a)}return o}return 2!==e.length?(t=$e,n=(t,n)=>$e(e(t),n),i=(t,n)=>e(t)-n):(t=e===$e||e===Xe?e:Ye,n=e,i=e),{left:o,center:function(e,t,n=0,a=e.length){const r=o(e,t,n,a-1);return r>n&&i(e[r-1],t)>-i(e[r],t)?r-1:r},right:function(e,i,o=0,a=e.length){if(o<a){if(0!==t(i,i))return a;do{const t=o+a>>>1;n(e[t],i)<=0?o=t+1:a=t}while(o<a)}return o}}}function Ye(){return 0}const Ge=We($e).right;We((function(e){return null===e?NaN:+e})).center;const Ze=Math.sqrt(50),Ke=Math.sqrt(10),Je=Math.sqrt(2);function Qe(e,t,n){const i=(t-e)/Math.max(0,n),o=Math.floor(Math.log10(i)),a=i/Math.pow(10,o),r=a>=Ze?10:a>=Ke?5:a>=Je?2:1;let s,l,c;return o<0?(c=Math.pow(10,-o)/r,s=Math.round(e*c),l=Math.round(t*c),s/c<e&&++s,l/c>t&&--l,c=-c):(c=Math.pow(10,o)*r,s=Math.round(e/c),l=Math.round(t/c),s*c<e&&++s,l*c>t&&--l),l<s&&.5<=n&&n<2?Qe(e,t,2*n):[s,l,c]}function et(e,t,n){return Qe(e=+e,t=+t,n=+n)[2]}function tt(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function nt(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function it(e,t){var n=Object.create(e.prototype);for(var i in t)n[i]=t[i];return n}function ot(){}var at=.7,rt=1/at,st="\\s*([+-]?\\d+)\\s*",lt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ct="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",ut=/^#([0-9a-f]{3,8})$/,dt=new RegExp(`^rgb\\(${st},${st},${st}\\)$`),pt=new RegExp(`^rgb\\(${ct},${ct},${ct}\\)$`),mt=new RegExp(`^rgba\\(${st},${st},${st},${lt}\\)$`),ht=new RegExp(`^rgba\\(${ct},${ct},${ct},${lt}\\)$`),gt=new RegExp(`^hsl\\(${lt},${ct},${ct}\\)$`),yt=new RegExp(`^hsla\\(${lt},${ct},${ct},${lt}\\)$`),ft={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function xt(){return this.rgb().formatHex()}function bt(){return this.rgb().formatRgb()}function vt(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=ut.exec(e))?(n=t[1].length,t=parseInt(t[1],16),6===n?Mt(t):3===n?new Ct(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===n?St(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===n?St(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=dt.exec(e))?new Ct(t[1],t[2],t[3],1):(t=pt.exec(e))?new Ct(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=mt.exec(e))?St(t[1],t[2],t[3],t[4]):(t=ht.exec(e))?St(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=gt.exec(e))?Dt(t[1],t[2]/100,t[3]/100,1):(t=yt.exec(e))?Dt(t[1],t[2]/100,t[3]/100,t[4]):ft.hasOwnProperty(e)?Mt(ft[e]):"transparent"===e?new Ct(NaN,NaN,NaN,0):null}function Mt(e){return new Ct(e>>16&255,e>>8&255,255&e,1)}function St(e,t,n,i){return i<=0&&(e=t=n=NaN),new Ct(e,t,n,i)}function Et(e){return e instanceof ot||(e=vt(e)),e?new Ct((e=e.rgb()).r,e.g,e.b,e.opacity):new Ct}function At(e,t,n,i){return 1===arguments.length?Et(e):new Ct(e,t,n,null==i?1:i)}function Ct(e,t,n,i){this.r=+e,this.g=+t,this.b=+n,this.opacity=+i}function Tt(){return`#${It(this.r)}${It(this.g)}${It(this.b)}`}function Lt(){const e=wt(this.opacity);return`${1===e?"rgb(":"rgba("}${Nt(this.r)}, ${Nt(this.g)}, ${Nt(this.b)}${1===e?")":`, ${e})`}`}function wt(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Nt(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function It(e){return((e=Nt(e))<16?"0":"")+e.toString(16)}function Dt(e,t,n,i){return i<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t