var costAmount=0;
var allCombinations;
var optionChainContext={};
$(document).ready(_=>{
dta={};
createOrderFrame();
createMasterFilterFrame();
let selectDataFirst=_=>{
return {enabled:false, tooltip:"Select a Ticker!"};
}
$("#datePicker").datepicker({beforeShowDay:selectDataFirst});
});
let createOrderFrame=()=>{
let theFrameDiv=document.createElement("div");
theFrameDiv.setAttribute("id","frmOrder");
theFrameDiv.className="container-fluid ";
window.document.getElementById('app').append(theFrameDiv);
theFrameDiv.innerHTML=`
Gain $0
`;
}
let clearOrder=()=>{
costAmount=0;
$("#listOrderItems").empty();
showCostAmount();
}
let addToOrder=(openType,optionData)=>{
optionData=JSON.parse(optionData.replace(/'/g,'"'));
console.log("AddToOrder",openType,optionData);
let price=(openType.substr(0,1)==="b")?optionData.ask:optionData.bid;
price=price*100;
let priceEffect=price * ((openType.substr(0,1)==="b")?-1:1);
costAmount+=priceEffect;
showCostAmount();
$("#listOrderItems").append(`
`);
}
let removeFromOrder=(ele,priceEffect)=>{
costAmount-=priceEffect;
let li=ele.parentElement;
li.parentElement.removeChild(li);
showCostAmount();
}
let showCostAmount=_=>{
$("#lbCostAmount").text(costAmount.toLocaleString('en',{minimumFractionDigits: 2, maximumFractionDigits: 2}));
}
let dta={};
let datesOut=(dateInp)=>{
let date=dateInp.split(':')[0];
let dte=dateInp.split(':')[1];
let attrActive="";
if (optionChainContext.selectedDte === dte) {
attrActive="active";
//fillChainTable(dateInp,date);
}
return `
`
}
let getCallArtifact=(callData,allColumns)=>{
let artifact="";
let classes=(callData.delta < 0.5)?" otm":" itm";
for (let i=0;i< allColumns.length;i++){
let cellValue=Number(callData[allColumns[i]]).toLocaleString('en',{minimumFractionDigits: 2, maximumFractionDigits: 2});
artifact+=`
`;
return artifact;
}
let getPutArtifact=(putData,allColumns)=>{
let artifact="";
let classes=(putData.delta > -0.5)?" otm":" itm";
for (let i=0;i< allColumns.length;i++){
let cellValue=Number(putData[allColumns[i]]).toLocaleString('en',{minimumFractionDigits: 2, maximumFractionDigits: 2});
artifact+=`
`;
return artifact;
}
let getStrikeArtifact=(strike)=>{
return `
${strike}
`;
}
let fillChainRow=(rowData)=>{
let theTable=document.getElementById("tblOptionChain");
let theNewRow=theTable.insertRow(-1);
let allColumns=["delta","theta"];
theNewRow.innerHTML=getCallArtifact(rowData.call,allColumns) + getStrikeArtifact(rowData.strike) + getPutArtifact(rowData.put,allColumns);
}
let clearChainTable=()=>{
let theTable=document.getElementById("tblOptionChain");
for (let i=theTable.rows.length;i>3;i--){
theTable.deleteRow(-1);
}
}
let fillChainTable=(expirationDate,dteOnly)=>{
// Maintain Active Tab
$(".nav a").on("click", function(){
$(".nav").find(".active").removeClass("active");
$(this).parent().addClass("active");
});
clearChainTable();
optionChainContext.selectedDte=dteOnly;
let allCalls=dta.callExpDateMap[expirationDate];
let allPuts=dta.putExpDateMap[expirationDate];
//console.log(expirationDate,allCalls,allPuts);
let allStrikes=Object.keys(allCalls);
for (let i=0;i{
let app=window.document.getElementById('app');
$("#wrapperOptionChain").remove();
let newNode=document.createElement("div");
newNode.setAttribute("id","wrapperOptionChain");
newNode.innerHTML=`
`;
app.appendChild(newNode)
// "click" the date if it's the context dte
if ($(".nav").find(".active").children().length > 0){
$(".nav").find(".active").children()[0].click();
}
}