<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>ZingSoft Demo</title>
  <style>
    * {
      font-family: 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans';
      font-size: 12px;
    }
  </style>
  <link href="https://fonts.googleapis.com/css?family=Exo+2" rel="stylesheet">
  <script nonce="undefined" src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js"></script>
  <script nonce="undefined" src="https://cdn.zingchart.com/zingchart.min.js"></script>
  <style>
    html,
    body {
      height: 100%;
      width: 100%;
      margin: 0;
      padding: 0;
    }
    #myChart {
      height: 100%;
      width: 100%;
      min-height: 150px;
    }
    .zc-ref {
      display: none;
    }
  </style>
</head>
<body>
  <div style="padding:5px;">
    <select id="n">
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
      <option value="6">6</option>
      <option value="7" selected="selected">7</option>
    </select> elements,
    <select id="a">
      <option value="180">180</option>
      <option value="270">270</option>
      <option value="360" selected="selected">360</option>
    </select> aperture, starting at
    <select id="ra">
      <option value="0">0</option>
      <option value="45">45</option>
      <option value="90">90</option>
      <option value="135">135</option>
      <option value="180">180</option>
      <option value="225">225</option>
      <option value="270" selected="selected">270</option>
      <option value="315">315</option>
    </select> degrees, with
    <select id="an">
      <option value="-1" selected="selected">no animation</option>
      <option value="0">effect 0</option>
      <option value="1">effect 1</option>
      <option value="2">effect 2</option>
      <option value="3">effect 3</option>
      <option value="4">effect 4</option>
    </select>,
    <select id="s">
      <option value="0" selected="selected">non-sequenced</option>
      <option value="1">in sequence</option>
    </select>
    <button id="r">Render</button>
  </div>
  <div id="zc"></div>
  <script>
    ZC.LICENSE = ["569d52cefae586f634c54f86dc99e6a9", "b55b025e438fa8a98e32482b5f768ff5"];
    var aPalette = ['#F4C62B', '#F8931F', '#8CC63E', '#93268F', '#EA1F78', '#828BC4', '#EC7A9C', '#0083CB'];
    var aGradientColors = ['#ECCD63', '#EFB060', '#9FC26E', '#A65FA1', '#E15B96', '#A0A5CB', '#DF97AD', '#459BCA'];
    var aIcons = ['ic00', 'ic01', 'ic02', 'ic03', 'ic04', 'ic10', 'ic06', 'ic07'];
    var aText = [
      'Lorem ipsum<br>dolor sit amet',
      'Lorem ipsum<br>dolor sit amet',
      'Lorem ipsum<br>dolor sit amet',
      'Lorem ipsum<br>dolor sit amet',
      'Lorem ipsum<br>dolor sit amet',
      'Lorem ipsum<br>dolor sit amet',
      'Lorem ipsum<br>dolor sit amet'
    ];
    var aTooltipText = [
      'Lorem ipsum', 'Lorem ipsum', 'Lorem ipsum', 'Lorem ipsum', 'Lorem ipsum', 'Lorem ipsum',
      'Lorem ipsum', 'Lorem ipsum', 'Lorem ipsum', 'Lorem ipsum', 'Lorem ipsum', 'Lorem ipsum'
    ];
    var render = function() {
      var cdata = {
        resources: [{
          type: 'css',
          url: 'https://fonts.googleapis.com/css?family=Exo+2'
        }],
        type: 'pie',
        plotarea: {
          margin: 0
        },
        scaleR: {
          aperture: parseInt(a.value, 10),
          refAngle: parseInt(ra.value, 10)
        },
        plot: {
          detach: false,
          borderWidth: 8,
          borderColor: '#FFF',
          slice: '30%',
          pieTransform: 'none',
          hoverState: {
            visible: false
          }
        },
        series: []
      };
      if (an.value !== '-1') {
        cdata['plot'].animation = {
          speed: 200,
          method: 0,
          effect: parseInt(an.value, 10),
          sequence: parseInt(s.value, 10)
        };
      }
      var items = parseInt(n.value, 10);
      for (var i = 0; i < items; i++) {
        var no = i + 1;
        cdata['series'].push({
          values: [1],
          tooltipText: aTooltipText[i],
          dataNo: ((no <= 9) ? '0' + no : no),
          valueBox: [{
              width: 48,
              height: 48,
              align: 'center',
              placement: 'fixed=94%;50%',
              borderRadius: 48,
              backgroundColor: aPalette[i],
              fontSize: 24,
              shadow: false,
              color: '#FFF',
              decimals: 0,
              fontFamily: '"Exo 2"',
              text: '%data-no'
            },
            {
              align: 'left',
              placement: 'fixed=50%;50%;+0',
              backgroundColor: 'none',
              shadow: false,
              fontWeight: 'none',
              fontFamily: '"Exo 2"',
              fontSize: 12,
              text: aText[i]
            }
          ],
          backgroundColor: aPalette[i],
          gradientColors: [aPalette[i], aPalette[i], aGradientColors[i], aPalette[i], aPalette[i]].join(' '),
          gradientStops: [0.001, 0.30, 0.4, 0.401, 0.99].join(' ')
        });
      }
      WebFont.load({
        google: {
          families: ['Exo 2']
        },
        active: function() {
          zingchart.render({
            id: 'zc',
            width: 450,
            height: 450,
            output: 'svg',
            data: cdata,
            events: {
              animation_end: function(p) {
                if (an.value !== '-1') {
                  addElements(p);
                }
              },
              load: function(p) {
                if (an.value === '-1') {
                  addElements(p);
                }
              }
            }
          });
        }
      });
    }
    window.addEventListener('load', function() {
      r.addEventListener('click', function() {
        render();
      });
      render();
      window.addElements = function(p) {
        var iPlots = zingchart.exec(p.id, 'getplotlength');
        var aObjects = [],
          oInfo;
        for (var i = 0; i < iPlots; i++) {
          oInfo = zingchart.exec(p.id, 'getobjectinfo', {
            object: 'node',
            plotindex: i,
            nodeindex: 0
          });
        }
        aObjects.push({
          x: oInfo.x,
          y: oInfo.y,
          width: 1.75 * oInfo.slice * oInfo.size,
          fontFamily: '"Exo 2"',
          fontSize: 14,
          align: 'center',
          fontWeight: 600,
          color: '#666',
          anchor: 'c',
          text: '<span style="font-size:19px;font-weight:900;color:#DE1E19">BUSINESS</span><br><span>INFOGRAPHIC</span>'
        });
        zingchart.exec(p.id, 'addobject', {
          type: 'label',
          data: aObjects
        });
      };
    });
  </script>
