ui-widget-toolkit
Version:
UI widgets built on top of D3, Pixi.js and ag-grid-community
1 lines • 24.5 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("d3")):"function"==typeof define&&define.amd?define("UWT",["d3"],t):"object"==typeof exports?exports.UWT=t(require("d3")):e.UWT=t(e.d3)}(window,(function(e){return function(e){var t={};function a(i){if(t[i])return t[i].exports;var s=t[i]={i:i,l:!1,exports:{}};return e[i].call(s.exports,s,s.exports,a),s.l=!0,s.exports}return a.m=e,a.c=t,a.d=function(e,t,i){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(a.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)a.d(i,s,function(t){return e[t]}.bind(null,s));return i},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=62)}({1:function(e,t,a){"use strict";function i(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function s(e){return function(t,a){return i(e(t),a)}}function r(e){return e||(e=i),1===e.length&&(e=s(e)),{left:function(t,a,i,s){for(null==i&&(i=0),null==s&&(s=t.length);i<s;){var r=i+s>>>1;e(t[r],a)<0?i=r+1:s=r}return i},right:function(t,a,i,s){for(null==i&&(i=0),null==s&&(s=t.length);i<s;){var r=i+s>>>1;e(t[r],a)>0?s=r:i=r+1}return i}}}Object.defineProperty(t,"__esModule",{value:!0}),t.getSelectionName=function(e){return"number"==typeof e?"n"+e:e?(e.length>0&&!isNaN(Number(e[0]))&&(e="z"+e),e=e.replace(/[\*\%\#\[\]\/\>\<\s\+\(\)\;\@\:\?\"=.,]/g,"-")):""},t.removeFromList=function(e,t){if(e){let a=t.indexOf(e);-1!==a&&t.splice(a,1)}},t.bisect=r,t.bucketData=function(e,t,a){let i=r().right,s=[];for(let e=0;e<t.length-1;++e)s[e]=[];let o=t[0],l=t[t.length-1],n=t.slice(1);for(let t=0;t<e.length;++t){let r=a(e[t]);r<o||r>l||s[i(n,r)].push(e[t])}let u={};for(let e=0;e<t.length-1;++e){u[t[e]+"-"+t[e+1]]=s[e]}return u},t.copy=function(e){let t={};for(let a in e)t[a]=e[a];return t},t.merge=function(e,t){for(let a in t)e[a]=t[a]},t.convertTraceToTrees=function(e){let t=[],a=[],i=[];for(let s=0;s<e.length;s++){let r=e[s],o=a[a.length-1];for(;a.length&&r.x>o.x+o.dx;)--a.length,--i.length,o=a[a.length-1];let l=i[i.length-1],n={key:r.key,value:r.dx,children:[],parent:l};r.name&&(n.name=r.name),l?l.children.push(n):t.push(n),a.push(r),i.push(n)}return t};t.SimpleBuffer=class{constructor(e){this._data=e||[]}push(e){this._data.push(e)}get(e){return this._data[e]}length(){return this._data.length}getData(){return this._data}};t.RingBuffer=class{constructor(e){this._data=new Array(e),this._startIdx=0,this._count=0,this._isRotating=!1}push(e){this._isRotating?(this._data[this._startIdx]=e,++this._startIdx,this._startIdx===this._count&&(this._startIdx=0),this._isRotating=!0):this._count===this._data.length-1?(this._data[this._count]=e,++this._count,this._isRotating=!0):(this._data[this._count]=e,++this._count)}get(e){return this._isRotating&&(e+=this._startIdx)>=this._count&&(e-=this._count),this._data[e]}length(){return this._count}getData(){if(this._isRotating){let e=[];for(let t=this._startIdx;t<this._data.length;++t)e.push(this._data[t]);for(let t=0;t<this._startIdx;++t)e.push(this._data[t]);return e}return this._data}},t.bisectBuffer=function(e){return e||(e=i),1===e.length&&(e=s(e)),{left:function(t,a,i,s){for(null==i&&(i=0),null==s&&(s=t.length());i<s;){var r=i+s>>>1;e(t.get(r),a)<0?i=r+1:s=r}return i},right:function(t,a,i,s){for(null==i&&(i=0),null==s&&(s=t.length());i<s;){var r=i+s>>>1;e(t.get(r),a)>0?s=r:i=r+1}return i}}},t.transposeKeys=function(e){let t={};function a(e,i,s,r){let o=[];for(let e=0;e<i.length;++e)o[e]=i[e];if(o.push(s.key),Array.isArray(s.data))for(let t=0;t<s.data.length;++t)a(e,o,s.data[t],r+1);else{let a=e;for(let e=o.length-1;e>=0;--e){let i,r=o[e];t.hasOwnProperty(r)?i=t[r]:(i=a.length,t[r]=i),a[i]||(a[i]={key:r,data:[]}),0===e?a[i].data=s.data:a=a[i].data}}}let i=[];for(let t=0;t<e.length;++t)a(i,[],e[t],0);return i},t.runFunctionOnLeaf=function e(t,a){if(t&&t.children&&t.children.length>0)for(let i=0;i<t.children.length;++i)e(t.children[i],a);else a(t)},t.isOverlapping=function(e,t){return e.x<=t.right&&e.right>=t.x&&e.y<=t.bottom&&e.bottom>=t.y}},11:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=a(23),s=a(1);t.findFirstInsertionIdx=s.bisectBuffer((function(e){return e.x})).left,t.findLastInsertionIdx=s.bisectBuffer((function(e){return e.x})).right;t.XYDummyDecimator=class{constructor(){this._values=[]}initialize(e,t,a){}getKey(){return""}getName(){return""}getValues(){return this._values}decimateValues(e,t,a){return Array.isArray(a)?a.forEach(e=>{this._values.push(e.getData())}):this._values=a.getData(),this._values}};class r{constructor(){this._name="Simple Unimplemented Decimator"}initialize(e,t,a){this._xValueToCoord=e,this._xCoordToValue=t,this._yValueToCoord=a}getKey(){return this._key}getName(){return this._name}getValues(){return this._decimatedValues}decimateValues(e,a,i){if(this._decimatedValues=[],0===i.length())return this._decimatedValues;let s,r,o=t.findFirstInsertionIdx(i,e),l=t.findLastInsertionIdx(i,a);o>0&&--o,l<i.length()&&++l,o<i.length()&&(s=Math.floor(this._xValueToCoord(i.get(o).x)),--s),r=e?Math.floor(this._xValueToCoord(e)):Math.floor(this._xValueToCoord(i.get(o).x));let n,u=o;for(let e=o;e<l;++e){let t=i.get(e),a=Math.floor(this._xValueToCoord(t.x));n=e,a!==s&&(this._decimatedValues=this._decimatedValues.concat(this._customFunc(i,u,n,this._yValueToCoord,this._xValueToCoord,this._xCoordToValue(r),this._xCoordToValue(a))),r=a,s=a,u=n)}return u!==i.length()&&(this._decimatedValues=this._decimatedValues.concat(this._customFunc(i,u,n+1,this._yValueToCoord,this._xValueToCoord,this._xCoordToValue(r),Number.MAX_VALUE))),this._decimatedValues}}t.CustomPointXYDecimator=r;class o extends r{constructor(){super(),this._key=o.KEY,this._name="Min",this._customFunc=function(e,t,a,i){if(e.length()>0&&t!==a){let i,s=Number.MAX_VALUE;for(let r=t;r<a;++r){let t=e.get(r),a=t.y;a<s&&(i=t,s=a)}return[i]}return[]}}}function l(e,t,a,s){if(e.length()>0&&t!==a){let s=0;for(let i=t;i<a;++i){s+=e.get(i).y}return[new i.XYValue(e.get(a-1).x,s/(a-t))]}return[]}t.MinPointDecimator=o,o.KEY="MinPointDecimator";class n extends r{constructor(){super(),this._key=n.KEY,this._name="Avg",this._customFunc=l}}t.AvgPointDecimator=n,n.KEY="AvgPointDecimator";class u extends r{constructor(){super(),this._key=u.KEY,this._name="Max",this._customFunc=function(e,t,a,i){if(e.length()>0&&t!==a){let i,s=-Number.MAX_VALUE;for(let r=t;r<a;++r){let t=e.get(r),a=t.y;a>s&&(i=t,s=a)}return[i]}return[]}}}t.MaxPointDecimator=u,u.KEY="MaxPointDecimator";class c extends r{constructor(){super(),this._key=c.KEY,this._name="XYPointDecimator",this._customFunc=function(e,t,a,i){let s={},r=[];for(let o=t;o<a;++o){let t=e.get(o),a=Math.floor(i(t.y));s.hasOwnProperty(a.toString())||(r.push(t),s[a]=!0)}return r}}}t.XYPointDecimator=c,c.KEY="XYPointDecimator";class h{constructor(){this._name="Simple Unimplemented Decimator"}initialize(e,t,a){this._xValueToCoord=e,this._xCoordToValue=t,this._yValueToCoord=a}getKey(){return this._key}getName(){return this._name}getValues(){return this._decimatedValues}decimateValues(e,a,i){if(this._decimatedValues=[],0===i.length())return this._decimatedValues;let s,r,o=t.findFirstInsertionIdx(i,e),l=t.findLastInsertionIdx(i,a);o>0&&--o,l<i.length()&&++l,o<i.length()&&(s=Math.floor(this._xValueToCoord(i.get(o).x)),--s),r=e?this._xValueToCoord(e):o;let n=o;for(let e=o;e<l;++e){let t=i.get(e),a=Math.floor(this._xValueToCoord(t.x)),o=e+1;a!==s&&(this._decimatedValues=this._decimatedValues.concat(this._customFunc(i,n,o,this._yValueToCoord,this._xValueToCoord,this._xCoordToValue(r),this._xCoordToValue(a))),r=a,s=a,n=o)}return n!==i.length()&&(this._decimatedValues=this._decimatedValues.concat(this._customFunc(i,n,n+1,this._yValueToCoord,this._xValueToCoord,this._xCoordToValue(r),Number.MAX_VALUE))),this._decimatedValues}}t.CustomContinuousXYDecimator=h;class d extends h{constructor(){super(),this._key=d.KEY,this._name="Avg",this._customFunc=l}}function m(e,a,i,s,r,o){let l=[],n=[],u=Math.ceil(e(Number.MAX_VALUE));if(u<0)return;let c=[];for(let e=0;e<=u+1;++e)c.push(a(e));for(let a=0;a<o.length;++a){let i,h,d=o[a],m=t.findFirstInsertionIdx(o[a],s),_=t.findLastInsertionIdx(o[a],r);m>0&&--m,_===d.length()&&--_,n[a]=Array.apply(null,Array(u)).map(Number.prototype.valueOf,0);for(let t=m;t<_;++t){i=d.get(t),h=d.get(t+1);let o=Math.floor(e(i.x)),l=Math.floor(e(h.x)),u=h.x-i.x,m=0===u?0:h.y/u;if(o===l)if(void 0===s||i.x>s&&h.x<r)n[a][o]+=m;else{let e=1/(c[o+1]-c[o]);h.x<r?n[a][o]+=(h.x-c[o])*m*e:n[a][o]+=(c[o+1]-i.x)*m*e}else{let e=1/(c[o+1]-c[o]),t=s?Math.max(s,i.x):i.x,u=c[o+1];n[a][o]+=(u-t)*m*e;for(let e=o+1;e<l;++e)n[a][e]+=m;e=1/(c[l]-c[l-1]);let d=r?Math.min(r,h.x):h.x,_=c[l];n[a][l]+=(d-_)*m*e}}l[a]=[];let x=n[a];for(let e=0;e<x.length;++e)l[a][e]={x:c[e],y:n[a][e]}}return l}t.AvgContinuousDecimator=d,d.KEY="AvgContinuousDecimator",t.sumMultiXYSeriesValues=m;class _{constructor(){}initialize(e,t,a){this._xValueToCoord=e,this._xCoordToValue=t,this._yValueToCoord=a}getKey(){return _.KEY}getName(){return""}getValues(){return this._decimatedValues}decimateValues(e,t,a){return this._decimatedValues=m(this._xValueToCoord,this._xCoordToValue,this._yValueToCoord,e,t,a),this._decimatedValues}}t.SummedValueMultiXYSeriesDecimator=_,_.KEY="SummedValueMultiXYSeriesDecimator";class x extends _{constructor(){super()}getKey(){return x.KEY}getName(){return""}decimateValues(e,t,a){this._decimatedValues=m(this._xValueToCoord,this._xCoordToValue,this._yValueToCoord,e,t,a);for(let e=0;e<this._decimatedValues[0].length;++e){let t=0;for(let a=0;a<this._decimatedValues.length;++a)this._decimatedValues[a][e].y&&(t+=this._decimatedValues[a][e].y);if(t>0){let i=100/t;for(let t=0;t<a.length;++t)this._decimatedValues[t][e].y&&(this._decimatedValues[t][e].y=this._decimatedValues[t][e].y*i)}}return this._decimatedValues}}t.ResidencyDecimator=x,x.KEY="ResidencyDecimator";class V{constructor(){}initialize(e,t,a){this._xValueToCoord=e,this._xCoordToValue=t,this._yValueToCoord=a}getKey(){return V.KEY}getName(){return""}getValues(){return this._decimatedValues}decimateValues(e,t,a){return this._decimatedValues=m(this._xValueToCoord,this._xCoordToValue,this._yValueToCoord,e,t,[a])[0],this._decimatedValues}}t.SummedValueXYSeriesDecimator=V,V.KEY="SummedValueXYSeriesDecimator";class f extends i.CandlestickValue{constructor(e){super(e,void 0,void 0,void 0,void 0),this._bucketPts=0}}t.NEWSDecimationValue=f;class g{initialize(e,t,a){this._xValueToCoord=e,this._xCoordToValue=t,this._yValueToCoord=a}getKey(){return this._key}getName(){return""}getValues(){return this._buckets}_dumpBucket(e,t,a){let i="valuesInBucket = "+a.toFixed(0)+", ";return i+="([avg]Time delta, avgValue) = ("+(t.x-e).toFixed(2)+", "+t.y.toFixed(2)+"), ",i+="(entry, min, max, exit) = ("+t.entry.toFixed(2)+", "+t.min.toFixed(2)+", "+t.max.toFixed(2)+", "+t.exit.toFixed(2)+")",i}decimateValues(e,t,a){throw"Error need to implement decimate code"}}t.NEWSBaseDecimator=g;class y extends g{constructor(){super(),this._key=y.KEY}createNewBucket(e,t){e.entry=t.y,e.exit=t.y,e.min=t.y,e.max=t.y,e.x=0,e.y=0,e._bucketPts=0,this.addToBucket(e,t)}addToBucket(e,t){e.x+=t.x,e.y+=t.y,e.min=Math.min(e.min,t.y),e.max=Math.max(e.max,t.y),e.exit=t.y,e._bucketPts++}finalizeBucket(e,t){void 0!==t&&t!==e._bucketPts&&console.log("AverageTime: mismatching pt calculation"),0===e._bucketPts&&console.log("AverageTime: 0 points"),e.x=e.x/e._bucketPts,e.y=e.y/e._bucketPts}decimateValues(e,a,i){if(this._buckets=[],0===i.length())return this._buckets;let s,r=t.findFirstInsertionIdx(i,e),o=t.findLastInsertionIdx(i,a);r>0&&--r,o<i.length()&&++o;let l=0;r<i.length()&&(l=Math.floor(this._xValueToCoord(i.get(r).x)),--l);for(let e=r;e<o;++e){let t=i.get(e),a=Math.floor(this._xValueToCoord(t.x));a!==l?(s&&(this.finalizeBucket(s),this._buckets.push(s)),s=new f,this.createNewBucket(s,t),l=a):this.addToBucket(s,t)}return s&&(this.finalizeBucket(s),this._buckets.push(s)),this._buckets}}t.NEWSPointDecimator=y,y.KEY="NEWSPointDecimator";class p extends g{constructor(e){super(),this._weightedSums={},this._prevX=0,this._prevX=0,this._key=p.KEY,e&&(this._states=e)}createNewBucket(e,t){let a;this._weightedSums={},e._bucketPts=0,this._isYObject||(a=t.y,e.x=0,e.y=a,e.entry=a,e.exit=a,e.min=a,e.max=a),this.addToBucket(e,t)}addToStateValueToBucket(e,t){0!==t&&(this._weightedSums[e]||(this._weightedSums[e]=0),this._weightedSums[e]+=t)}addToBucket(e,t){if(this._isYObject)if(this._states)for(let e in t.y)this.addToStateValueToBucket(this._states[e],(t.x-this._prevX)*t.y[e]);else for(let e in t.y)this.addToStateValueToBucket(e,(t.x-this._prevX)*t.y[e]);else{let a;a=this._states?this._states[t.y]:t.y,e.exit=a,this.addToStateValueToBucket(a,t.x-this._prevX)}e.x+=t.x,e._bucketPts++,this._prevX=t.x}finalizeBucket(e,t){var a;void 0!==t&&t!==e._bucketPts&&console.log("AverageTime: mismatching pt calculation"),0===e._bucketPts&&console.log("AverageTime: 0 points"),e.x=e.x/e._bucketPts;var i=-Number.MAX_VALUE;let s=-Number.MAX_VALUE,r=Number.MAX_VALUE;for(let t in this._weightedSums){if(void 0!==this._weightedSums[t]){let e=this._weightedSums[t];e>i&&(a=t,i=e)}let o=this._yValueToCoord(t);o>s&&(e.min=t,s=o),o<r&&(e.max=t,r=o)}void 0!==a?e.y=a:this._isYObject||(e.min=e.y,e.max=e.y)}decimateValues(e,a,i){if(this._buckets=[],0===i.length())return this._buckets;let s,r=t.findFirstInsertionIdx(i,e),o=t.findLastInsertionIdx(i,a);r>0&&--r,o<i.length()&&++o;let l=0;r<i.length()&&(this._isYObject="object"==typeof i.get(r).y,l=Math.floor(this._xValueToCoord(i.get(r).x)),--l);for(let e=r;e<o;++e){let t=i.get(e),a=Math.floor(this._xValueToCoord(t.x));if(a!==l){if(s&&(this.finalizeBucket(s),this._buckets.push(s)),l+1<a){let e=new f;this.createNewBucket(e,t),this.finalizeBucket(e),e.x=this._xCoordToValue(a-1),this._buckets.push(e),this._prevX=e.x}s=new f,this.createNewBucket(s,t),l=a}else this.addToBucket(s,t)}return s&&(this.finalizeBucket(s),this._buckets.push(s)),this._buckets}}t.NEWSStateDecimator=p,p.KEY="NEWSStateDecimator";class T{initialize(e,t,a){this._data=[],this._xValueToCoord=e,this._xCoordToValue=t,this._yValueToCoord=a}getKey(){return T.KEY}getName(){return""}getValues(){return this._data}setRectLimit(e){return this._rectLimit=e,this}decimateValues(e,t,a){this._data=[];let i=a.getData();for(let e=0;e<i.length;++e)this._data=this._data.concat(i[e]);return this._rectLimit&&(this._data.sort((function(e,t){return e.traceValue.dx>t.traceValue.dx?-1:e.traceValue.dx<t.traceValue.dx?1:0})),this._data=this._data.splice(0,this._rectLimit)),this._data}}t.FlameChartRectLimitDecimator=T,T.KEY="FlameChartRectLimitDecimator";class C{constructor(){this._minRectDelta=1}initialize(e,t,a){this._data=[],this._xValueToCoord=e,this._xCoordToValue=t,this._yValueToCoord=a}getKey(){return C.KEY}getName(){return""}getValues(){return this._data}setPixelWidth(e){return this._minRectDelta=e-1,this}setUserPixelFunction(e){this._userPixelFunction=e}mergeRects(e){let t=[],a=Math.ceil(this._xValueToCoord(Number.MAX_VALUE))+1,i=[];for(let e=0;e<=a;++e)i.push(this._xCoordToValue(e));let s=0;a>1&&(s=this._xCoordToValue(1)-this._xCoordToValue(0));for(let a=0;a<e.length;++a){let r=e[a];if(void 0===r)continue;let o,l,n,u=[],c=-Number.MAX_VALUE,h=r.length;for(let e=0;e<h;e++){let t,a=r[e];if(o&&o.traceValue.key===a.traceValue.key&&o.traceValue.x+o.traceValue.dx===a.traceValue.x)o.traceValue.dx+=a.traceValue.dx;else{if(l=Math.floor(this._xValueToCoord(a.traceValue.x)),c>l&&(l=c),n=Math.floor(this._xValueToCoord(a.traceValue.x+a.traceValue.dx)),n-l>this._minRectDelta)t={traceValue:{x:i[l],dx:i[n]-i[l],key:a.traceValue.key,name:a.traceValue.name,desc:a.traceValue.desc},decimatedValues:[a.traceValue],depth:a.depth};else{let o={},u=[];for(c=l+this._minRectDelta,a.traceValue.x<i[l]?o[a.traceValue.name]=a.traceValue.x+a.traceValue.dx-i[l]:o[a.traceValue.name]=a.traceValue.dx,u.push(a.traceValue),++e;e<h;++e){if(a=r[e],Math.floor(this._xValueToCoord(a.traceValue.x))>=c){--e;break}if(u.push(a.traceValue),o.hasOwnProperty(a.traceValue.name)||(o[a.traceValue.name]=0),a.traceValue.x+a.traceValue.dx>i[c]){o[a.traceValue.name]+=i[c]-a.traceValue.x,--e;break}o[a.traceValue.name]+=a.traceValue.dx}let d=u[u.length-1];if(1===u.length)t={traceValue:{x:i[l],dx:i[n]-i[l],key:d.key,name:d.name,desc:d.desc},decimatedValues:u,depth:a.depth};else{let e,r=0;for(let t in o){let a=o[t];a>r&&(e=t,r=a)}t={traceValue:{x:i[l],dx:c<i.length?i[c]-i[l]:i[l]+s,key:"merged",name:e,desc:d.desc},decimatedValues:u,depth:a.depth}}}u.push(t),o=t}}o=void 0;let d=0,m=!0;for(let e=0;e<u.length;++e){m=!0;let a=u[e];a.traceValue.dx<s&&(a.traceValue.dx=s),this._userPixelFunction&&(a=this._userPixelFunction(a)),o&&o.traceValue.key===a.traceValue.key&&o.traceValue.name===a.traceValue.name&&(d=o.traceValue.x+o.traceValue.dx,d>=a.traceValue.x&&(o.traceValue.dx=a.traceValue.x+a.traceValue.dx-o.traceValue.x,o.decimatedValues.concat(a.decimatedValues),m=!1)),m&&(t.push(a),o=a)}}return t}decimateValues(e,t,a){return this._data=this.mergeRects(a.getData()),this._data}}t.FlameChartMergeRectDecimator=C,C.KEY="FlameChartMergeRectDecimator";class M{initialize(e,t,a,i){this._decimatedValues=[],this._xValueToCoord=e,this._xCoordToValue=t,this._yValueToCoord=a,this._states=i}getKey(){return M.KEY}getName(){return""}getValues(){return this._decimatedValues}decimateValues(e,a,i){this._decimatedValues=new Array(this._states.length).fill(0).map(()=>new Array);let s=Math.ceil(this._xValueToCoord(Number.MAX_VALUE));if(s<0)return;let r,o,l={},n={};this._states.forEach((e,t)=>{n[e]=t,l[e]=Array.apply(null,Array(s)).map(Number.prototype.valueOf,0)});let u=t.findFirstInsertionIdx(i,e),c=t.findLastInsertionIdx(i,a);u>0&&--u;let h=[];for(let e=0;e<=s;++e)h.push(this._xCoordToValue(e));let d=1/(h[1]-h[0]);for(let t=u;t<c;++t){r=i.get(t),o=r.x+r.dx;let s=Math.floor(this._xValueToCoord(r.x)),n=Math.floor(this._xValueToCoord(o));if(s===n)l[r.name][s]+=r.dx*d;else{let t=e?Math.max(e,r.x):r.x,i=h[s+1];l[r.name][s]+=(i-t)*d;for(let e=s+1;e<n;++e)l[r.name][e]+=1;let u=a?Math.min(a,o):o,c=h[n];l[r.name][n]+=(u-c)*d}}let m=[];for(let e=0;e<s;++e)m[e]={x:h[e],y:0};for(let e=0;e<this._states.length;++e){let t=l[this._states[e]];if(t)for(let a=0;a<t.length;++a){let t=l[this._states[e]][a]?l[this._states[e]][a]:0;this._decimatedValues[e][a]={x:h[a],y:100*t}}else this._decimatedValues[e]=m}return this._decimatedValues}}t.TraceResidencyDecimator=M,M.KEY="TraceResidencyDecimator";class k{initialize(e,t,a,i){this._decimatedValues=[],this._xValueToCoord=e,this._xCoordToValue=t,this._yValueToCoord=a,this._states=i}getKey(){return k.KEY}getName(){return""}getValues(){return this._decimatedValues}decimateValues(e,a,i){let s,r,o=Math.ceil(this._xValueToCoord(Number.MAX_VALUE));if(o<0)return;let l=t.findFirstInsertionIdx(i,e),n=t.findLastInsertionIdx(i,a);l>0&&--l,this._decimatedValues=[];for(let e=0;e<=o;++e)this._decimatedValues[e]=new f(this._xCoordToValue(e));let u={};this._states.forEach((e,t)=>{u[e]=t});for(let e=l;e<n;++e){s=i.get(e),r=s.x+s.dx;let t=Math.floor(this._xValueToCoord(s.x)),a=Math.floor(this._xValueToCoord(r));if(this._decimatedValues[t].entry||(this._decimatedValues[t].entry=u[s.name],this._decimatedValues[t].exit=u[s.name],this._decimatedValues[t].min=u[s.name],this._decimatedValues[t].max=u[s.name]),t===a)this._decimatedValues[t].exit=u[s.name],this._decimatedValues[t].min=Math.min(this._decimatedValues[t].min,u[s.name]),this._decimatedValues[t].max=Math.max(this._decimatedValues[t].max,u[s.name]);else{this._decimatedValues[t].exit=u[s.name],this._decimatedValues[t].min=Math.min(this._decimatedValues[t].min,u[s.name]),this._decimatedValues[t].max=Math.max(this._decimatedValues[t].max,u[s.name]);for(let e=t+1;e<=a;++e)this._decimatedValues[e].entry=u[s.name],this._decimatedValues[e].exit=u[s.name],this._decimatedValues[e].min=u[s.name],this._decimatedValues[e].max=u[s.name]}}for(let e=0;e<this._decimatedValues.length;++e){let t=this._decimatedValues[e],a=t.exit;t.entry=this._states[t.entry],t.exit=this._states[a],t.y=this._states[a],t.min=this._states[t.min],t.max=this._states[t.max]}return this._decimatedValues}}t.TraceStateDecimator=k,k.KEY="TraceStateDecimator";class b{initialize(e,t,a){this._data=[],this._xValueToCoord=e,this._xCoordToValue=t,this._yValueToCoord=a}getKey(){return b.KEY}getName(){return""}getValues(){return this._data}mergeMarkers(e){let t=[],a=-Number.MAX_VALUE;for(let i=0;i<e.length;++i){let s=e[i],r=this._xValueToCoord(s.x);r!==a&&(t.push(s),a=r)}return t}decimateValues(e,t,a){let i=a.getData();if(void 0!==e&&void 0!==t){let a=[];for(let s=0;s<i.length;++s){let r=i[s];r.x<t&&r.x>e?a.push(r):r.dx&&r.x+r.dx<t&&r.x+r.dx>e&&a.push(r)}this._data=this.mergeMarkers(a)}else this._data=this.mergeMarkers(i);return this._data}}t.SimpleMarkerDecimator=b,b.KEY="SimpleMarkerDecimator";class v{constructor(){}initialize(e,t,a){this._xValueToCoord=e,this._xCoordToValue=t,this._yValueToCoord=a}getKey(){return _.KEY}getName(){return""}getValues(){return this._decimatedValues}decimateValues(e,a,i){this._decimatedValues=[];let s=[],r=Math.ceil(this._xValueToCoord(Number.MAX_VALUE));if(r<0)return;let o=[];for(let e=0;e<=r+1;++e)o.push(this._xCoordToValue(e));for(let l=0;l<i.length;++l){let n,u,c=i[l],h=t.findFirstInsertionIdx(i[l],e),d=t.findLastInsertionIdx(i[l],a);h>0&&--h,d===c.length()&&--d,s[l]=Array.apply(null,Array(r)).map(Number.prototype.valueOf,0);for(let t=h;t<d;++t){n=c.get(t),u=c.get(t+1);let i=Math.floor(this._xValueToCoord(n.x)),r=Math.floor(this._xValueToCoord(u.x)),h=u.x-n.x,d=0===h?0:u.y/h;if(i===r)if(void 0===e||n.x>e&&u.x<a)s[l][i]+=d;else{let e=1/(o[i+1]-o[i]);u.x<a?s[l][i]+=(u.x-o[i])*d*e:s[l][i]+=(o[i+1]-n.x)*d*e}else{let t=1/(o[i+1]-o[i]),c=e?Math.max(e,n.x):n.x,h=o[i+1];s[l][i]+=(h-c)*d*t;for(let e=i+1;e<r;++e)s[l][e]+=d;t=1/(o[r]-o[r-1]);let m=a?Math.min(a,u.x):u.x,_=o[r];s[l][r]+=(m-_)*d*t}}this._decimatedValues[l]=[];let m=s[l];for(let e=0;e<m.length;++e)this._decimatedValues[l][e]={x:o[e],y:s[l][e]?s[l][e]:0}}return this._decimatedValues}}t.XYHeatMapDecimator=v,v.KEY="XYHeatMapDecimator";let D=[new x,new o,new n,new u,new d,new C,new T,new y,new p,new b,new c,new V,new _,new M];t.InternalDecimatorMap={},D.forEach((function(e){t.InternalDecimatorMap[e.getKey()]=e}))},2:function(t,a){t.exports=e},21:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){e[e.Linear=0]="Linear",e[e.Logarithmic=1]="Logarithmic",e[e.Ordinal=2]="Ordinal"}(t.AxisType||(t.AxisType={}))},23:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.XYValue=class{constructor(e,t){this.x=e,this.y=t}};t.MinMaxValue=class{constructor(e,t,a,i){this.x=e,this.min=t,this.max=a,this.y=i}};t.CandlestickValue=class{constructor(e,t,a,i,s){this.x=e,this.min=t,this.max=a,this.entry=i,this.exit=s}};t.SummaryValue=class{constructor(e,t={}){this.key=e,this.data=t}addValue(e,t){let a=this.data;return a.hasOwnProperty(e)?a[e]+=t:a[e]=t,this}}},62:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const i=a(21),s=a(1),r=a(11),o=a(2),l=self;l.addEventListener("message",e=>{let t,a,n=e.data;n.xAxis.axisDesc.scaleType===i.AxisType.Ordinal?t=o.scaleBand().range([0,n.xRange]).padding(.1).align(.5).domain(n.xDomain):(n.xAxis.axisDesc.scaleType===i.AxisType.Linear?t=o.scaleLinear().domain(n.xDomain).clamp(!0):n.xAxis.axisDesc.scaleType===i.AxisType.Logarithmic&&(t=o.scaleLog().domain(n.xDomain).clamp(!0)),t.range([0,n.xRange])),n.yAxis&&(n.yAxis.axisDesc.scaleType===i.AxisType.Ordinal?a=o.scaleBand().range([0,n.yRange]).padding(.1).align(.5).domain(n.yDomain):(n.yAxis.axisDesc.scaleType===i.AxisType.Linear?a=o.scaleLinear().domain(n.yDomain).clamp(!0):n.yAxis.axisDesc.scaleType===i.AxisType.Logarithmic&&(a=o.scaleLog().domain(n.yDomain).clamp(!0)),a.range([n.yRange,0])));let u,c=r.InternalDecimatorMap[n.decimatorName];if(c.initialize(t,t.invert,a,n.names),n.names){u=[];for(let e=0;e<n.values.length;++e)u[e]=new s.SimpleBuffer(n.values[e])}else u=new s.SimpleBuffer(n.values);let h=c.decimateValues(n.xStart,n.xEnd,u);l.postMessage(h,void 0)})}})}));