Zoomcharts State

Zoomcharts selection state after data is updated

by YeongCY

HTML

<script src="https://cdn.zoomcharts-cloud.com/1/latest/zoomcharts.js"></script>

<button onClick="filterData()">Remove</button>
<input id="filter" type="text" value="Playstation 3"><br>
<button onClick="restoreData()">Restore</button>
<div id="demo"></div>

JavaScript

var data = {
     subvalues: [{
         name: "Safari (in-app)",
         value: 0,
         "id": "Safari (in-app)"
       },
       {
         name: "Mozilla Compatible Agent",
         value: 296,
         "id": "Mozilla Compatible Agent"
       },
       {
         name: "Playstation 3",
         value: 204,
         "id": "Playstation 3"
       },
       {
         name: "YaBrowser",
         value: 179,
         "id": "YaBrowser"
       },
       {
         name: "IE with Chrome Frame",
         value: 92,
         "id": "IE with Chrome Frame"
       },
       {
         name: "Amazon Silk",
         value: 84,
         "id": "Amazon Silk"
       }
     ]
   };
   
   var newData = $.extend({}, data);

   var t = new FacetChart({
     container: document.getElementById("demo"),
     filters: {
     	allowZeroValues: false
     },
     data: {
       //preloaded: data
       dataFunction: function(id, limit, offset, success, fail) {
       console.log(id);
       if (id === '')
      		success(newData);
       else
       		fail();
       		
       }
     }
   });
   //var state = t.saveState();
   //console.log(state);

   function filterData() {
     var state = t.saveState();
     var filter = $("#filter").val();
     /* var newData = {
       subvalues: []
     }; */

     newData.subvalues = $.grep(data.subvalues, function(item, i) {
       return item.name !== filter;
     });
		
    t.reloadData();
     //t.replaceData(newData);

/*      setTimeout(function() {
       t.restoreState(state);
     }, 1000); */
   }
   
   function restoreData() {
   		//var state = t.saveState();
      
      
      newData = $.extend({}, data);
   		//t.replaceData(data);
      t.reloadData();
      
      
      
/*       setTimeout(function() {
       t.restoreState(state);
           }, 1000); */
   }