JSFiddle - React, Tailwind, and code Playground

by Kesav Telaprolu

HTML

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="https://code.highcharts.com/6.1.1/highcharts.js"></script>

<div  id="container"        
      style="width: 1240px;        
             height: 688px;               
             border-radius: 10px;               
             border: 1px solid #dbdbdb;
             overflow:auto;
             position:relative">
          
</div>

CSS

/*
 * Legal Disclaimer
 *
    print '\n', 'Note that the webfonts share the TT sources'
 * These Fonts are licensed for unlimited use on domains and their subdomains of The Kantar Group.
 * It is illegal to download or use them on other websites.
 *
 * While the @font-face statements below may be modified by the client, this
 * disclaimer may not be removed.
 *
 * Lineto.com, 2016
 */

@font-face {
  font-family: "KantarBrownWeb-LightItalic";
  src: url("https://riofontstorage.blob.core.windows.net/kantar-fonts/KantarBrownWeb-LightItalic.eot");
  src: url("https://riofontstorage.blob.core.windows.net/kantar-fonts/KantarBrownWeb-LightItalic.eot?#iefix") format("embedded-opentype"), url("https://riofontstorage.blob.core.windows.net/kantar-fonts/KantarBrownWeb-LightItalic.woff2") format("woff2"), url("https://riofontstorage.blob.core.windows.net/kantar-fonts/KantarBrownWeb-LightItalic.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: "KantarBrownWeb-BoldItalic";
  src: url("https://riofontstorage.blob.core.windows.net/kantar-fonts/KantarBrownWeb-BoldItalic.eot");
  src: url("https://riofontstorage.blob.core.windows.net/kantar-fonts/KantarBrownWeb-BoldItalic.eot?#iefix") format("embedded-opentype"), url("https://riofontstorage.blob.core.windows.net/kantar-fonts/KantarBrownWeb-BoldItalic.woff2") format("woff2"), url("https://riofontstorage.blob.core.windows.net/kantar-fonts/KantarBrownWeb-BoldItalic.woff") format("woff");
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: "KantarBrownWeb-Italic";
  src: url("https://riofontstorage.blob.core.windows.net/kantar-fonts/KantarBrownWeb-Italic.eot");
  src: url("https://riofontstorage.blob.core.windows.net/kantar-fonts/KantarBrownWeb-Italic.eot?#iefix") format("embedded-opentype"), url("https://riofontstorage.blob.core.windows.net/kantar-fonts/KantarBrownWeb-Italic.woff2") format("woff2");
  font-weight: normal;
  font-style: normal;
}

@font-face {
 ...

JavaScript

(input => {
    var chartWrapper = $("<div></div>").appendTo("#container")
        .attr("id", "chart_wrapper");

    var chartDiv = $("<div></div>").appendTo("#chart_wrapper")
        .attr("id", "chart_div");

    $('#chart_wrapper').append(`<style>
 
 #chart_wrapper{
 
 	width:1240px;
  height:688px;
   
  position:relative;
  
  /*IMAGE-GENERATOR-BEGIN-REMOVE*/
  padding: 35px 30px 20px 30px;
  /*IMAGE-GENERATOR-END-REMOVE*/
  
  box-sizing:border-box; 
  
 }
 
 #chart_div{
 	
  	width:100%;
    height:100%;
 }
 #chart_wrapper div {
 	margin : 0px;
  box-sizing:border-box;
 }
 </style>`)

    var MarketLevel = ["At risk", "Steady", "Opportunity"];

    var boxsizebaseOnvalue = [];
    for (var a = 0; a < input.dataSeries.length; a++) {
        boxsizebaseOnvalue.push(input.dataSeries[a].data);
    }
    var boxsortedlist = boxsizebaseOnvalue.sort(function (a, b) {
        return b - a
    });
    var seriesMaxValue = boxsortedlist[0]
    var boxminmaxlist = [];

    for (var b = 0; b < input.dataSeries.length; b++) {
        for (var c = 0; c < boxsortedlist.length; c++) {
            if (input.dataSeries[b].data == boxsortedlist[c]) {
                boxminmaxlist.push(c);
                break;
            }

        }
    }
    var scale = 106;
    var boxvalue = [];
    for (var d = 0; d < boxminmaxlist.length; d++) {
        if (boxminmaxlist[d] == 0) {
            boxvalue.push(scale);
        } else {
            var bsize = Math.sqrt(Math.round((input.dataSeries[d].data / boxsizebaseOnvalue[0]) * scale * scale));
            var boxround = bsize % 10;
            var sizeval = bsize < 10 ? Math.round(bsize) : Math.round(bsize - boxround);
            boxvalue.push(sizeval);
        }
    }
    var colorsData = new Map([
        ["High risk", "#371840"],
        ["Lower risk", "#974c98"],
        ["High share", "#dbdbdb"],
        ["Latent opportunity", "#0f7ca3"],
        ["Strong opportunity", "#84cee2"]
    ]);

    var tmpl1 = '<div...