<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>ZingSoft Demo</title>
  <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;
    }
  </style>
</head>
<body>
  <div id="myChart"></div>
  <script>
    ZC.LICENSE = ["569d52cefae586f634c54f86dc99e6a9", "b55b025e438fa8a98e32482b5f768ff5"];
    let chartConfig = {
      type: 'ring',
      title: {
        text: 'Drilldown Pie'
      },
      plot: {
        detach: false,
        cursor: 'hand',
        shadow: 8,
        valueBox: {
          placement: 'out'
        }
      },
      tooltip: {
        text: '%t: %v (%npv%)',
        borderRadius: 5
      },
      series: [{
          values: [69],
          backgroundColor: '#F44336',
          text: 'Visualization<br>Tools',
          'data-id': 'vt'
        },
        {
          values: [69],
          backgroundColor: '#009688',
          text: 'Site<br>Performance',
          'data-id': 'sp'
        },
        {
          values: [69],
          backgroundColor: '#00BCD4',
          text: 'Dev<br>Tools',
          'data-id': 'dt'
        },
        {
          values: [69],
          backgroundColor: '#03A9F4',
          text: 'Security<br>Tools',
          'data-id': 'st'
        },
        {
          values: [69],
          backgroundColor: '#673AB7',
          text: 'Data<br>Management',
          'data-id': 'dm'
        }
      ],
      shapes: [{
        x: 25,
        y: 20,
        size: 10,
        angle: -90,
        type: 'triangle',
        backgroundColor: '#C4C4C4',
        padding: 5,
        cursor: 'hand',
        id: 'backwards',
        hoverState: {
          borderWidth: 1,
          borderColor: '#000'
        }
      }]
    }
    zingchart.render({
      id: 'myChart',
      data: chartConfig,
      height: '100%',
      width: '100%'
    });
    /**
     * Create associative array to manage drilldown config
     */
    let drilldownDataStructure = [];
    drilldownDataStructure['vt'] = {
      series: [{
          values: [10],
          backgroundColor: '#EF5350'
        },
        {
          values: [25],
          backgroundColor: '#E53935'
        },
        {
          values: [34],
          backgroundColor: '#C62828'
        }
      ]
    };
    drilldownDataStructure['sp'] = {
      series: [{
          values: [15],
          backgroundColor: '#26A69A'
        },
        {
          values: [5],
          backgroundColor: '#80CBC4'
        },
        {
          values: [35],
          backgroundColor: '#00695C'
        },
        {
          values: [20],
          backgroundColor: '#00897B'
        }
      ]
    };
    drilldownDataStructure['dt'] = {
      series: [{
          values: [20],
          backgroundColor: '#26C6DA'
        },
        {
          values: [8],
          backgroundColor: '#80DEEA'
        },
        {
          values: [35],
          backgroundColor: '#00838F'
        },
        {
          values: [20],
          backgroundColor: '#00ACC1'
        }
      ]
    };
    drilldownDataStructure['st'] = {
      series: [{
          values: [35],
          backgroundColor: '#1565C0'
        },
        {
          values: [15],
          backgroundColor: '#42A5F5'
        },
        {
          values: [25],
          backgroundColor: '#1E88E5'
        },
        {
          values: [10],
          backgroundColor: '#90CAF9'
        }
      ]
    };
    drilldownDataStructure['dm'] = {
      series: [{
          values: [10],
          backgroundColor: '#5E35B1'
        },
        {
          values: [25],
          backgroundColor: '#4527A0'
        },
        {
          values: [35],
          backgroundColor: '#7E57C2'
        }
      ]
    };
    /*
     * Built in zingchart API event used to capture node click events.
     * Starting from this scope you will handle drilldown functionality.
     */
    zingchart.node_click = function(p) {
      // You could use this data to help construct drilldown graphs check it out...
      if (drilldownDataStructure[p['data-id']]) {
        zingchart.exec('myChart', 'setseriesdata', {
          data: drilldownDataStructure[p['data-id']]['series']
        });
      }
    }
    /*
     * Handle history buttons. You can assign
     * shapes id's and based on id you can go 
     * 'forward' or 'backwards'. You could 
     * also handle this with HTML and register
     * click events to those DOM elements.
     */
    zingchart.shape_click = function(p) {
      let shapeId = p.shapeid;
      switch (shapeId) {
        case 'forwards':
        case 'backwards':
        case 'default':
          zingchart.exec('myChart', 'destroy');
          zingchart.render({
            id: 'myChart',
            data: chartConfig,
            height: '100%',
            width: '100%'
          });
          break;
      }
    }
  </script>
