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">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.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://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

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

<div id="drill-down">
        <div aria-labelledby="drill-down-title" class="modal" id="drill-down-dialog" role="dialog" tab-index="-1">
          <div class="modal-dialog" role="document">
            <div class="modal-content">
              <div class="modal-header">
                <button aria-label="close" class="close" data-dismiss="modal" role="button">×</button>
                <h4 class="modal-title" id="drill-down-title">Drill Down</h4>
              </div>
              <div class="modal-body">
                <div id="pivot-container-1"></div>
              </div>
            </div>
          </div>
        </div>
      </div>

CSS

#drill-down .modal-dialog {
  width: 80%;
  height: 80%;
  min-height: 600px;
}
#drill-down .modal-content {
  height: 100%;
}
#drill-down .modal-header {
  height: 56px;
}
#drill-down .modal-body-test {
  height: calc(100% - 56px);
}
#drill-down #drill-container {
  height: 100%;
}

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);

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 dialog = $('#drill-down-dialog');

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);
    cols.push(cell.columns[i].caption);
  }
  console.log(
    "Click on cell: "...