UNPKG

highcharts

Version:
11 lines 6.39 kB
/** * Highcharts JS v12.6.0 (2026-04-13) * @module highcharts/modules/histogram-bellcurve * @requires highcharts * * (c) 2010-2026 Highsoft AS * Author: Sebastian Domas * * A commercial license may be required depending on use. * See www.highcharts.com/license */import*as e from"../highcharts.js";var t,n={};n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let r=e.default;var s=n.n(r);let i=e.default.Series;var a=n.n(i);let{doc:o,win:l}=s();function u(e,t,n,r={}){let i="function"==typeof e&&e.prototype||e;Object.hasOwnProperty.call(i,"hcEvents")||(i.hcEvents={});let a=i.hcEvents;s().Point&&e instanceof s().Point&&e.series&&e.series.chart&&(e.series.chart.runTrackerClick=!0);let o=e.addEventListener;o&&o.call(e,t,n,!!s().supportsPassiveEvents&&{passive:void 0===r.passive?-1!==t.indexOf("touch"):r.passive,capture:!1}),a[t]||(a[t]=[]);let l={fn:n,order:"number"==typeof r.order?r.order:1/0};return a[t].push(l),a[t].sort((e,t)=>e.order-t.order),function(){!function(e,t,n){function r(t,n){let r=e.removeEventListener;r&&r.call(e,t,n,!1)}function s(n){let s,i;e.nodeName&&(t?(s={})[t]=!0:s=n,v(s,function(e,t){if(n[t])for(i=n[t].length;i--;)r(t,n[t][i].fn)}))}let i="function"==typeof e&&e.prototype||e;if(Object.hasOwnProperty.call(i,"hcEvents")){let e=i.hcEvents;if(t){let i=e[t]||[];n?(e[t]=i.filter(function(e){return n!==e.fn}),r(t,n)):(s(e),e[t]=[])}else s(e),delete i.hcEvents}}(e,t,n)}}function h(e,t){return e>1e14?e:parseFloat(e.toPrecision(t||14))}function c(e){return d(e)&&"number"==typeof e.nodeType}function p(e){return"number"==typeof e&&!isNaN(e)&&e<1/0&&e>-1/0}function d(e,t){let n;return!!e&&"object"==typeof e&&(!t||"[object Array]"!==(n=Object.prototype.toString.call(e))&&"[object Array Iterator]"!==n)}function f(e,...t){let n,r=[e,...t],s={},i=function(e,t){return"object"!=typeof e&&(e={}),v(t,function(n,r){if("__proto__"!==r&&"constructor"!==r){let s;!d(n,!0)||(s=n?.constructor,d(n,!0)&&!c(n)&&s?.name&&"Object"!==s.name)||c(n)?e[r]=t[r]:e[r]=i(e[r]||{},n)}}),e};!0===e&&(s=r[1],r=Array.prototype.slice.call(r,2));let a=r.length;for(n=0;n<a;n++)s=i(s,r[n]);return s}function v(e,t,n){for(let r in e)Object.hasOwnProperty.call(e,r)&&t.call(n||e[r],e[r],r,e)}Array.prototype.find;let{noop:y}=s();!function(e){function t(){a().prototype.init.apply(this,arguments),this.initialised=!1,this.baseSeries=null,this.eventRemovers=[],this.addEvents()}function n(){let e=this.chart,t=this.options.baseSeries,n=null!=t&&(e.series[t]||e.get(t));this.baseSeries=n||null}function r(){this.eventRemovers.push(u(this.chart,"afterLinkSeries",()=>{this.setBaseSeries(),this.baseSeries&&!this.initialised&&(this.setDerivedData(),this.addBaseSeriesEvents(),this.initialised=!0)}))}function s(){this.eventRemovers.push(u(this.baseSeries,"updatedData",()=>{this.setDerivedData()}),u(this.baseSeries,"destroy",()=>{this.baseSeries=null,this.initialised=!1}))}function i(){this.eventRemovers.forEach(e=>{e()}),a().prototype.destroy.apply(this,arguments)}e.hasDerivedData=!0,e.setDerivedData=y,e.compose=function(e){let a=e.prototype;return a.addBaseSeriesEvents=s,a.addEvents=r,a.destroy=i,a.init=t,a.setBaseSeries=n,e},e.init=t,e.setBaseSeries=n,e.addEvents=r,e.addBaseSeriesEvents=s,e.destroy=i}(t||(t={}));let b=t,m=e.default.SeriesRegistry;var g=n.n(m);let{column:D}=g().seriesTypes,S={"square-root":function(e){return Math.ceil(Math.sqrt(e.length))},sturges:function(e){return Math.ceil(Math.log(e.length)*Math.LOG2E)},rice:function(e){return Math.ceil(2*Math.pow(e.length,1/3))}};class O extends D{binsNumber(e){let t=this.options.binsNumber,n=S[t]||"function"==typeof t&&t;return Math.ceil(n&&n(e)||(p(t)?t:S["square-root"](e)))}setData(e,t=!0,n,r){let s;void 0!==e&&e.length>0&&(e=e.map(function(e){return p(e)?e:e?.y??0}),s=this.derivedData(e.filter(p),this.binsNumber(e),this.options.binWidth)),super.setData.call(this,s,t,n,r)}derivedData(e,t,n){var r;let s,i=h(function(e){let t=e.length,n=e[0];for(;t--;)e[t]>n&&(n=e[t]);return n}(e)),a=h(function(e){let t=e.length,n=e[0];for(;t--;)e[t]<n&&(n=e[t]);return n}(e)),o=[],l={},u=[];for(n=this.binWidth=h(p(n)?n||1:(i-a)/t),this.options.pointRange=Math.max(n,0),s=a;s<i&&(this.userOptions.binWidth||h(i-s)>=n||0>=h(h(a+o.length*n)-s));s=h(s+n))o.push(s),l[s]=0;0!==l[a]&&(o.push(a),l[a]=0);let c=(r=o.map(e=>parseFloat(e)),function(e){let t=1;for(;r[t]<=e;)t++;return r[--t]});for(let t of e)l[h(c(t))]++;for(let e of Object.keys(l))u.push({x:Number(e),y:l[e],x2:h(Number(e)+n)});return u.sort((e,t)=>e.x-t.x),u[u.length-1].x2=i,u}setDerivedData(){let e=this.baseSeries?.getColumn("y");e?.length?this.setData(e,!1,void 0,!1):this.setData([])}}O.defaultOptions=f(D.defaultOptions,{binsNumber:"square-root",binWidth:void 0,pointPadding:0,groupPadding:0,grouping:!1,pointPlacement:"between",tooltip:{headerFormat:"",pointFormat:'<span style="font-size: 0.8em">{point.x} - {point.x2}</span><br/><span style="color:{point.color}">●</span> {series.name} <b>{point.y}</b><br/>'}}),b.compose(O),g().registerSeriesType("histogram",O);let{areaspline:E}=g().seriesTypes;class M extends E{static mean(e){let t=e.length,n=e.reduce(function(e,t){return e+t},0);return t>0&&n/t}static standardDeviation(e,t){let n=e.length;t=p(t)?t:M.mean(e);let r=e.reduce((e,n)=>{let r=n-t;return e+r*r},0);return n>1&&Math.sqrt(r/(n-1))}static normalDensity(e,t,n){let r=e-t;return Math.exp(-(r*r)/(2*n*n))/(n*Math.sqrt(2*Math.PI))}setData(e,t=!0,n,r){let s;void 0!==e&&e.length>0&&(e=e.map(function(e){return p(e)?e:e?.y}).filter(p),this.setMean(e),this.setStandardDeviation(e),s=this.derivedData(this.mean||0,this.standardDeviation||0)),super.setData.call(this,s,t,n,r)}derivedData(e,t){let n=this.options,r=n.intervals,s=n.pointsInInterval,i=r*s*2+1,a=t/s,o=[],l=e-r*t;for(let n=0;n<i;n++)o.push([l,M.normalDensity(l,e,t)]),l+=a;return o}setDerivedData(){this.baseSeries?.getColumn("y").length&&this.setData(this.baseSeries?.getColumn("y"),!1,void 0,!1)}setMean(e){this.mean=h(M.mean(e||[]))}setStandardDeviation(e){this.standardDeviation=h(M.standardDeviation(e||[],this.mean))}}M.defaultOptions=f(E.defaultOptions,{intervals:3,pointsInInterval:3,marker:{enabled:!1}}),b.compose(M),g().registerSeriesType("bellcurve",M);let j=s();export{j as default};