</body>
</html>
       
      
        
        <!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>ZingSoft Demo</title>
  <script src="https://cdn.zingchart.com/zingchart.min.js"></script>
</head>
<body>
  <div id="myChart"></div>
</body>
</html>
       
      
        html,
body {
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
}
#myChart {
  height: 100%;
  width: 100%;
  min-height: 150px;
}
       
      
        let chartConfig = {
  type: 'ring',
  title: {
    text: 'Drilldown Pie'
  },
  plot: {
    detach: false,
    cursor: 'hand',
    shadow: 8,
    valueBox: {
      placement: 'out'
    }
  },
  tooltip: {
    text: '%t: %v (%npv%)',
    borderRadius: 5
  },
  series: [{
      values: [69],
      backgroundColor: '#F44336',
      text: 'Visualization<br>Tools',
      'data-id': 'vt'
    },
    {
      values: [69],
      backgroundColor: '#009688',
      text: 'Site<br>Performance',
      'data-id': 'sp'
    },
    {
      values: [69],
      backgroundColor: '#00BCD4',
      text: 'Dev<br>Tools',
      'data-id': 'dt'
    },
    {
      values: [69],
      backgroundColor: '#03A9F4',
      text: 'Security<br>Tools',
      'data-id': 'st'
    },
    {
      values: [69],
      backgroundColor: '#673AB7',
      text: 'Data<br>Management',
      'data-id': 'dm'
    }
  ],
  shapes: [{
    x: 25,
    y: 20,
    size: 10,
    angle: -90,
    type: 'triangle',
    backgroundColor: '#C4C4C4',
    padding: 5,
    cursor: 'hand',
    id: 'backwards',
    hoverState: {
      borderWidth: 1,
      borderColor: '#000'
    }
  }]
}
zingchart.render({
  id: 'myChart',
  data: chartConfig,
  height: '100%',
  width: '100%'
});
/**
 * Create associative array to manage drilldown config
 */
let drilldownDataStructure = [];
drilldownDataStructure['vt'] = {
  series: [{
      values: [10],
      backgroundColor: '#EF5350'
    },
    {
      values: [25],
      backgroundColor: '#E53935'
    },
    {
      values: [34],
      backgroundColor: '#C62828'
    }
  ]
};
drilldownDataStructure['sp'] = {
  series: [{
      values: [15],
      backgroundColor: '#26A69A'
    },
    {
      values: [5],
      backgroundColor: '#80CBC4'
    },
    {
      values: [35],
      backgroundColor: '#00695C'
    },
    {
      values: [20],
      backgroundColor: '#00897B'
    }
  ]
};
drilldownDataStructure['dt'] = {
  series: [{
      values: [20],
      backgroundColor: '#26C6DA'
    },
    {
      values: [8],
      backgroundColor: '#80DEEA'
    },
    {
      values: [35],
      backgroundColor: '#00838F'
    },
    {
      values: [20],
      backgroundColor: '#00ACC1'
    }
  ]
};
drilldownDataStructure['st'] = {
  series: [{
      values: [35],
      backgroundColor: '#1565C0'
    },
    {
      values: [15],
      backgroundColor: '#42A5F5'
    },
    {
      values: [25],
      backgroundColor: '#1E88E5'
    },
    {
      values: [10],
      backgroundColor: '#90CAF9'
    }
  ]
};
drilldownDataStructure['dm'] = {
  series: [{
      values: [10],
      backgroundColor: '#5E35B1'
    },
    {
      values: [25],
      backgroundColor: '#4527A0'
    },
    {
      values: [35],
      backgroundColor: '#7E57C2'
    }
  ]
};
/*
 * Built in zingchart API event used to capture node click events.
 * Starting from this scope you will handle drilldown functionality.
 */
zingchart.node_click = function(p) {
  // You could use this data to help construct drilldown graphs check it out...
  if (drilldownDataStructure[p['data-id']]) {
    zingchart.exec('myChart', 'setseriesdata', {
      data: drilldownDataStructure[p['data-id']]['series']
    });
  }
}
/*
 * Handle history buttons. You can assign
 * shapes id's and based on id you can go 
 * 'forward' or 'backwards'. You could 
 * also handle this with HTML and register
 * click events to those DOM elements.
 */
zingchart.shape_click = function(p) {
  let shapeId = p.shapeid;
  switch (shapeId) {
    case 'forwards':
    case 'backwards':
    case 'default':
      zingchart.exec('myChart', 'destroy');
      zingchart.render({
        id: 'myChart',
        data: chartConfig,
        height: '100%',
        width: '100%'
      });
      break;
  }
}