@splunk/visualizations 26.4.1 → 27.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/Area.config.js +1399 -1590
  2. package/Area.config.js.map +7 -1
  3. package/Area.js +3750 -4822
  4. package/Area.js.map +7 -1
  5. package/Bar.config.js +1423 -1566
  6. package/Bar.config.js.map +7 -1
  7. package/Bar.js +3856 -4884
  8. package/Bar.js.map +7 -1
  9. package/Bubble.config.js +1009 -1200
  10. package/Bubble.config.js.map +7 -1
  11. package/Bubble.js +2768 -4491
  12. package/Bubble.js.map +7 -1
  13. package/ChoroplethSvg.config.js +282 -582
  14. package/ChoroplethSvg.config.js.map +7 -1
  15. package/ChoroplethSvg.js +2032 -3808
  16. package/ChoroplethSvg.js.map +7 -1
  17. package/Column.config.js +1390 -1534
  18. package/Column.config.js.map +7 -1
  19. package/Column.js +3849 -4906
  20. package/Column.js.map +7 -1
  21. package/Ellipse.config.js +443 -774
  22. package/Ellipse.config.js.map +7 -1
  23. package/Ellipse.js +1667 -3327
  24. package/Ellipse.js.map +7 -1
  25. package/Events.config.js +207 -492
  26. package/Events.config.js.map +7 -1
  27. package/Events.js +2643 -4647
  28. package/Events.js.map +7 -1
  29. package/FillerGauge.config.js +420 -775
  30. package/FillerGauge.config.js.map +7 -1
  31. package/FillerGauge.js +2164 -4575
  32. package/FillerGauge.js.map +7 -1
  33. package/Image.config.js +144 -411
  34. package/Image.config.js.map +7 -1
  35. package/Image.js +1423 -3046
  36. package/Image.js.map +7 -1
  37. package/Line.config.js +1421 -1616
  38. package/Line.config.js.map +7 -1
  39. package/Line.js +3790 -4901
  40. package/Line.js.map +7 -1
  41. package/LinkGraph.config.js +390 -632
  42. package/LinkGraph.config.js.map +7 -1
  43. package/LinkGraph.js +5272 -6185
  44. package/LinkGraph.js.map +7 -1
  45. package/MIGRATION.md +6 -0
  46. package/Map.config.js +501 -801
  47. package/Map.config.js.map +7 -1
  48. package/Map.js +3382 -5659
  49. package/Map.js.map +7 -1
  50. package/Markdown.config.js +232 -528
  51. package/Markdown.config.js.map +7 -1
  52. package/Markdown.js +1671 -3212
  53. package/Markdown.js.map +7 -1
  54. package/MarkerGauge.config.js +308 -613
  55. package/MarkerGauge.config.js.map +7 -1
  56. package/MarkerGauge.js +2215 -4531
  57. package/MarkerGauge.js.map +7 -1
  58. package/ParallelCoordinates.config.js +282 -581
  59. package/ParallelCoordinates.config.js.map +7 -1
  60. package/ParallelCoordinates.js +2057 -4718
  61. package/ParallelCoordinates.js.map +7 -1
  62. package/Pie.config.js +278 -547
  63. package/Pie.config.js.map +7 -1
  64. package/Pie.js +2107 -3984
  65. package/Pie.js.map +7 -1
  66. package/Punchcard.config.js +291 -578
  67. package/Punchcard.config.js.map +7 -1
  68. package/Punchcard.js +2734 -5037
  69. package/Punchcard.js.map +7 -1
  70. package/Rectangle.config.js +455 -770
  71. package/Rectangle.config.js.map +7 -1
  72. package/Rectangle.js +1664 -3258
  73. package/Rectangle.js.map +7 -1
  74. package/Sankey.config.js +291 -626
  75. package/Sankey.config.js.map +7 -1
  76. package/Sankey.js +2766 -4908
  77. package/Sankey.js.map +7 -1
  78. package/Scatter.config.js +988 -1180
  79. package/Scatter.config.js.map +7 -1
  80. package/Scatter.js +2801 -4506
  81. package/Scatter.js.map +7 -1
  82. package/SingleValue.config.js +794 -1250
  83. package/SingleValue.config.js.map +7 -1
  84. package/SingleValue.js +4185 -7327
  85. package/SingleValue.js.map +7 -1
  86. package/SingleValueBasic.js +382 -1527
  87. package/SingleValueBasic.js.map +7 -1
  88. package/SingleValueIcon.config.js +757 -1207
  89. package/SingleValueIcon.config.js.map +7 -1
  90. package/SingleValueIcon.js +3427 -6293
  91. package/SingleValueIcon.js.map +7 -1
  92. package/SingleValueRadial.config.js +686 -1121
  93. package/SingleValueRadial.config.js.map +7 -1
  94. package/SingleValueRadial.js +3923 -6994
  95. package/SingleValueRadial.js.map +7 -1
  96. package/SparkLine.js +439 -746
  97. package/SparkLine.js.map +7 -1
  98. package/TRELLIS.md +16 -15
  99. package/Table.config.js +565 -879
  100. package/Table.config.js.map +7 -1
  101. package/Table.js +3260 -5334
  102. package/Table.js.map +7 -1
  103. package/common/Charting.js +617 -1498
  104. package/common/Charting.js.map +7 -1
  105. package/common/ChartingApi.js +46 -170
  106. package/common/ChartingApi.js.map +7 -1
  107. package/common/DocExampleWithVizSandbox.js +270 -473
  108. package/common/DocExampleWithVizSandbox.js.map +7 -1
  109. package/common/EventsDoc.js +172 -464
  110. package/common/EventsDoc.js.map +7 -1
  111. package/common/GaugeMajorTicks.js +249 -347
  112. package/common/GaugeMajorTicks.js.map +7 -1
  113. package/common/GaugeValueMarker.js +201 -311
  114. package/common/GaugeValueMarker.js.map +7 -1
  115. package/common/OptionsDoc.js +351 -911
  116. package/common/OptionsDoc.js.map +7 -1
  117. package/common/OverviewDoc.js +435 -769
  118. package/common/OverviewDoc.js.map +7 -1
  119. package/common/SplunkVisualization.js +116 -259
  120. package/common/SplunkVisualization.js.map +7 -1
  121. package/common/SplunkVisualizationApi.js +40 -156
  122. package/common/SplunkVisualizationApi.js.map +7 -1
  123. package/common/ThemesDoc.js +271 -420
  124. package/common/ThemesDoc.js.map +7 -1
  125. package/common/chartingUtils.js +140 -312
  126. package/common/chartingUtils.js.map +7 -1
  127. package/common/docUtils.js +148 -266
  128. package/common/docUtils.js.map +7 -1
  129. package/common/gaugeUtils.js +280 -808
  130. package/common/gaugeUtils.js.map +7 -1
  131. package/common/shapeUtils.js +106 -211
  132. package/common/shapeUtils.js.map +7 -1
  133. package/common/utils/configUtils.js +126 -252
  134. package/common/utils/configUtils.js.map +7 -1
  135. package/common/utils/dataUtils.js +217 -812
  136. package/common/utils/dataUtils.js.map +7 -1
  137. package/common/utils/featureFlagUtils.js +53 -133
  138. package/common/utils/featureFlagUtils.js.map +7 -1
  139. package/common/utils/hocUtils.js +32 -122
  140. package/common/utils/hocUtils.js.map +7 -1
  141. package/common/utils/mapUtils.js +502 -1337
  142. package/common/utils/mapUtils.js.map +7 -1
  143. package/common/utils/singleValueUtils.js +466 -1013
  144. package/common/utils/singleValueUtils.js.map +7 -1
  145. package/common/utils/testHelper.js +92 -146
  146. package/common/utils/testHelper.js.map +7 -1
  147. package/common/utils/trellisUtils.js +277 -489
  148. package/common/utils/trellisUtils.js.map +7 -1
  149. package/common/utils/urlUtils.js +28 -112
  150. package/common/utils/urlUtils.js.map +7 -1
  151. package/common/withDashboardViz.js +1191 -2431
  152. package/common/withDashboardViz.js.map +7 -1
  153. package/package.json +53 -45
