Customize context menu to create new pivot in the pop-up

Embedding Flexmonster

HTML

<link rel="stylesheet" href="https://s3.amazonaws.com/flexmonster/2.3/demo.css">
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<script src="https://cdn.flexmonster.com/2.4/flexmonster.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">

<div id="pivot-container"></div>

<div id="dialog" title="Pivot details">
<p><b>Details</b><br>
  Row: <span id="cell-row"></span><br>
  Column: <span id="cell-col"></span><br>
  <span id="cell-measure"></span>
  </p>
  <div id="pivot-container-1"></div>
</div>

CSS

#dialog {
  width: 80%;
}

JavaScript

var pivot = new Flexmonster({
  container: "#pivot-container",
  componentFolder: "https://cdn.flexmonster.com/2.4/",
  width: "100%",
  height: 350,
  toolbar: true,
  report: {
    dataSource: {
      filename: "data/data.csv"
    },
    slice: {
      rows: [{
        uniqueName: "Color"
      }, {
        uniqueName: "Country"
      }],
      columns: [{
        uniqueName: "Business Type"
      }, {
        uniqueName: "[Measures]"
      }],
      measures: [{
        uniqueName: "Price"
      }],
    },
    options: {
    	configuratorActive: false
    }
  }
});

document.body.addEventListener('contextmenu', onRightClick);

$("#dialog").dialog({
    width: document.body.clientWidth - 100,
    autoOpen: false,
    modal: true
  });

var cell = null;

function onRightClick(e) {
  var addItem = ($(e.target).hasClass("fm-cell") && !$(e.target).hasClass("fm-header"));
  cell = pivot.getSelectedCell();
  setTimeout(function() {
    customizeFlexmonsterContextMenu(pivot, addItem);
  }, 1);
}

function customizeFlexmonsterContextMenu(pivot, addItem) {
  if (!addItem) {
    $('#fm-context-menu ul #fm-open-pivot').remove();
    return;
  }
  if ($('#fm-context-menu ul #fm-open-pivot').length > 0) {
    return;
  }
  var openInNewPivot = $('<li class="fm-ui" id="fm-open-pivot"></li>');
  openInNewPivot.append('<span class="fm-ui" id="#fm-text-display">Open in New Pivot</span>');
  openInNewPivot.click(function(e) {
    e.stopImmediatePropagation();
    openNewPivot(cell);
  });
  $('#fm-context-menu ul').prepend(openInNewPivot);
}

var pivot1 = null;

var openNewPivot = function(cell) {
  console.log(">>", cell);

  var measure = cell.measure.uniqueName;
  var rowTuple = [];
  var rows = []
  for (var i = 0; i < cell.rows.length; i++) {
    rowTuple.push(cell.rows[i].uniqueName);
    rows.push(cell.rows[i].caption);
  }
  var columnTuple = [];
  var cols = [];
  for (var i = 0; i < cell.columns.length; i++) {
    columnTuple.push(cell.columns[i].uniqueName);
   ...