diff --git a/src/routes/industry/+page.svelte b/src/routes/industry/+page.svelte index beaf2ba8..b8add3f2 100644 --- a/src/routes/industry/+page.svelte +++ b/src/routes/industry/+page.svelte @@ -51,5 +51,4 @@ $: charNumber = $screenWidth < 640 ? 20 : 30; - - \ No newline at end of file + \ No newline at end of file diff --git a/src/routes/options-flow/+page.svelte b/src/routes/options-flow/+page.svelte index ec079d37..d75bcbb2 100644 --- a/src/routes/options-flow/+page.svelte +++ b/src/routes/options-flow/+page.svelte @@ -15,21 +15,14 @@ let ruleOfList = [ { - "name": "underlying_type", - "value": "any" - }, - { - "name": "put_call", + "name": "cost_basis", "value": "any" }, { "name": "date_expiration", "value": "any" }, - { - "name": "execution_estimate", - "value": "any" - }]; +]; let displayRules = []; let filterQuery = ''; @@ -42,10 +35,10 @@ let shouldLoadWorker = writable(false); const allRules = { - volume: { label: 'Volume', step: ['100K','10K','1K'], defaultCondition: 'over', defaultValue: '1K' }, - open_interest: { label: 'Open Interest', step: ['100K','10K','1K'], defaultCondition: 'over', defaultValue: '1K' }, + volume: { label: 'Volume', step: ['100K','10K','1K'], defaultCondition: 'over', defaultValue: 'any' }, + open_interest: { label: 'Open Interest', step: ['100K','10K','1K'], defaultCondition: 'over', defaultValue: 'any' }, volumeOIRatio: { label: 'Volume / Open Interest', step: ['100%','80%','60%','50%','30%','15%','10%','5%'], defaultCondition: 'over', defaultValue: 'any' }, - cost_basis: { label: 'Premium', step: ['10M','5M','1M','500K','100K','50K','10K','5K'], defaultCondition: 'over', defaultValue: '50K' }, + cost_basis: { label: 'Premium', step: ['10M','5M','1M','500K','100K','50K','10K','5K'], defaultCondition: 'over', defaultValue: 'any' }, put_call: { label: 'Contract Type', step: ["Calls", "Puts"], defaultValue: 'any' }, sentiment: { label: 'Sentiment', step: ["Bullish","Neutral", "Bearish"], defaultValue: 'any' }, execution_estimate: { label: 'Execution', step: ["At Ask","At Bid", "At Midpoint", "Below Ask", "Below Bid",], defaultValue: 'any' }, diff --git a/src/routes/options-flow/workers/filterWorker.ts b/src/routes/options-flow/workers/filterWorker.ts index fd51b47a..853dd0e8 100644 --- a/src/routes/options-flow/workers/filterWorker.ts +++ b/src/routes/options-flow/workers/filterWorker.ts @@ -186,7 +186,10 @@ async function filterRawData(rawData, ruleOfList, filterQuery) { onmessage = async (event: MessageEvent) => { const { rawData, ruleOfList, filterQuery } = event.data || {}; - const filteredData = await filterRawData(rawData, ruleOfList, filterQuery); + let filteredData = await filterRawData(rawData, ruleOfList, filterQuery); + filteredData = Array?.from( + new Map(filteredData?.map((item) => [item?.id, item]))?.values() + ); postMessage({ message: "success", filteredData }); };