</body>
</html>
       
      
        
        <!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>ZingSoft Demo</title>
  <style>
    * {
      font-family: 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans';
      font-size: 12px;
    }
  </style>
  <link href="https://fonts.googleapis.com/css?family=Exo+2" rel="stylesheet">
  <script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js"></script>
  <script src="https://cdn.zingchart.com/zingchart.min.js"></script>
</head>
<body>
  <div style="padding:5px;">
    <select id="n">
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
      <option value="6">6</option>
      <option value="7" selected="selected">7</option>
    </select> elements,
    <select id="a">
      <option value="180">180</option>
      <option value="270">270</option>
      <option value="360" selected="selected">360</option>
    </select> aperture, starting at
    <select id="ra">
      <option value="0">0</option>
      <option value="45">45</option>
      <option value="90">90</option>
      <option value="135">135</option>
      <option value="180">180</option>
      <option value="225">225</option>
      <option value="270" selected="selected">270</option>
      <option value="315">315</option>
    </select> degrees, with
    <select id="an">
      <option value="-1" selected="selected">no animation</option>
      <option value="0">effect 0</option>
      <option value="1">effect 1</option>
      <option value="2">effect 2</option>
      <option value="3">effect 3</option>
      <option value="4">effect 4</option>
    </select>,
    <select id="s">
      <option value="0" selected="selected">non-sequenced</option>
      <option value="1">in sequence</option>
    </select>
    <button id="r">Render</button>
  </div>
  <div id="zc"></div>
</body>
</html>
       
      
        html,
body {
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
}
#myChart {
  height: 100%;
  width: 100%;
  min-height: 150px;
}
.zc-ref {
  display: none;
}
       
      
        var aPalette = ['#F4C62B', '#F8931F', '#8CC63E', '#93268F', '#EA1F78', '#828BC4', '#EC7A9C', '#0083CB'];