package/SparkLine.js.map CHANGED
@@ -1 +1,7 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///external \"prop-types\"","webpack:///external \"react\"","webpack:///external \"@babel/runtime/helpers/assertThisInitialized\"","webpack:///./src/SparkLine/SparkLine.jsx","webpack:///external \"@babel/runtime/helpers/defineProperty\"","webpack:///external \"lodash\"","webpack:///external \"@babel/runtime/helpers/createClass\"","webpack:///external \"@splunk/ui-utils/i18n\"","webpack:///external \"@splunk/ui-utils/id\"","webpack:///external \"styled-components\"","webpack:///external \"@babel/runtime/helpers/extends\"","webpack:///external \"@babel/runtime/helpers/classCallCheck\"","webpack:///external \"@splunk/react-ui/Popover\"","webpack:///external \"@babel/runtime/helpers/getPrototypeOf\"","webpack:///external \"@babel/runtime/helpers/inherits\"","webpack:///external \"@babel/runtime/helpers/possibleConstructorReturn\""],"names":["StyledSvg","styled","StyledTooltip","SparkLine","rest","anchor","el","currentPointX","open","rectArea","tooltip","createDOMID","data","acceptNull","yMax","dataMax","max","yMin","dataMin","min","width","xUnit","xMargin","Math","height","maxValue","minValue","yUnit","yMargin","lines","currentLine","isNull","points","value","x","idx","y","p","i","fillOpacity","e","fillColor","isArea","segments","s","fill","strokeWidth","cursorStroke","cursorStrokeWidth","cursorStrokeLinecap","cursorStrokeDasharray","stroke","strokeLinecap","strokeDasharray","endDotFillColor","endDotRadius","endDotStroke","endDotStrokeWidth","point","lineColor","lineLength","lineStrokeWidth","linePoints","isFinite","lineData","strokeLinejoin","elementRef","showTooltip","showEndDot","endDotCount","title","dotsToShow","omit","keys","_","Component","PropTypes","isArray","props","string"],"mappings":";;;;;;;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;AClFA,uC;;;;;;;ACAA,kC;;;;;;;ACAA,yE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMA,SAAS,GAAGC,yDAAM,CAAT,GAAGA,CAAH,UAAGA,CAAH;AAAA;AAAA;AAAA,CAAGA,EAAH,CAAf,kBAAe,CAAGA,CAAlB;AAKA,IAAMC,aAAa,GAAGD,yDAAM,CAAT,GAAGA,CAAH,UAAGA,CAAH;AAAA;AAAA;AAAA,CAAGA,EAAH,CAAnB,iCAAmB,CAAGA,CAAtB;;IAKME,S;;;;;AAiGF,4BAA4B;AAAA;;AAAA;;AAAA,sCAANC,IAAM;AAANA,UAAM,UAANA,GAAM,eAANA;AAAM;;AACxB;;AADwB,kMA0FR,cAAM;AACtB,qBAAc;AACVC,cAAM,EAAEC;AADE,OAAd;AA3FwB;;AAExB,kBAAa;AACTD,YAAM,EADG;AAETE,mBAAa,EAFJ;AAGTC,UAAI,EAHK;AAITC,cAAQ,EAJC;AAKTC,aAAO,EAAE;AALA,KAAb;AAOA,oBAAeC,wEAAf;AATwB;AAU3B;;;;WAED,kBAAS;AAAA;;AAAA,wBAC8B,KAD9B;AAAA,UACGC,IADH;AAAA,UACSC,UADT;AAAA,UACqBC,IADrB;;AAEL,UAAMC,OAAO,GAAG,SAAVA,OAAU;AAAA,eAAOF,UAAU,GAAGG,mDAAG,CAAC,MAAI,CAAJ,SAAP,IAAO,CAAD,CAAN,GAA8BA,mDAAG,CAAlD,IAAkD,CAAlD;AAAhB;;AACA,aAAOF,IAAI,KAAJA,mBAA4BC,OAAnC;AACH;;;WAED,kBAAS;AAAA;;AAAA,yBAC8B,KAD9B;AAAA,UACGH,IADH;AAAA,UACSC,UADT;AAAA,UACqBI,IADrB;;AAEL,UAAMC,OAAO,GAAG,SAAVA,OAAU;AAAA,eAAOL,UAAU,GAAGM,mDAAG,CAAC,MAAI,CAAJ,SAAP,IAAO,CAAD,CAAN,GAA8BA,mDAAG,CAAlD,IAAkD,CAAlD;AAAhB;;AACA,aAAOF,IAAI,KAAJA,mBAA4BC,OAAnC;AACH;AAED;AACJ;AACA;AACA;AACA;AACA;;;;WACI,2BAAkB;AAAA,yBACU,KADV;AAAA,UACNN,IADM;AAAA,UACAQ,KADA,uBAEd;;AACA,UAAMC,KAAK,GAAG,CAACD,KAAK,GAAGE,OAAO,GAAhB,MAAyBV,IAAI,CAAJA,aAAkBA,IAAI,CAAJA,SAAlBA,IAAvC,CAAc,CAAd;AACA,aAAOW,IAAI,CAAJA,OAAP,KAAOA,CAAP;AACH;AAED;AACJ;AACA;AACA;AACA;AACA;;;;WACI,2BAAkB;AAAA,UACNC,MADM,GACK,KADL,KACK,CADL;AAEd,UAAMC,QAAQ,GAAG,KAAjB,MAAiB,EAAjB;AACA,UAAMC,QAAQ,GAAG,KAHH,MAGG,EAAjB,CAHc,CAKd;AACA;AACA;;AACA,UAAMC,KAAK,GAAG,CAACH,MAAM,GAAGI,OAAO,GAAjB,MAA0BH,QAAQ,GAARA,YAAxC,CAAc,CAAd;AACA,aAAOF,IAAI,CAAJA,OAAP,KAAOA,CAAP;AACH;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;;WACI,sCAA6B;AAAA,UACjBV,UADiB,GACF,KADE,KACF,CADE;AAEzB,UAAMgB,KAAK,GAAX;AACA,UAAIC,WAAW,GAAf;AAEAlB,UAAI,CAAJA,QAAa,kBAAY;AACrB;AACA,YAAI,eAAemB,sDAAM,CAAzB,CAAyB,CAAzB,EAA8B;AAC1B;AACA,cAAID,WAAW,CAAXA,SAAJ,GAA4B;AACxBD,iBAAK,CAALA;AAHsB,YAK1B;;;AACAC,qBAAW,GAAXA;AANJ,eAOO;AACH;AACAA,qBAAW,CAAXA,KAAiBE,MAAM,CAAvBF,GAAuB,CAAvBA;AACH;AAjBoB,OAKzBlB,EALyB,CAoBzB;;AACA,UAAIkB,WAAW,CAAXA,SAAJ,GAA4B;AACxBD,aAAK,CAALA;AACH;;AAED;AACH;;;;AAQD;AACJ;AACA;AACA;AACI,wBAAW;AAAA,UACCjB,IADD,GACU,KADV,KACU,CADV;AAEP,aAAO,IAAI,CAAJ,IAAS,iBAAK;AAAA,eAAKqB,KAAK,KAALA,WAAL;AAArB,OAAO,CAAP;AACH;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;;;;WACI,wCAA+B;AAAA,UACnBrB,IADmB,GACV,KADU,KACV,CADU;AAE3B,UAAMS,KAAK,GAAG,cAAd,OAAc,CAAd;AACA,UAAMM,KAAK,GAAG,cAAd,OAAc,CAAd;AACA,UAAMF,QAAQ,GAAG,KAAjB,MAAiB,EAAjB;AACA,UAAMC,QAAQ,GAAG,KAAjB,MAAiB,EAAjB;AACA,aAAO,IAAI,CAAJ,IACE;AAAA,eAAe;AAChBQ,WAAC,EAAEC,GAAG,GAAHA,QADa;AAEhBC,WAAC,EAAEX,QAAQ,KAARA,WAAwBE,KAAK,GAA7BF,UAA0C,CAACA,QAAQ,GAAT,eAA2BG;AAFxD,SAAf;AADF,aAKE,aAAC;AAAA,eAAI,CAACS,CAAC,CAAF,GAAMA,CAAC,CAAX,CAAI,CAAJ;AALV,OAAO,CAAP;AAMH;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,qCAA4B;AAAA;;AAAA,yBACC,KADD;AAAA,UAChBzB,IADgB;AAAA,UACVY,MADU;AAExB,UAAMH,KAAK,GAAG,cAAd,OAAc,CAAd;AAEA,aAAO,MAAM,CAAN,IAAW;AAAA;AAAA;;AACd;AACA;AAAM;AACF,eAAG,2BAAUgB,CAAC,CADlB,CACkB,CAAX,CADP;AAEI,wCAFJ,CAEI,CAFJ;AAGI,aAAC,EAAEA,CAAC,CAADA,CAAC,CAADA,GAAOhB,KAAK,GAAZgB,aAA4BA,CAAC,CAADA,CAAC,CAADA,GAAOhB,KAAK,GAH/C;AAII,aAAC,EAJL;AAKI,iBAAK,EAAEiB,CAAC,KAADA,KAAW1B,IAAI,CAAJA,WAAX0B,IAA+BjB,KAAK,GAApCiB,IALX;AAMI,kBAAM,EANV;AAOI,iBAAK,EAAE;AAAEC,yBAAW,EAAE;AAAf,aAPX;AAQI,uBAAW,EAAE,wBAAK;AACd,oBAAI,CAAJ,SAAc;AACV/B,oBAAI,EAAEI,IAAI,CAAJA,CAAI,CAAJA,KADI;AAEVH,wBAAQ,EAAEG,IAAI,CAAJA,CAAI,CAAJA,mBAA0B4B,CAAC,CAF3B;AAGV9B,uBAAO,EAAEE,IAAI,CAHH,CAGG,CAHH;AAIVL,6BAAa,EAAE8B,CAAC;AAJN,eAAd;AAMH;AAfL;AAiBA;;AAnBc;AAAlB,OAAO,CAAP;MAuBJ;;;;WACA,4BAAmB;AAAA,yBAC0C,KAD1C;AAAA,UACPzB,IADO;AAAA,UACD6B,SADC;AAAA,UACUF,WADV;AAAA,UACuBf,MADvB;AAAA,UAC+BkB,MAD/B;;AAGf,UAAI,WAAWV,MAAM,CAANA,WAAf,GAAoC;AAChC;AACH;;AAED,UAAIW,QAAQ,GAAG,0BAAf,MAAe,CAAf;AACAA,cAAQ,GAAG,QAAQ,CAAR,IAAa,aAAC;AAAA,eACrB,CAAC,CAAD,OAAS,CACL,CAACC,CAAC,CAACA,CAAC,CAADA,SAAFA,CAAC,CAADA,CAAD,CAACA,CAAD,EADK,MACL,CADK,EACyB;AAC9B,SAACA,CAAC,CAADA,CAAC,CAADA,CAAD,CAACA,CAAD,EAFK,MAEL,CAFK,EAEc;AACnBA,SAAC,CAHI,CAGJ,CAHI,CAGC;AAHD,SAAT,CADqB;AAAzBD,OAAW,CAAXA;AAQA,0BACI;AAAG,qBAAU;AAAb,SACK,QAAQ,CAAR,IAAa,aAAC;AAAA,4BACX;AACI,aAAG,gBAASC,CAAC,CAADA,KADhB,EACgBA,CAAT,CADP;AAEI,gBAAM,EAAEA,CAAC,CAADA,KAFZ,GAEYA,CAFZ;AAGI,uBAHJ;AAII,eAAK,EAAE;AACHC,gBAAI,EADD;AAEHN,uBAAW,EAFR;AAGHO,uBAAW,EAAE;AAHV;AAJX,UADW;AAFvB,OAES,CADL,CADJ;AAgBH;;;WAED,wBAAe;AAAA,yBAOP,KAPO;AAAA,UAEPC,YAFO;AAAA,UAGPC,iBAHO;AAAA,UAIPC,mBAJO;AAAA,UAKPC,qBALO;AAAA,UAMP1B,MANO;AASX,aACI,6CACI;AACI,qBADJ;AAEI,WAAG,EAAE,KAFT;AAGI,UAAE,EAAE,WAHR;AAII,UAAE,EAJN;AAKI,UAAE,EAAE,WALR;AAMI,UAAE,EANN;AAOI,aAAK,EAAE;AACH2B,gBAAM,EADH;AAEHL,qBAAW,EAFR;AAGHM,uBAAa,EAHV;AAIHC,yBAAe,EAAEH;AAJd;AAPX,QAFR;AAkBH;;;WAED,yBAAgB;AACZ,aACI,2CACI;AACI,qBADJ;AAEI,YAAI,EAAE,WAFV;AAGI,cAAM,EAAE,WAHZ;AAII,2BAAiB,WAJrB;AAKI,kBAAU,EALd;AAMI,wBAAgB,EANpB;AAOI,iBAAS,EAAE;AAPf,sBASI,gFACK,6BAA6B,WAA7B,UAZjB,SAWY,CATJ,CAFR;AAiBH;AAED;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,oDAA2C;AAAA,yBACoC,KADpC;AAAA,UAC/BI,eAD+B;AAAA,UACdC,YADc;AAAA,UACAC,YADA;AAAA,UACcC,iBADd;AAGvC,0BACI,sEACK,MAAM,CAAN,MAAa,CAAb,gBAA8B,iBAAK;AAAA,4BAChC;AACI,aAAG,mBAAYC,KAAK,CAAjB,CAAiB,CAAjB,SAAuBA,KAAK,CADnC,CACmC,CAA5B,CADP;AAEI,uBAFJ;AAGI,YAAE,EAAEA,KAAK,CAHb,CAGa,CAHb;AAII,YAAE,EAAEA,KAAK,CAJb,CAIa,CAJb;AAKI,WAAC,EAAEH,YAAY,KAAZA,cALP;AAMI,eAAK,EAAE;AACHV,gBAAI,EADD;AAEHM,kBAAM,EAFH;AAGHL,uBAAW,EAAEW;AAHV;AANX,UADgC;AAF5C,OAES,CADL,CADJ;AAkBH;AAED;AACJ;AACA;AACA;AACA;AACA;;;;WACI,gCAAuB;AAAA,yBACsC,KADtC;AAAA,UACX7C,IADW;AAAA,UACL+C,SADK;AAAA,UACMC,UADN;AAAA,UACkBC,eADlB;AAGnB,UAAMC,UAAU,GAAGC,wDAAQ,CAARA,UAAQ,CAARA,IAAwBH,UAAU,GAAlCG,iBAAsD/B,MAAM,CAA/E;AACA,UAAMH,KAAK,GAAG,oBAAoBjB,IAAI,CAAJA,MAAW,CAA/B,UAAoBA,CAApB,EAA6CoB,MAAM,CAANA,MAAa,CAAxE,UAA2DA,CAA7C,CAAd;AAEA,0BACI;AAAG,qBAAU;AAAb,SACK,KAAK,CAAL,IAAU,oBAAQ;AAAA,4BACf;AACI,aAAG,gBAASgC,QAAQ,CAARA,KADhB,EACgBA,CAAT,CADP;AAEI,uBAFJ;AAGI,eAAK,EAAE;AACHnB,gBAAI,EADD;AAEHM,kBAAM,EAFH;AAGHL,uBAAW,EAHR;AAIHmB,0BAAc,EAJX;AAKHb,yBAAa,EAAE;AALZ,WAHX;AAUI,gBAAM,EAAEY,QAAQ,CAARA;AAVZ,UADe;AAF3B,OAES,CADL,CADJ;AAkBH;;;WAED,kBAAS;AAAA;;AAAA,yBAcD,KAdC;AAAA,UAEDpD,IAFC;AAAA,UAGDsD,UAHC;AAAA,UAIDC,WAJC;AAAA,UAKDC,UALC;AAAA,UAMDb,YANC;AAAA,UAODE,iBAPC;AAAA,UAQDY,WARC;AAAA,UASD7C,MATC;AAAA,UAUDkB,MAVC;AAAA,UAWDmB,eAXC;AAAA,UAYDzC,KAZC;AAAA,UAaDkD,KAbC;;AAgBL,UAAI1D,IAAI,CAAJA,WAAJ,GAAuB;AACnB;AAjBC,QAoBL;;;AACA,UAAMU,OAAO,GAAGiC,YAAY,GAAGE,iBAAiB,GAAhD;AACA,UAAM7B,OAAO,GAAGL,IAAI,CAAJA,IAASsC,eAAe,GAAxBtC,GAA8BgC,YAAY,GAAGE,iBAAiB,GAA9E,CAAgBlC,CAAhB;AAEA,UAAMS,MAAM,GAAG,2BAAf,OAAe,CAAf;AAEA,UAAMuC,UAAU,GAAGhD,IAAI,CAAJA,IAAS6C,UAAU,IAAnB7C,GAA0BwC,wDAAQ,CAARA,WAAQ,CAARA,IAAyBM,WAAW,GAApCN,KAA7C,WAAmBxC,CAAnB;AAEA,0BACI;AAAK;AACD,qBADJ;AAEI,0BAAgBmB,MAAM,YAF1B;AAGI,kBAAU,EAAE,sBAAM;AACd,gBAAI,CAAJ,SAAc;AACVlC,gBAAI,EADM;AAEVH,kBAAM,EAFI;AAGVI,oBAAQ,EAHE;AAIVF,yBAAa,EAAE;AAJL,WAAd;AAJR;AAWI,WAAG,EAAE2D;AAXT,SAYQM,oDAAI,CAAC,KAAD,OAAaC,oDAAI,CAACtE,SAAS,CAZvC,SAY6B,CAAjB,CAZZ,gBAcI;AACI,cAAM,EADV;AAEI,aAAK,EAFT;AAGI,YAAI,EAHR;AAII,2BAAiB,KAJrB;AAKI,qBAAU;AALd,sBAOI;AAAO,UAAE,EAAE,KAAX;AAAyB,qBAAU;AAAnC,SACKmE,KAAK,IAAII,gEAAC,CARnB,wCAQmB,CADf,CAPJ,eAUI,sEACK,KADL,YACK,EADL,EAEK,oBAFL,MAEK,CAFL,EAGK,gBAHL,MAGK,CAHL,EAIKH,UAAU,GAAG,uCAAH,OAAG,CAAH,GAJf,MAKKJ,WAAW,GAAG,wBAAH,OAAG,CAAH,GALhB,MAMKA,WAAW,GAAG,KAAH,aAAG,EAAH,GA/B5B,IAyBY,CAVJ,CAdJ,CADJ;AAoCH;;;;EAtdmBQ,+C;;6EAAlBxE,S,eACiB;AACf;AACR;AACA;AACQU,YAAU,EAAE+D,iDAAS,CAJN;;AAKf;AACAhE,MAAI,EAAE,qBAAS;AACX,QAAI,CAACiE,uDAAO,CAACC,KAAK,CAAlB,IAAY,CAAZ,EAA0B;AACtB,aAAO,UAAP,8CAAO,CAAP;AACH;;AAED,QAAIA,KAAK,CAALA,cAAoB,CAAC,KAAK,CAAL,WAAiB,iBAAK;AAAA,aAAI/C,sDAAM,CAANA,KAAM,CAANA,IAAiBgC,wDAAQ,CAA7B,KAA6B,CAA7B;AAA/C,KAAyB,CAAzB,EAAsF;AAClF,aAAO,UAAP,4DAAO,CAAP;AACH;;AAED,QAAI,CAACe,KAAK,CAAN,cAAqB,CAAC,KAAK,CAAL,WAAiB,iBAAK;AAAA,aAAIf,wDAAQ,CAAZ,KAAY,CAAZ;AAAhD,KAA0B,CAA1B,EAAsE;AAClE,aAAO,UAAP,oDAAO,CAAP;AACH;;AACD;AAlBW;;AAoBf;AACAG,YAAU,EAAEU,iDAAS,CAATA,UAAoB,CAACA,iDAAS,CAAV,MAAiBA,iDAAS,CArB3C,MAqBiB,CAApBA,CArBG;;AAsBf;AACAP,aAAW,EAAEO,iDAAS,CAvBP;;AAwBf;AACAtB,iBAAe,EAAEsB,iDAAS,CAzBX;;AA0Bf;AACR;AACA;AACQrB,cAAY,EAAEqB,iDAAS,CA7BR;;AA8Bf;AACApB,cAAY,EAAEoB,iDAAS,CA/BR;;AAgCf;AACAnB,mBAAiB,EAAEmB,iDAAS,CAjCb;;AAkCf;AACAnC,WAAS,EAAEmC,iDAAS,CAnCL;;AAoCf;AACArC,aAAW,EAAEqC,iDAAS,CArCP;;AAsCf;AACA7B,cAAY,EAAE6B,iDAAS,CAvCR;;AAwCf;AACA5B,mBAAiB,EAAE4B,iDAAS,CAzCb;;AA0Cf;AACA3B,qBAAmB,EAAE2B,iDAAS,CAATA,MAAgB,kBA3CtB,QA2CsB,CAAhBA,CA3CN;;AA4Cf;AACA1B,uBAAqB,EAAE0B,iDAAS,CA7CjB;;AA8Cf;AACR;AACA;AACA;AACQpD,QAAM,EAAEoD,iDAAS,CAATA,OAlDO;;AAmDf;AACAlC,QAAM,EAAEkC,iDAAS,CApDF;;AAqDf;AACAjB,WAAS,EAAEiB,iDAAS,CAtDL;;AAuDf;AACAhB,YAAU,EAAEgB,iDAAS,CAxDN;;AAyDf;AACAf,iBAAe,EAAEe,iDAAS,CA1DX;;AA2Df;AACAR,YAAU,EAAEQ,iDAAS,CA5DN;;AA6Df;AACAT,aAAW,EAAES,iDAAS,CA9DP;;AA+Df;AACA9D,MAAI,EAAE8D,iDAAS,CAhEA;;AAiEf;AACA3D,MAAI,EAAE2D,iDAAS,CAlEA;;AAmEf;AACR;AACA;AACQxD,OAAK,EAAEwD,iDAAS,CAATA,OAtEQ;;AAuEf;AACAN,OAAK,EAAEM,iDAAS,CAACG;AAxEF,C;;6EADjB5E,S,kBA4EoB;AAClBU,YAAU,EADQ;AAElBD,MAAI,EAFc;AAGlBuD,aAAW,EAHO;AAIlBE,aAAW,EAJO;AAKlBD,YAAU,EALQ;AAMlBb,cAAY,EANM;AAOlBD,iBAAe,EAPG;AAQlBE,cAAY,EARM;AASlBC,mBAAiB,EATC;AAUlBhB,WAAS,EAVS;AAWlBF,aAAW,EAXO;AAYlBQ,cAAY,EAZM;AAalBC,mBAAiB,EAbC;AAclBC,qBAAmB,EAdD;AAelBC,uBAAqB,EAfH;AAgBlBR,QAAM,EAhBY;AAiBlBiB,WAAS,EAjBS;AAkBlBE,iBAAe,EAAE;AAlBC,C;;AA6Y1B,0E;;;;;;;AC3eA,kE;;;;;;;ACAA,mC;;;;;;;ACAA,+D;;;;;;;ACAA,kD;;;;;;;ACAA,gD;;;;;;;ACAA,8C;;;;;;;ACAA,2D;;;;;;;ACAA,kE;;;;;;;ACAA,qD;;;;;;;ACAA,kE;;;;;;;ACAA,4D;;;;;;;ACAA,6E","file":"SparkLine.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 114);\n","module.exports = require(\"prop-types\");","module.exports = require(\"react\");","module.exports = require(\"@babel/runtime/helpers/assertThisInitialized\");","import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { isArray, isFinite, isNull, keys, max, min, omit } from 'lodash';\nimport styled from 'styled-components';\nimport Popover from '@splunk/react-ui/Popover';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { createDOMID } from '@splunk/ui-utils/id';\n\nconst StyledSvg = styled.svg`\n /* For fixing IE11 shows overflow part line issue */\n overflow: hidden;\n`;\n\nconst StyledTooltip = styled.div`\n padding: 3px 8px;\n font-size: 12px;\n`;\n\nclass SparkLine extends Component {\n static propTypes = {\n /**\n * If true, data can contain `null` as a value and is treated as `0`. If false, this throws error when data contains `null`.\n */\n acceptNull: PropTypes.bool,\n /** Array of numbers. These data numbers are converted to points and show on sparkline. */\n data: props => {\n if (!isArray(props.data)) {\n return new Error('Data provided to Sparkline must be an array.');\n }\n\n if (props.acceptNull && !props.data.every(value => isNull(value) || isFinite(value))) {\n return new Error('Data provided to Sparkline must be finite numbers or null.');\n }\n\n if (!props.acceptNull && !props.data.every(value => isFinite(value))) {\n return new Error('Data provided to Sparkline must be finite numbers.');\n }\n return null;\n },\n /** A React ref which is set to the DOM element when the component mounts and `null` when it unmounts. */\n elementRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n /** Sets the number of end dots to display. When showEndDot is set to `true`, endDotCount is at least 1. If set to a positive value, this overrides showEndDot. */\n endDotCount: PropTypes.number,\n /** Fills color to the end dot. */\n endDotFillColor: PropTypes.string,\n /**\n * Sets end dot radius. End dot radius must be less than or equal to the margin. By default, its value equals the margin.\n */\n endDotRadius: PropTypes.number,\n /** Sets end dot circle stroke color. */\n endDotStroke: PropTypes.string,\n /** Sets end dot circle stroke width in pixels. */\n endDotStrokeWidth: PropTypes.number,\n /** Fills color to area. */\n fillColor: PropTypes.string,\n /** Fills opacity to area. Value must be in 0 ~ 1. */\n fillOpacity: PropTypes.string,\n /** Sets cursor stroke color. */\n cursorStroke: PropTypes.string,\n /** Sets cursor stroke width in pixels. */\n cursorStrokeWidth: PropTypes.number,\n /** Sets cursor line cap style. */\n cursorStrokeLinecap: PropTypes.oneOf(['butt', 'round', 'square']),\n /** Sets cursor dash array style. */\n cursorStrokeDasharray: PropTypes.string,\n /**\n * Container height. If this value is specified, sparkline calculates the size using this height. If height isn't specified,\n * sparkline figures out the container height by itself.\n */\n height: PropTypes.number.isRequired,\n /** When set to `true`, sparkline shows as area. */\n isArea: PropTypes.bool,\n /** The sparkline line color. */\n lineColor: PropTypes.string,\n /** Allows user to draw only the last data points for the line. */\n lineLength: PropTypes.number,\n /** The sparkline line stroke width in pixels. */\n lineStrokeWidth: PropTypes.number,\n /** Enable to show end dot. */\n showEndDot: PropTypes.bool,\n /** Enable to show tooltip. */\n showTooltip: PropTypes.bool,\n /** Sets the data value range and maximum value shown on sparkline. */\n yMax: PropTypes.number,\n /** Sets the data value range and minimum value shown on sparkline. */\n yMin: PropTypes.number,\n /**\n * The width of the container.\n */\n width: PropTypes.number.isRequired,\n /** Sets the a11y title text on sparkline. */\n title: PropTypes.string,\n };\n\n static defaultProps = {\n acceptNull: false,\n data: [],\n showTooltip: true,\n endDotCount: 0,\n showEndDot: false,\n endDotRadius: 0,\n endDotFillColor: 'white',\n endDotStroke: 'black',\n endDotStrokeWidth: 0,\n fillColor: '#65a637',\n fillOpacity: '.1',\n cursorStroke: '#5184AF',\n cursorStrokeWidth: 3,\n cursorStrokeLinecap: 'square',\n cursorStrokeDasharray: '1, 5',\n isArea: false,\n lineColor: '#65a637',\n lineStrokeWidth: 1,\n };\n\n constructor(props, ...rest) {\n super(props, ...rest);\n this.state = {\n anchor: null,\n currentPointX: null,\n open: false,\n rectArea: null,\n tooltip: null,\n };\n this.titleId = createDOMID();\n }\n\n getMax() {\n const { data, acceptNull, yMax } = this.props;\n const dataMax = () => (acceptNull ? max(this.fillNull(data)) : max(data));\n return yMax !== undefined ? yMax : dataMax();\n }\n\n getMin() {\n const { data, acceptNull, yMin } = this.props;\n const dataMin = () => (acceptNull ? min(this.fillNull(data)) : min(data));\n return yMin !== undefined ? yMin : dataMin();\n }\n\n /**\n * Gets unit value of x axis.\n * @param {Number} xMargin - margin of x axis.\n * @return {Number} unit value of x axis.\n * @private\n */\n getXUnit(xMargin) {\n const { data, width } = this.props;\n // Calculate xUnit. Width substract the left margin and right margin, then divide by data length.\n const xUnit = (width - xMargin * 2) / (data.length > 1 ? data.length - 1 : 1);\n return Math.max(0, xUnit);\n }\n\n /**\n * Gets unit value of y axis.\n * @param {String} yMargin - margin of y axis.\n * @return {Number} unit value of y axis.\n * @private\n */\n getYUnit(yMargin) {\n const { height } = this.props;\n const maxValue = this.getMax();\n const minValue = this.getMin();\n\n // Calculate yUnit. Height substract the upper margin and bottom margin, then divide by value range of values in data.\n // if the maxValue equals minValue, means all values in data are the same, then, we need to set the YUnit at the mid value of Height.\n // So, draws sparkline right in the mid of the container.\n const yUnit = (height - yMargin * 2) / (maxValue - minValue || 2);\n return Math.max(0, yUnit);\n }\n\n /**\n * Get a list of arrays of points for drawing lines, based on acceptNull property\n * @method getSegmentSets\n * @param {Array} data\n * @param {Array} points\n * @returns {Array} List of datapoint sets used for drawing lines\n */\n getSegmentSets(data, points) {\n const { acceptNull } = this.props;\n const lines = [];\n let currentLine = [];\n\n data.forEach((p, idx) => {\n // Found null data\n if (!acceptNull && isNull(p)) {\n // need at least 2 points to draw a segment\n if (currentLine.length > 1) {\n lines.push(currentLine);\n }\n // reset for the next segment\n currentLine = [];\n } else {\n // data is good, add point data\n currentLine.push(points[idx]);\n }\n });\n\n // Add the last line\n if (currentLine.length > 1) {\n lines.push(currentLine);\n }\n\n return lines;\n }\n\n handleCursorMount = el => {\n this.setState({\n anchor: el,\n });\n };\n\n /**\n * Utility for fill null value with number 0.\n * @private\n */\n fillNull() {\n const { data } = this.props;\n return data.map(value => (value === null ? 0 : value));\n }\n\n /**\n * Converts data to points in svg\n * @param {Number} xMargin - margin of x axis.\n * @param {Number} yMargin - margin of x axis.\n * @return {Array} points coordination.\n * @private\n */\n dataToPoints(xMargin, yMargin) {\n const { data } = this.props;\n const xUnit = this.getXUnit(xMargin);\n const yUnit = this.getYUnit(yMargin);\n const maxValue = this.getMax();\n const minValue = this.getMin();\n return data\n .map((val, idx) => ({\n x: idx * xUnit + xMargin,\n y: maxValue === minValue ? yUnit + yMargin : (maxValue - val) * yUnit + yMargin,\n }))\n .map(p => [p.x, p.y]);\n }\n\n /**\n * Renders rect area for helping figure out which is the nearest point so that\n * render related cursor and tooltip.\n * @param {Array} points - array of points coordination.\n * @param {Number} xMargin - margin of x axis.\n * @return {Array} array of svg rect objects\n * @private\n */\n renderRect(points, xMargin) {\n const { data, height } = this.props;\n const xUnit = this.getXUnit(xMargin);\n\n return points.map((p, i) => (\n /* eslint-disable react/no-array-index-key */\n <rect // eslint-disable-line jsx-a11y/mouse-events-have-key-events\n key={`${i}_${p[0]}`}\n data-test={`rect-${i}`}\n x={p[0] - xUnit / 2 <= 0 ? 0 : p[0] - xUnit / 2}\n y={0}\n width={i === 0 && data.length !== 1 ? xUnit / 2 : xUnit}\n height={height}\n style={{ fillOpacity: 0 }}\n onMouseOver={e => {\n this.setState({\n open: data[i] !== null,\n rectArea: data[i] === null ? null : e.target,\n tooltip: data[i],\n currentPointX: p[0],\n });\n }}\n />\n /* eslint-enable react/no-array-index-key */\n ));\n }\n\n // Renders area chart\n renderArea(points) {\n const { data, fillColor, fillOpacity, height, isArea } = this.props;\n\n if (!isArea || points.length === 0) {\n return null;\n }\n\n let segments = this.getSegmentSets(data, points);\n segments = segments.map(s =>\n s.concat([\n [s[s.length - 1][0], height], // down to bottom of graph\n [s[0][0], height], // over to below first data point\n s[0], // up to first data point to close the box\n ])\n );\n\n return (\n <g data-test=\"area\">\n {segments.map(s => (\n <polyline\n key={`area${s.join('')}`}\n points={s.join(' ')}\n data-test=\"area-line\"\n style={{\n fill: fillColor,\n fillOpacity,\n strokeWidth: '0',\n }}\n />\n ))}\n </g>\n );\n }\n\n renderCursor() {\n const {\n cursorStroke,\n cursorStrokeWidth,\n cursorStrokeLinecap,\n cursorStrokeDasharray,\n height,\n } = this.props;\n\n return (\n this.state.rectArea !== null && (\n <line\n data-test=\"cursor\"\n ref={this.handleCursorMount}\n x1={this.state.currentPointX}\n y1={0}\n x2={this.state.currentPointX}\n y2={height}\n style={{\n stroke: cursorStroke,\n strokeWidth: cursorStrokeWidth,\n strokeLinecap: cursorStrokeLinecap,\n strokeDasharray: cursorStrokeDasharray,\n }}\n />\n )\n );\n }\n\n renderTooltip() {\n return (\n this.state.anchor !== null && (\n <Popover\n data-test=\"tooltip\"\n open={this.state.open}\n anchor={this.state.anchor}\n data-test-value={this.state.tooltip}\n appearance=\"inverted\"\n defaultPlacement=\"above\"\n animation={false}\n >\n <StyledTooltip>\n {this.state.anchor !== null ? this.state.tooltip : undefined}\n </StyledTooltip>\n </Popover>\n )\n );\n }\n\n /**\n * Renders one or more svg circles to highlight values on the sparkline\n * @method renderEndDots\n * @param {Array[Array[Number]]} points // x,y coordinates of values\n * @param {Number} dotsToShow // number of end dots to display\n * @param {Number} xMargin // used when calculating the dot radius\n * @returns {Object} React representation of SVG group\n * @private\n */\n renderEndDots(points, dotsToShow, xMargin) {\n const { endDotFillColor, endDotRadius, endDotStroke, endDotStrokeWidth } = this.props;\n\n return (\n <g>\n {points.slice(-dotsToShow).map(point => (\n <circle\n key={`end-dot${point[0]}${point[1]}`}\n data-test=\"end-dot\"\n cx={point[0]}\n cy={point[1]}\n r={endDotRadius === 0 ? xMargin : endDotRadius}\n style={{\n fill: endDotFillColor,\n stroke: endDotStroke,\n strokeWidth: endDotStrokeWidth,\n }}\n />\n ))}\n </g>\n );\n }\n\n /**\n * Renders the line(s) above the area graph\n * @method renderPolyline\n * @param {Array} points\n * @returns {Object} SVG Group of polylines\n */\n renderPolyline(points) {\n const { data, lineColor, lineLength, lineStrokeWidth } = this.props;\n\n const linePoints = isFinite(lineLength) && lineLength > 0 ? lineLength : points.length;\n const lines = this.getSegmentSets(data.slice(-linePoints), points.slice(-linePoints));\n\n return (\n <g data-test=\"sparkline\">\n {lines.map(lineData => (\n <polyline\n key={`line${lineData.join('')}`}\n data-test=\"polyline\"\n style={{\n fill: 'none',\n stroke: lineColor,\n strokeWidth: lineStrokeWidth,\n strokeLinejoin: 'round',\n strokeLinecap: 'round',\n }}\n points={lineData.join(' ')}\n />\n ))}\n </g>\n );\n }\n\n render() {\n const {\n data,\n elementRef,\n showTooltip,\n showEndDot,\n endDotRadius,\n endDotStrokeWidth,\n endDotCount,\n height,\n isArea,\n lineStrokeWidth,\n width,\n title,\n } = this.props;\n\n if (data.length === 0) {\n return null;\n }\n\n // Calculate horizontal and vertical margin so that fit line or end dot.\n const xMargin = endDotRadius + endDotStrokeWidth / 2;\n const yMargin = Math.max(lineStrokeWidth / 2, endDotRadius + endDotStrokeWidth / 2);\n\n const points = this.dataToPoints(xMargin, yMargin);\n\n const dotsToShow = Math.max(showEndDot && 1, isFinite(endDotCount) && endDotCount > 0 && endDotCount);\n\n return (\n <div // eslint-disable-line jsx-a11y/mouse-events-have-key-events\n data-test=\"line\"\n data-test-type={isArea ? 'area' : 'line'}\n onMouseOut={() => {\n this.setState({\n open: false,\n anchor: null,\n rectArea: null,\n currentPointX: null,\n });\n }}\n ref={elementRef}\n {...omit(this.props, keys(SparkLine.propTypes))}\n >\n <StyledSvg\n height={height}\n width={width}\n role=\"img\"\n aria-labelledby={this.titleId}\n data-test=\"sparkline-svg\"\n >\n <title id={this.titleId} data-test=\"sparkline-title\">\n {title || _('Source count over time sparkline trend')}\n </title>\n <g>\n {this.renderCursor()}\n {this.renderPolyline(points)}\n {this.renderArea(points)}\n {dotsToShow ? this.renderEndDots(points, dotsToShow, xMargin) : null}\n {showTooltip ? this.renderRect(points, xMargin) : null}\n {showTooltip ? this.renderTooltip() : null}\n </g>\n </StyledSvg>\n </div>\n );\n }\n}\n\nexport default SparkLine;\n","module.exports = require(\"@babel/runtime/helpers/defineProperty\");","module.exports = require(\"lodash\");","module.exports = require(\"@babel/runtime/helpers/createClass\");","module.exports = require(\"@splunk/ui-utils/i18n\");","module.exports = require(\"@splunk/ui-utils/id\");","module.exports = require(\"styled-components\");","module.exports = require(\"@babel/runtime/helpers/extends\");","module.exports = require(\"@babel/runtime/helpers/classCallCheck\");","module.exports = require(\"@splunk/react-ui/Popover\");","module.exports = require(\"@babel/runtime/helpers/getPrototypeOf\");","module.exports = require(\"@babel/runtime/helpers/inherits\");","module.exports = require(\"@babel/runtime/helpers/possibleConstructorReturn\");"],"sourceRoot":""}
1
+ {
2
+ "version": 3,
3
+ "sources": ["src/SparkLine/SparkLine.jsx", "esm-externals:prop-types", "esm-externals:react", "esm-externals:lodash", "esm-externals:styled-components", "esm-externals:@splunk/react-ui/Popover", "esm-externals:@splunk/ui-utils/i18n", "esm-externals:@splunk/ui-utils/id"],
4
+ "sourcesContent": ["import PropTypes from 'prop-types';\nimport React, { Component } from 'react';\nimport { isArray, isFinite, isNull, keys, max, min, omit } from 'lodash';\nimport styled from 'styled-components';\nimport Popover from '@splunk/react-ui/Popover';\nimport { _ } from '@splunk/ui-utils/i18n';\nimport { createDOMID } from '@splunk/ui-utils/id';\n\nconst StyledSvg = styled.svg`\n /* For fixing IE11 shows overflow part line issue */\n overflow: hidden;\n`;\n\nconst StyledTooltip = styled.div`\n padding: 3px 8px;\n font-size: 12px;\n`;\n\nclass SparkLine extends Component {\n static propTypes = {\n /**\n * If true, data can contain `null` as a value and is treated as `0`. If false, this throws error when data contains `null`.\n */\n acceptNull: PropTypes.bool,\n /** Array of numbers. These data numbers are converted to points and show on sparkline. */\n data: props => {\n if (!isArray(props.data)) {\n return new Error('Data provided to Sparkline must be an array.');\n }\n\n if (props.acceptNull && !props.data.every(value => isNull(value) || isFinite(value))) {\n return new Error('Data provided to Sparkline must be finite numbers or null.');\n }\n\n if (!props.acceptNull && !props.data.every(value => isFinite(value))) {\n return new Error('Data provided to Sparkline must be finite numbers.');\n }\n return null;\n },\n /** A React ref which is set to the DOM element when the component mounts and `null` when it unmounts. */\n elementRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n /** Sets the number of end dots to display. When showEndDot is set to `true`, endDotCount is at least 1. If set to a positive value, this overrides showEndDot. */\n endDotCount: PropTypes.number,\n /** Fills color to the end dot. */\n endDotFillColor: PropTypes.string,\n /**\n * Sets end dot radius. End dot radius must be less than or equal to the margin. By default, its value equals the margin.\n */\n endDotRadius: PropTypes.number,\n /** Sets end dot circle stroke color. */\n endDotStroke: PropTypes.string,\n /** Sets end dot circle stroke width in pixels. */\n endDotStrokeWidth: PropTypes.number,\n /** Fills color to area. */\n fillColor: PropTypes.string,\n /** Fills opacity to area. Value must be in 0 ~ 1. */\n fillOpacity: PropTypes.string,\n /** Sets cursor stroke color. */\n cursorStroke: PropTypes.string,\n /** Sets cursor stroke width in pixels. */\n cursorStrokeWidth: PropTypes.number,\n /** Sets cursor line cap style. */\n cursorStrokeLinecap: PropTypes.oneOf(['butt', 'round', 'square']),\n /** Sets cursor dash array style. */\n cursorStrokeDasharray: PropTypes.string,\n /**\n * Container height. If this value is specified, sparkline calculates the size using this height. If height isn't specified,\n * sparkline figures out the container height by itself.\n */\n height: PropTypes.number.isRequired,\n /** When set to `true`, sparkline shows as area. */\n isArea: PropTypes.bool,\n /** The sparkline line color. */\n lineColor: PropTypes.string,\n /** Allows user to draw only the last data points for the line. */\n lineLength: PropTypes.number,\n /** The sparkline line stroke width in pixels. */\n lineStrokeWidth: PropTypes.number,\n /** Enable to show end dot. */\n showEndDot: PropTypes.bool,\n /** Enable to show tooltip. */\n showTooltip: PropTypes.bool,\n /** Sets the data value range and maximum value shown on sparkline. */\n yMax: PropTypes.number,\n /** Sets the data value range and minimum value shown on sparkline. */\n yMin: PropTypes.number,\n /**\n * The width of the container.\n */\n width: PropTypes.number.isRequired,\n /** Sets the a11y title text on sparkline. */\n title: PropTypes.string,\n };\n\n static defaultProps = {\n acceptNull: false,\n data: [],\n showTooltip: true,\n endDotCount: 0,\n showEndDot: false,\n endDotRadius: 0,\n endDotFillColor: 'white',\n endDotStroke: 'black',\n endDotStrokeWidth: 0,\n fillColor: '#65a637',\n fillOpacity: '.1',\n cursorStroke: '#5184AF',\n cursorStrokeWidth: 3,\n cursorStrokeLinecap: 'square',\n cursorStrokeDasharray: '1, 5',\n isArea: false,\n lineColor: '#65a637',\n lineStrokeWidth: 1,\n };\n\n constructor(props, ...rest) {\n super(props, ...rest);\n this.state = {\n anchor: null,\n currentPointX: null,\n open: false,\n rectArea: null,\n tooltip: null,\n };\n this.titleId = createDOMID();\n }\n\n getMax() {\n const { data, acceptNull, yMax } = this.props;\n const dataMax = () => (acceptNull ? max(this.fillNull(data)) : max(data));\n return yMax !== undefined ? yMax : dataMax();\n }\n\n getMin() {\n const { data, acceptNull, yMin } = this.props;\n const dataMin = () => (acceptNull ? min(this.fillNull(data)) : min(data));\n return yMin !== undefined ? yMin : dataMin();\n }\n\n /**\n * Gets unit value of x axis.\n * @param {Number} xMargin - margin of x axis.\n * @return {Number} unit value of x axis.\n * @private\n */\n getXUnit(xMargin) {\n const { data, width } = this.props;\n // Calculate xUnit. Width substract the left margin and right margin, then divide by data length.\n const xUnit = (width - xMargin * 2) / (data.length > 1 ? data.length - 1 : 1);\n return Math.max(0, xUnit);\n }\n\n /**\n * Gets unit value of y axis.\n * @param {String} yMargin - margin of y axis.\n * @return {Number} unit value of y axis.\n * @private\n */\n getYUnit(yMargin) {\n const { height } = this.props;\n const maxValue = this.getMax();\n const minValue = this.getMin();\n\n // Calculate yUnit. Height substract the upper margin and bottom margin, then divide by value range of values in data.\n // if the maxValue equals minValue, means all values in data are the same, then, we need to set the YUnit at the mid value of Height.\n // So, draws sparkline right in the mid of the container.\n const yUnit = (height - yMargin * 2) / (maxValue - minValue || 2);\n return Math.max(0, yUnit);\n }\n\n /**\n * Get a list of arrays of points for drawing lines, based on acceptNull property\n * @method getSegmentSets\n * @param {Array} data\n * @param {Array} points\n * @returns {Array} List of datapoint sets used for drawing lines\n */\n getSegmentSets(data, points) {\n const { acceptNull } = this.props;\n const lines = [];\n let currentLine = [];\n\n data.forEach((p, idx) => {\n // Found null data\n if (!acceptNull && isNull(p)) {\n // need at least 2 points to draw a segment\n if (currentLine.length > 1) {\n lines.push(currentLine);\n }\n // reset for the next segment\n currentLine = [];\n } else {\n // data is good, add point data\n currentLine.push(points[idx]);\n }\n });\n\n // Add the last line\n if (currentLine.length > 1) {\n lines.push(currentLine);\n }\n\n return lines;\n }\n\n handleCursorMount = el => {\n this.setState({\n anchor: el,\n });\n };\n\n /**\n * Utility for fill null value with number 0.\n * @private\n */\n fillNull() {\n const { data } = this.props;\n return data.map(value => (value === null ? 0 : value));\n }\n\n /**\n * Converts data to points in svg\n * @param {Number} xMargin - margin of x axis.\n * @param {Number} yMargin - margin of x axis.\n * @return {Array} points coordination.\n * @private\n */\n dataToPoints(xMargin, yMargin) {\n const { data } = this.props;\n const xUnit = this.getXUnit(xMargin);\n const yUnit = this.getYUnit(yMargin);\n const maxValue = this.getMax();\n const minValue = this.getMin();\n return data\n .map((val, idx) => ({\n x: idx * xUnit + xMargin,\n y: maxValue === minValue ? yUnit + yMargin : (maxValue - val) * yUnit + yMargin,\n }))\n .map(p => [p.x, p.y]);\n }\n\n /**\n * Renders rect area for helping figure out which is the nearest point so that\n * render related cursor and tooltip.\n * @param {Array} points - array of points coordination.\n * @param {Number} xMargin - margin of x axis.\n * @return {Array} array of svg rect objects\n * @private\n */\n renderRect(points, xMargin) {\n const { data, height } = this.props;\n const xUnit = this.getXUnit(xMargin);\n\n return points.map((p, i) => (\n /* eslint-disable react/no-array-index-key */\n <rect // eslint-disable-line jsx-a11y/mouse-events-have-key-events\n key={`${i}_${p[0]}`}\n data-test={`rect-${i}`}\n x={p[0] - xUnit / 2 <= 0 ? 0 : p[0] - xUnit / 2}\n y={0}\n width={i === 0 && data.length !== 1 ? xUnit / 2 : xUnit}\n height={height}\n style={{ fillOpacity: 0 }}\n onMouseOver={e => {\n this.setState({\n open: data[i] !== null,\n rectArea: data[i] === null ? null : e.target,\n tooltip: data[i],\n currentPointX: p[0],\n });\n }}\n />\n /* eslint-enable react/no-array-index-key */\n ));\n }\n\n // Renders area chart\n renderArea(points) {\n const { data, fillColor, fillOpacity, height, isArea } = this.props;\n\n if (!isArea || points.length === 0) {\n return null;\n }\n\n let segments = this.getSegmentSets(data, points);\n segments = segments.map(s =>\n s.concat([\n [s[s.length - 1][0], height], // down to bottom of graph\n [s[0][0], height], // over to below first data point\n s[0], // up to first data point to close the box\n ])\n );\n\n return (\n <g data-test=\"area\">\n {segments.map(s => (\n <polyline\n key={`area${s.join('')}`}\n points={s.join(' ')}\n data-test=\"area-line\"\n style={{\n fill: fillColor,\n fillOpacity,\n strokeWidth: '0',\n }}\n />\n ))}\n </g>\n );\n }\n\n renderCursor() {\n const {\n cursorStroke,\n cursorStrokeWidth,\n cursorStrokeLinecap,\n cursorStrokeDasharray,\n height,\n } = this.props;\n\n return (\n this.state.rectArea !== null && (\n <line\n data-test=\"cursor\"\n ref={this.handleCursorMount}\n x1={this.state.currentPointX}\n y1={0}\n x2={this.state.currentPointX}\n y2={height}\n style={{\n stroke: cursorStroke,\n strokeWidth: cursorStrokeWidth,\n strokeLinecap: cursorStrokeLinecap,\n strokeDasharray: cursorStrokeDasharray,\n }}\n />\n )\n );\n }\n\n renderTooltip() {\n return (\n this.state.anchor !== null && (\n <Popover\n data-test=\"tooltip\"\n open={this.state.open}\n anchor={this.state.anchor}\n data-test-value={this.state.tooltip}\n appearance=\"inverted\"\n defaultPlacement=\"above\"\n animation={false}\n >\n <StyledTooltip>\n {this.state.anchor !== null ? this.state.tooltip : undefined}\n </StyledTooltip>\n </Popover>\n )\n );\n }\n\n /**\n * Renders one or more svg circles to highlight values on the sparkline\n * @method renderEndDots\n * @param {Array[Array[Number]]} points // x,y coordinates of values\n * @param {Number} dotsToShow // number of end dots to display\n * @param {Number} xMargin // used when calculating the dot radius\n * @returns {Object} React representation of SVG group\n * @private\n */\n renderEndDots(points, dotsToShow, xMargin) {\n const { endDotFillColor, endDotRadius, endDotStroke, endDotStrokeWidth } = this.props;\n\n return (\n <g>\n {points.slice(-dotsToShow).map(point => (\n <circle\n key={`end-dot${point[0]}${point[1]}`}\n data-test=\"end-dot\"\n cx={point[0]}\n cy={point[1]}\n r={endDotRadius === 0 ? xMargin : endDotRadius}\n style={{\n fill: endDotFillColor,\n stroke: endDotStroke,\n strokeWidth: endDotStrokeWidth,\n }}\n />\n ))}\n </g>\n );\n }\n\n /**\n * Renders the line(s) above the area graph\n * @method renderPolyline\n * @param {Array} points\n * @returns {Object} SVG Group of polylines\n */\n renderPolyline(points) {\n const { data, lineColor, lineLength, lineStrokeWidth } = this.props;\n\n const linePoints = isFinite(lineLength) && lineLength > 0 ? lineLength : points.length;\n const lines = this.getSegmentSets(data.slice(-linePoints), points.slice(-linePoints));\n\n return (\n <g data-test=\"sparkline\">\n {lines.map(lineData => (\n <polyline\n key={`line${lineData.join('')}`}\n data-test=\"polyline\"\n style={{\n fill: 'none',\n stroke: lineColor,\n strokeWidth: lineStrokeWidth,\n strokeLinejoin: 'round',\n strokeLinecap: 'round',\n }}\n points={lineData.join(' ')}\n />\n ))}\n </g>\n );\n }\n\n render() {\n const {\n data,\n elementRef,\n showTooltip,\n showEndDot,\n endDotRadius,\n endDotStrokeWidth,\n endDotCount,\n height,\n isArea,\n lineStrokeWidth,\n width,\n title,\n } = this.props;\n\n if (data.length === 0) {\n return null;\n }\n\n // Calculate horizontal and vertical margin so that fit line or end dot.\n const xMargin = endDotRadius + endDotStrokeWidth / 2;\n const yMargin = Math.max(lineStrokeWidth / 2, endDotRadius + endDotStrokeWidth / 2);\n\n const points = this.dataToPoints(xMargin, yMargin);\n\n const dotsToShow = Math.max(showEndDot && 1, isFinite(endDotCount) && endDotCount > 0 && endDotCount);\n\n return (\n <div // eslint-disable-line jsx-a11y/mouse-events-have-key-events\n data-test=\"line\"\n data-test-type={isArea ? 'area' : 'line'}\n onMouseOut={() => {\n this.setState({\n open: false,\n anchor: null,\n rectArea: null,\n currentPointX: null,\n });\n }}\n ref={elementRef}\n {...omit(this.props, keys(SparkLine.propTypes))}\n >\n <StyledSvg\n height={height}\n width={width}\n role=\"img\"\n aria-labelledby={this.titleId}\n data-test=\"sparkline-svg\"\n >\n <title id={this.titleId} data-test=\"sparkline-title\">\n {title || _('Source count over time sparkline trend')}\n </title>\n <g>\n {this.renderCursor()}\n {this.renderPolyline(points)}\n {this.renderArea(points)}\n {dotsToShow ? this.renderEndDots(points, dotsToShow, xMargin) : null}\n {showTooltip ? this.renderRect(points, xMargin) : null}\n {showTooltip ? this.renderTooltip() : null}\n </g>\n </StyledSvg>\n </div>\n );\n }\n}\n\nexport default SparkLine;\n", "\nimport * as defaultImport from \"prop-types\";\nexport * from \"prop-types\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"react\";\nexport * from \"react\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"lodash\";\nexport * from \"lodash\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"styled-components\";\nexport * from \"styled-components\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/react-ui/Popover\";\nexport * from \"@splunk/react-ui/Popover\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/i18n\";\nexport * from \"@splunk/ui-utils/i18n\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n", "\nimport * as defaultImport from \"@splunk/ui-utils/id\";\nexport * from \"@splunk/ui-utils/id\";\nexport default ('default' in defaultImport ? defaultImport.default : defaultImport);\n"],
5
+ "mappings": "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",
6
+ "names": ["defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport", "defaultImport"]
7
+ }
package/TRELLIS.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # Trellis layout
2
2
 
