UNPKG

taucharts

Version:

Data-focused charting library based on D3

9 lines 5.76 kB
/*! * /* * taucharts@2.8.0 (2020-02-26) * Copyright 2020 Targetprocess, Inc. * Licensed under Apache License 2.0 * * / * */ !function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("taucharts"),require("d3-selection"));else if("function"==typeof define&&define.amd)define(["taucharts","d3-selection"],t);else{var n="object"==typeof exports?t(require("taucharts"),require("d3-selection")):t(e.Taucharts,e.d3);for(var r in n)("object"==typeof exports?exports:e)[r]=n[r]}}(window,(function(e,t){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=16)}({0:function(t,n){t.exports=e},1:function(e,n){e.exports=t},16:function(e,t,n){"use strict";n.r(t);var r=n(0),i=n.n(r),a=n(1),o=i.a.api.utils,u="minimum",s="maximum",c={MIN:u,MAX:s,MEDIAN:"median",Q1:"Q1",Q3:"Q3"};function l(e,t){var n=e.length-1,r=t/100*n,i=Math.floor(r);if(0===i)return{pos:0,value:e[0]};if(i===n)return{pos:n,value:e[n]};var a=r-i;return a?{pos:r,value:e[i]+a*(e[i+1]-e[i])}:{pos:r,value:e[r]}}function f(e,t,n){for(var r=e.sort((function(e,t){return e-t})),i=l(r,25),a=l(r,50),o=l(r,75),u=o.value-i.value,s=i.value-1.5*u,c=o.value+1.5*u,f=r[0],d=r[r.length-1],p=0;p<=i.pos;p++){var m=r[p];if(m>s){f=m;break}}for(var y=r.length-1;y>=o.pos;y--){var h=r[y];if(h<c){d=h;break}}return t[n.MIN]=f,t[n.MAX]=d,t[n.MEDIAN]=a.value,t[n.Q1]=i.value,t[n.Q3]=o.value,t}function d(e){return e=o.defaults(e||{},{mode:"outliers-only"}),{init:function(e){this._chart=e},onSpecReady:function(t,n){var r=!0===e.flip;n.transformations=n.transformations||{},n.transformations.empty=function(){return[]},n.transformations.outliers=function(e,t){var n=t.x.dim,r=t.y.dim,i=e.reduce((function(e,t){var i=t[n];return e[i]=e[i]||[],e[i].push(t[r]),e}),{}),a=Object.keys(i).reduce((function(e,t){var a=f(i[t],{},c),o=a[c.MAX],u=a[c.MIN];return e.concat((function(e){return e[n]!==t||(e[r]>o||e[r]<u)}))}),[]);return e.filter((function(e){return!a.some((function(t){return!t(e)}))}))},t.traverseSpec(n,(function(t,i){if("ELEMENT.POINT"===t.type){var a=JSON.parse(JSON.stringify(t));a.type="ELEMENT.BOX-WHISKERS",a.flip=r,a.namespace="boxwhiskers",a.guide=a.guide||{},a.guide.fitScale="hide-scatter"===e.mode;var o={"show-scatter":[],"hide-scatter":[{type:"empty"}],"outliers-only":[{type:"outliers",args:{x:n.scales[r?t.y:t.x],y:n.scales[r?t.x:t.y]}}]};t.transformation=t.transformation||[],t.transformation=t.transformation.concat(o[e.mode]),i.units.push(a)}}))}}}i.a.api.unitsRegistry.reg("ELEMENT.BOX-WHISKERS",{getAdjustScalesRules:function(){var e=this,t=[];return e.node().config.guide.fitScale&&t.push((function(t){e.fixScale(t,e.calcStat(t))})),t},fixScale:function(e,t){var n=t.reduce((function(e,t){return e.concat([t[c.MIN],t[c.MAX]])}),[]).sort((function(e,t){return e-t})),r=n[0],i=n[n.length-1];e.scaleY.fixup((function(e){var t={};if(e.hasOwnProperty("series")){var n=Math.min(e.series[0],r),a=Math.max(e.series[1],i);t.series=[n,a]}else t.series=[r,i];return t}))},calcStat:function(e){var t=e.data().reduce((function(t,n){var r=n[e.scaleX.dim];return t[r]=t[r]||[],t[r].push(n[e.scaleY.dim]),t}),{});return Object.keys(t).reduce((function(n,r){var i={};return i[e.scaleX.dim]=r,n.concat(f(t[r],i,c))}),[])},buildRangeModel:function(e,t){var n=e.flip,r=n?"y":"x",i=n?"x":"y",a=n?"height":"width",o=n?"width":"height",u=n?t.y1:t.y0,s=n?t.y0:t.y1,c=t.size,l=e.model.scaleX,f=e.model.scaleY,d={class:t.class};return d[r]=function(e){return l(e[l.dim])-.5*c},d[i]=function(e){return f(e[s])},d[a]=function(){return c},d[o]=function(e){return Math.max(t.minHeight||1,Math.abs(f(e[u])-f(e[s])))},Object.assign(d,{fill:function(){return t.color||"rgba(0,0,256, 0.5)"}})},draw:function(){var e=this.node().config,t=e.options.slot(e.uid),n=this.calcStat(this.node().screenModel.model);this.drawElement(t,n)},drawElement:function(e,t){var n=this,r=this.node().screenModel,o=i.a.api.d3_animationInterceptor,c=function(e,t){var i=n.node().config.guide.animationSpeed,u=e.selectAll("."+t.class).data((function(e){return[e]}),r.id);u.exit().call(o(i,null,{width:0},(function(e){a.select(e).remove()}))),u.call(o(i,null,t)),u.enter().append("rect").style("stroke-width",0).call(o(i,{width:0},t))},l=function(e){c(e,n.buildRangeModel(r,{size:2,y0:u,y1:"Q1",class:"range-min-Q1"})),c(e,n.buildRangeModel(r,{size:2,y0:"Q3",y1:s,class:"range-Q3-max"})),c(e,n.buildRangeModel(r,{size:20,y0:"Q1",y1:"Q3",class:"range-Q1-Q3"})),c(e,n.buildRangeModel(r,{size:20,minHeight:1,y0:s,y1:s,class:"limit-max"})),c(e,n.buildRangeModel(r,{size:20,minHeight:1,y0:u,y1:u,class:"limit-min"})),c(e,n.buildRangeModel(r,{size:20,minHeight:2,y0:"median",y1:"median",color:"#ff0000",class:"limit-median"}))},f=e.selectAll(".box-whiskers-node").data(t);f.exit().remove(),f.call(l),f.enter().append("g").attr("class","box-whiskers-node").call(l)}},"ELEMENT.GENERIC.CARTESIAN"),i.a.api.plugins.add("box-whiskers",d),t.default=d}})}));