var aGradientColors = ['#ECCD63', '#EFB060', '#9FC26E', '#A65FA1', '#E15B96', '#A0A5CB', '#DF97AD', '#459BCA'];
var aIcons = ['ic00', 'ic01', 'ic02', 'ic03', 'ic04', 'ic10', 'ic06', 'ic07'];
var aText = [
  'Lorem ipsum<br>dolor sit amet',
  'Lorem ipsum<br>dolor sit amet',
  'Lorem ipsum<br>dolor sit amet',
  'Lorem ipsum<br>dolor sit amet',
  'Lorem ipsum<br>dolor sit amet',
  'Lorem ipsum<br>dolor sit amet',
  'Lorem ipsum<br>dolor sit amet'
];
var aTooltipText = [
  'Lorem ipsum', 'Lorem ipsum', 'Lorem ipsum', 'Lorem ipsum', 'Lorem ipsum', 'Lorem ipsum',
  'Lorem ipsum', 'Lorem ipsum', 'Lorem ipsum', 'Lorem ipsum', 'Lorem ipsum', 'Lorem ipsum'
];
var render = function() {
  var cdata = {
    resources: [{
      type: 'css',
      url: 'https://fonts.googleapis.com/css?family=Exo+2'
    }],
    type: 'pie',
    plotarea: {
      margin: 0
    },
    scaleR: {
      aperture: parseInt(a.value, 10),
      refAngle: parseInt(ra.value, 10)
    },
    plot: {
      detach: false,
      borderWidth: 8,
      borderColor: '#FFF',
      slice: '30%',
      pieTransform: 'none',
      hoverState: {
        visible: false
      }
    },
    series: []
  };
  if (an.value !== '-1') {
    cdata['plot'].animation = {
      speed: 200,
      method: 0,
      effect: parseInt(an.value, 10),
      sequence: parseInt(s.value, 10)
    };
  }
  var items = parseInt(n.value, 10);
  for (var i = 0; i < items; i++) {
    var no = i + 1;
    cdata['series'].push({
      values: [1],
      tooltipText: aTooltipText[i],
      dataNo: ((no <= 9) ? '0' + no : no),
      valueBox: [{
          width: 48,
          height: 48,
          align: 'center',
          placement: 'fixed=94%;50%',
          borderRadius: 48,
          backgroundColor: aPalette[i],
          fontSize: 24,
          shadow: false,
          color: '#FFF',
          decimals: 0,
          fontFamily: '"Exo 2"',
          text: '%data-no'
        },
        {
          align: 'left',
          placement: 'fixed=50%;50%;+0',
          backgroundColor: 'none',
          shadow: false,
          fontWeight: 'none',
          fontFamily: '"Exo 2"',
          fontSize: 12,
          text: aText[i]
        }
      ],
      backgroundColor: aPalette[i],
      gradientColors: [aPalette[i], aPalette[i], aGradientColors[i], aPalette[i], aPalette[i]].join(' '),
      gradientStops: [0.001, 0.30, 0.4, 0.401, 0.99].join(' ')
    });
  }
  WebFont.load({
    google: {
      families: ['Exo 2']
    },
    active: function() {
      zingchart.render({
        id: 'zc',
        width: 450,
        height: 450,
        output: 'svg',
        data: cdata,
        events: {
          animation_end: function(p) {
            if (an.value !== '-1') {
              addElements(p);
            }
          },
          load: function(p) {
            if (an.value === '-1') {
              addElements(p);
            }
          }
        }
      });
    }
  });
}
window.addEventListener('load', function() {
  r.addEventListener('click', function() {
    render();
  });
  render();
  window.addElements = function(p) {
    var iPlots = zingchart.exec(p.id, 'getplotlength');
    var aObjects = [],
      oInfo;
    for (var i = 0; i < iPlots; i++) {
      oInfo = zingchart.exec(p.id, 'getobjectinfo', {
        object: 'node',
        plotindex: i,
        nodeindex: 0
      });
    }
    aObjects.push({
      x: oInfo.x,
      y: oInfo.y,
      width: 1.75 * oInfo.slice * oInfo.size,
      fontFamily: '"Exo 2"',
      fontSize: 14,
      align: 'center',
      fontWeight: 600,
      color: '#666',
      anchor: 'c',
      text: '<span style="font-size:19px;font-weight:900;color:#DE1E19">BUSINESS</span><br><span>INFOGRAPHIC</span>'
    });
    zingchart.exec(p.id, 'addobject', {
      type: 'label',
      data: aObjects
    });
  };
});