3
- > Trellis is only available for single value visualizations.
3
+ > Trellis is only available for Area, Bar, Column, Line and Single value visualizations.
4
4
 
5
5
  Organize your search results with the trellis layout for a holistic view of your data. Trellis layout visualizes your search results by separating each value field or aggregation.
6
6
 
7
- The search in the following example returns customer purchases by product category. Applying a trellis layout creates a view of each product category as its own single value visualization.
7
+ The search in the following example returns customer purchases by product category. Applying a trellis layout creates a view of each product category as its own visualization.
8
8
 
9
9
  `index="sample-data" | stats count by productName`
10
10
 
@@ -18,8 +18,8 @@ Configure your visualization for the trellis layout by adding the `splitByLayout
18
18
 
19
19
  Customers with access to a Unified Dashboard Framework (UDF) **Edit** mode can create the trellis layout using the following steps. If you’re not using UDF, skip to step 4.
20
20
 
21
- 1. Select a single value visualization using the visual editor by clicking the **Add Chart** dropdown menu in the editing toolbar.
22
- 2. Select the single value on your dashboard so that it's highlighted with the blue editing outline.
21
+ 1. Select a visualization that supports trellis (Area, Bar, Column, Line, Single value) using the visual editor by clicking the **Add Chart** dropdown menu in the editing toolbar.
22
+ 2. Select the visualization on your dashboard so that it's highlighted with the blue editing outline.
23
23
  3. Set up a new data source by adding selecting **+ Create Search** and adding a search to the **Search query** window. Or, select an existing data source under the **Search**, **Saved Search**, or **Chain Search** dropdown lists.
24
24
  4. Activate the trellis layout by toggling on **Trellis Layout** in the **Data display** section of the Configuration panel.
25
25
 
@@ -28,15 +28,16 @@ Customers with access to a Unified Dashboard Framework (UDF) **Edit** mode can c
28
28
  Additionally, you can add the following trellis configurations to the `options` stanza for further customization.
29
29
 
30
30
  ```markup
31
- | Option | Type | Default | Description |
32
- | ---------------------- | ------ | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
33
- | splitByLayout | string | off | Specify the layout method to display the visualization, which splits the data into individual visualizations based on a specific category. The available values are off and trellis. |
34
- | trellisBackgroundColor | string | > themes.defaultBackgroundColor | Specify the background color of the whole panel in the trellis layout display. For example, “#FF0000”. You can use a hexadecimal code to apply the color. The default for Enterprise light is #ffffff. The default for Enterprise dark is #000000. The default for Prisma dark is #0b0c0e. |
35
- | trellisColumns | number | n/a | Specify the number of columns in a trellis layout container. For example, six columns allow six visualizations per row. Rows populate to accommodate the total number of visualizations. If no column number is specified, the number of columns is automatically set based on the value specified for trellisMinColumnWidth. |
36
- | trellisMinColumnWidth | number | 100 | Specify the minimum width, in pixels, of each visualization in the trellis container. If you resize the window or panel, you can view the remaining visualizations by scrolling. |
37
- | trellisPageCount | number | 20 | Specify the maximum number of visualizations to display on a single page in the trellis container. The remaining visualizations paginate accordingly. |
38
- | trellisRowHeight | number | 70 | Specify each visualization's height, in pixels, in the trellis container. If you resize the window or panel, you can view the remaining visualizations by scrolling. |
39
- | trellisSplitBy | string | n/a | If applicable, specify the column's field name with categories used or aggregations to split the data into individual visualizations for trellis display. If you use an SPL `timechart` command, this might default to the SPL `by` clause field. If you use an SPL `chart` command, this might default to the first string field. |
31
+ | Option | Type | Default | Description |
32
+ | ---------------------- | ------- | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
33
+ | splitByLayout | string | off | Specify the layout method to display the visualization, which splits the data into individual visualizations based on a specific category. The available values are off and trellis. |
34
+ | trellisBackgroundColor | string | > themes.defaultBackgroundColor | Specify the background color of the whole panel in the trellis layout display. For example, “#FF0000”. You can use a hexadecimal code to apply the color. The default for Enterprise light is #ffffff. The default for Enterprise dark is #000000. The default for Prisma dark is #0b0c0e. |
35
+ | trellisColumns | number | n/a | Specify the number of columns in a trellis layout container. For example, six columns allow six visualizations per row. Rows populate to accommodate the total number of visualizations. If no column number is specified, the number of columns is automatically set based on the value specified for trellisMinColumnWidth. |
36
+ | trellisMinColumnWidth | number | 100 | Specify the minimum width, in pixels, of each visualization in the trellis container. If you resize the window or panel, you can view the remaining visualizations by scrolling. |
37
+ | trellisPageCount | number | 20 | Specify the maximum number of visualizations to display on a single page in the trellis container. The remaining visualizations paginate accordingly. |
38
+ | trellisRowHeight | number | 70 | Specify each visualization's height, in pixels, in the trellis container. If you resize the window or panel, you can view the remaining visualizations by scrolling. |
39
+ | trellisSharedScale | boolean | true | If applicable, specify whether all visualizations will share the same scale in the trellis container. This only applies to Area, Bar, Column and Line chart. |
40
+ | trellisSplitBy | string | n/a | If applicable, specify the column's field name with categories used or aggregations to split the data into individual visualizations for trellis display. If you use an SPL `timechart` command, this might default to the SPL `by` clause field. If you use an SPL `chart` command, this might default to the first string field. |
40
41
  ```
41
42
 
42
43
  ## Overview of data-splitting logic
@@ -47,7 +48,7 @@ If your application has SPL support, the following are examples of how SPL searc
47
48
 
48
49
  ### Split data with the timechart command
49
50
 
50
- When using the SPL `timechart` command, the trellis layout defaults to an associated `by` clause. The following example shows how the trellis layout categorizes each single value visualization by product name as a result of the SPL search `index="sample-data" | timechart count by productName`.
51
+ When using the SPL `timechart` command, the trellis layout defaults to an associated `by` clause. The following example shows how the trellis layout categorizes each Single value visualization by product name as a result of the SPL search `index="sample-data" | timechart count by productName`.
51
52
 
52
53
  ![](./src/common/docs/images/trellis-timechart.png)
53
54
 
@@ -114,7 +115,7 @@ export default () => (
114
115
 
115
116
  ### Split data with the chart or stats commands
116
117
 
117
- The trellis layout defaults to the first string field when using the SPL `chart` or `stats` command with one `by` clause. The following example shows how the trellis layout categorizes each single value visualization by the `productName` column as a result of the SPL search `index="sample-data" | chart count by productName`.
118
+ The trellis layout defaults to the first string field when using the SPL `chart` or `stats` command with one `by` clause. The following example shows how the trellis layout categorizes each visualization, in this case Single value, by the `productName` column as a result of the SPL search `index="sample-data" | chart count by productName`.
118
119
 
119
120
  ![](./src/common/docs/images/trellis-chart-stats.png)
120
121