update screener
This commit is contained in:
parent
424c93977a
commit
283709f05e
@ -356,11 +356,11 @@ else {
|
|||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td class="text-white text-end text-sm sm:text-[1rem] font-medium whitespace-nowrap">
|
<td class="text-white text-end text-sm sm:text-[1rem] font-medium whitespace-nowrap">
|
||||||
{abbreviateNumber(item?.avgWeeklyTradeCount)}
|
{abbreviateNumber(Math.floor(item?.avgWeeklyTradeCount))}
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td class="text-white text-end text-sm sm:text-[1rem] font-medium whitespace-nowrap">
|
<td class="text-white text-end text-sm sm:text-[1rem] font-medium whitespace-nowrap">
|
||||||
{abbreviateNumber(item?.avgWeeklyShareQuantity)}
|
{abbreviateNumber(Math.floor(item?.avgWeeklyShareQuantity))}
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td class="text-white text-end text-sm sm:text-[1rem] font-medium whitespace-nowrap">
|
<td class="text-white text-end text-sm sm:text-[1rem] font-medium whitespace-nowrap">
|
||||||
|
|||||||
@ -105,7 +105,6 @@ const getStockScreenerData = async (rules) => {
|
|||||||
growthOperatingExpenses: (ruleOfList?.find(item => item.name === "growthOperatingExpense") || { condition: 'above' }).condition,
|
growthOperatingExpenses: (ruleOfList?.find(item => item.name === "growthOperatingExpense") || { condition: 'above' }).condition,
|
||||||
operatingIncome: (ruleOfList?.find(item => item.name === "operatingIncome") || { condition: 'above' }).condition,
|
operatingIncome: (ruleOfList?.find(item => item.name === "operatingIncome") || { condition: 'above' }).condition,
|
||||||
growthOperatingIncome: (ruleOfList?.find(item => item.name === "growthOperatingIncome") || { condition: 'above' }).condition,
|
growthOperatingIncome: (ruleOfList?.find(item => item.name === "growthOperatingIncome") || { condition: 'above' }).condition,
|
||||||
esgScore: (ruleOfList?.find(item => item.name === "esgScore") || { condition: 'above' }).condition,
|
|
||||||
marketCap: (ruleOfList?.find(item => item.name === "marketCap") || { condition: 'above' }).condition,
|
marketCap: (ruleOfList?.find(item => item.name === "marketCap") || { condition: 'above' }).condition,
|
||||||
var: (ruleOfList?.find(item => item.name === "var") || { condition: 'above' }).condition,
|
var: (ruleOfList?.find(item => item.name === "var") || { condition: 'above' }).condition,
|
||||||
trendAnalysis: (ruleOfList?.find(item => item.name === "trendAnalysis") || { condition: 'above' }).condition,
|
trendAnalysis: (ruleOfList?.find(item => item.name === "trendAnalysis") || { condition: 'above' }).condition,
|
||||||
@ -174,14 +173,13 @@ const getStockScreenerData = async (rules) => {
|
|||||||
{ rule: 'beta', label: 'Beta', category: 'fund'},
|
{ rule: 'beta', label: 'Beta', category: 'fund'},
|
||||||
{ rule: 'ebitda', label: 'Earnings Before Interests, Taxes, Depreciation & Amortisation (EBITDA)', category: 'fund'},
|
{ rule: 'ebitda', label: 'Earnings Before Interests, Taxes, Depreciation & Amortisation (EBITDA)', category: 'fund'},
|
||||||
{ rule: 'growthEBITDA', label: 'EBITDA Growth [%]', category: 'fund'},
|
{ rule: 'growthEBITDA', label: 'EBITDA Growth [%]', category: 'fund'},
|
||||||
{ rule: 'esgScore', label: 'ESG Score', category: 'fund' },
|
|
||||||
{ rule: 'var', label: 'Value at Risk (VaR)', category: 'fund' },
|
{ rule: 'var', label: 'Value at Risk (VaR)', category: 'fund' },
|
||||||
{ rule: 'trendAnalysis', label: 'AI Trend Analysis (Bullish)', category: 'ai' },
|
{ rule: 'trendAnalysis', label: 'AI Trend Analysis (Bullish)', category: 'ai' },
|
||||||
{ rule: 'fundamentalAnalysis', label: 'AI Fundamental Analysis (Bullish)', category: 'ai' },
|
{ rule: 'fundamentalAnalysis', label: 'AI Fundamental Analysis (Bullish)', category: 'ai' },
|
||||||
{ rule: 'ratingRecommendation', label: 'Analyst Rating', category: 'fund'},
|
{ rule: 'ratingRecommendation', label: 'Analyst Rating', category: 'fund'},
|
||||||
{ rule: 'currentRatio', label: 'Current Ratio',category: 'fund' },
|
{ rule: 'currentRatio', label: 'Current Ratio',category: 'fund' },
|
||||||
{ rule: 'quickRatio', label: 'Quick Ratio',category: 'fund' },
|
{ rule: 'quickRatio', label: 'Quick Ratio',category: 'fund' },
|
||||||
{ rule: 'debtEquityRatio', label: 'Debt Equity Ratio',category: 'fund' },
|
{ rule: 'debtEquityRatio', label: 'Debt / Equity',category: 'fund' },
|
||||||
{ rule: 'debtRatio', label: 'Debt Ratio',category: 'fund' },
|
{ rule: 'debtRatio', label: 'Debt Ratio',category: 'fund' },
|
||||||
{ rule: 'returnOnAssets', label: 'Return on Assets',category: 'fund' },
|
{ rule: 'returnOnAssets', label: 'Return on Assets',category: 'fund' },
|
||||||
{ rule: 'returnOnEquity', label: 'Return on Equity',category: 'fund' },
|
{ rule: 'returnOnEquity', label: 'Return on Equity',category: 'fund' },
|
||||||
@ -258,7 +256,6 @@ const getStockScreenerData = async (rules) => {
|
|||||||
let valuePriceToBookRatio = (ruleOfList?.find(item => item.name === "priceToBookRatio") || { value: 5 }).value;
|
let valuePriceToBookRatio = (ruleOfList?.find(item => item.name === "priceToBookRatio") || { value: 5 }).value;
|
||||||
let valuePriceToSalesRatio = (ruleOfList?.find(item => item.name === "priceToSalesRatio") || { value: 10 }).value;
|
let valuePriceToSalesRatio = (ruleOfList?.find(item => item.name === "priceToSalesRatio") || { value: 10 }).value;
|
||||||
let valueBeta = (ruleOfList?.find(item => item.name === "beta") || { value: 1 }).value;
|
let valueBeta = (ruleOfList?.find(item => item.name === "beta") || { value: 1 }).value;
|
||||||
let valueESGScore = (ruleOfList?.find(item => item.name === "esgScore") || { value: 60 }).value;
|
|
||||||
let valueMarketCap = (ruleOfList?.find(item => item.name === "marketCap") || { value: 50 }).value;
|
let valueMarketCap = (ruleOfList?.find(item => item.name === "marketCap") || { value: 50 }).value;
|
||||||
let valueAnalyst = (ruleOfList?.find(item => item.name === "ratingRecommendation") || { value: 1 }).value;
|
let valueAnalyst = (ruleOfList?.find(item => item.name === "ratingRecommendation") || { value: 1 }).value;
|
||||||
let valueRSI = (ruleOfList?.find(item => item.name === "rsi") || { value: 40 }).value;
|
let valueRSI = (ruleOfList?.find(item => item.name === "rsi") || { value: 40 }).value;
|
||||||
@ -339,7 +336,6 @@ const valueMappings = {
|
|||||||
beta: valueBeta,
|
beta: valueBeta,
|
||||||
ebitda: valueEBITDA,
|
ebitda: valueEBITDA,
|
||||||
growthEBITDA: valueGrowthEBITDA,
|
growthEBITDA: valueGrowthEBITDA,
|
||||||
esgScore: valueESGScore,
|
|
||||||
marketCap: valueMarketCap,
|
marketCap: valueMarketCap,
|
||||||
rsi: valueRSI,
|
rsi: valueRSI,
|
||||||
stochRSI: valueStochRSI,
|
stochRSI: valueStochRSI,
|
||||||
@ -397,7 +393,6 @@ const conditions = {
|
|||||||
beta: ruleCondition.beta,
|
beta: ruleCondition.beta,
|
||||||
ebitda: ruleCondition.ebitda,
|
ebitda: ruleCondition.ebitda,
|
||||||
growthEBITDA: ruleCondition.growthEBITDA,
|
growthEBITDA: ruleCondition.growthEBITDA,
|
||||||
esgScore: ruleCondition.esgScore,
|
|
||||||
marketCap: ruleCondition.marketCap,
|
marketCap: ruleCondition.marketCap,
|
||||||
rsi: ruleCondition.rsi,
|
rsi: ruleCondition.rsi,
|
||||||
stochRSI: ruleCondition.stochRSI,
|
stochRSI: ruleCondition.stochRSI,
|
||||||
@ -608,228 +603,83 @@ async function handleUpdateRule(rule) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
$: {
|
$: {
|
||||||
if (ruleOfList) {
|
if (ruleOfList) {
|
||||||
const ruleToUpdate = ruleOfList?.find(rule => rule.name === ruleName);
|
const ruleToUpdate = ruleOfList.find(rule => rule.name === ruleName);
|
||||||
|
if (ruleToUpdate) {
|
||||||
|
const valueMap = {
|
||||||
|
payoutRatio: valuePayoutRatio,
|
||||||
|
dividendGrowth: valueDividendGrowth,
|
||||||
|
dividendYield: valueDividendYield,
|
||||||
|
annualDividend: valueAnnualDividend,
|
||||||
|
eps: valueEPS,
|
||||||
|
growthEPS: valueGrowthEPS,
|
||||||
|
marketCap: valueMarketCap,
|
||||||
|
beta: valueBeta,
|
||||||
|
pe: valuePE,
|
||||||
|
forwardPE: valueForwardPE,
|
||||||
|
priceToBookRatio: valuePriceToBookRatio,
|
||||||
|
priceToSalesRatio: valuePriceToSalesRatio,
|
||||||
|
interestIncome: valueInterestIncome,
|
||||||
|
ratingRecommendation: valueAnalyst,
|
||||||
|
revenue: valueRevenue,
|
||||||
|
growthRevenue: valueGrowthRevenue,
|
||||||
|
ebitda: valueEBITDA,
|
||||||
|
growthEBITDA: valueGrowthEBITDA,
|
||||||
|
operatingExpenses: valueOperatingExpenses,
|
||||||
|
growthOperatingExpenses: valueGrowthOperatingExpenses,
|
||||||
|
costOfRevenue: valueCostOfRevenue,
|
||||||
|
growthCostOfRevenue: valueGrowthCostOfRevenue,
|
||||||
|
costAndExpenses: valueCostAndExpenses,
|
||||||
|
growthCostAndExpenses: valueGrowthCostAndExpenses,
|
||||||
|
netIncome: valueNetIncome,
|
||||||
|
growthNetIncome: valueGrowthNetIncome,
|
||||||
|
grossProfit: valueGrossProfit,
|
||||||
|
growthGrossProfit: valueGrowthGrossProfit,
|
||||||
|
researchAndDevelopmentExpenses: valueResearchAndDevelopmentExpenses,
|
||||||
|
growthResearchAndDevelopmentExpenses: valueGrowthResearchAndDevelopmentExpenses,
|
||||||
|
interestExpense: valueInterestExpenses,
|
||||||
|
growthInterestExpense: valueGrowthInterestExpenses,
|
||||||
|
operatingIncome: valueOperatingIncome,
|
||||||
|
growthOperatingIncome: valueGrowthOperatingIncome,
|
||||||
|
rsi: valueRSI,
|
||||||
|
stochRSI: valueStochRSI,
|
||||||
|
mfi: valueMFI,
|
||||||
|
cci: valueCCI,
|
||||||
|
atr: valueATR,
|
||||||
|
sma50: valueSMA50,
|
||||||
|
sma200: valueSMA200,
|
||||||
|
ema50: valueEMA50,
|
||||||
|
ema200: valueEMA200,
|
||||||
|
change1W: valueChange1W,
|
||||||
|
change1M: valueChange1M,
|
||||||
|
change3M: valueChange3M,
|
||||||
|
change6M: valueChange6M,
|
||||||
|
change1Y: valueChange1Y,
|
||||||
|
change3Y: valueChange3Y,
|
||||||
|
avgVolume: valueAvgVolume,
|
||||||
|
var: valueVaR,
|
||||||
|
trendAnalysis: valueTrendAnalysis,
|
||||||
|
fundamentalAnalysis: valueFundamentalAnalysis,
|
||||||
|
currentRatio: valueCurrentRatio,
|
||||||
|
quickRatio: valueQuickRatio,
|
||||||
|
debtEquityRatio: valueDebtEquityRatio,
|
||||||
|
debtRatio: valueDebtRatio,
|
||||||
|
returnOnAssets: valueReturnOnAssets,
|
||||||
|
returnOnEquity: valueReturnOnEquity,
|
||||||
|
};
|
||||||
|
|
||||||
// Check if the rule exists and if the name is in the valueMappings
|
ruleToUpdate.value = valueMap[ruleToUpdate.name] ?? ruleToUpdate.value;
|
||||||
if (ruleToUpdate && valueMappings?.hasOwnProperty(ruleToUpdate.name)) {
|
|
||||||
// Update the rule's value from the mappings
|
|
||||||
ruleToUpdate.value = valueMappings[ruleToUpdate.name];
|
|
||||||
ruleToUpdate.condition = ruleCondition[ruleToUpdate.name];
|
ruleToUpdate.condition = ruleCondition[ruleToUpdate.name];
|
||||||
|
|
||||||
// Trigger Svelte's reactivity by reassigning the array.
|
|
||||||
ruleOfList = [...ruleOfList];
|
ruleOfList = [...ruleOfList];
|
||||||
}
|
}
|
||||||
|
|
||||||
filteredData = filterStockScreenerData();
|
filteredData = filterStockScreenerData();
|
||||||
|
|
||||||
|
if (ruleOfList?.some(item => item?.name === 'ratingRecommendation')) {
|
||||||
|
filteredData = filteredData?.filter(item => item?.ratingRecommendation === valueAnalyst);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
$: {
|
|
||||||
if (ruleOfList) {
|
|
||||||
|
|
||||||
const ruleToUpdate = ruleOfList?.find(rule => rule.name === ruleName);
|
|
||||||
if (ruleToUpdate) {
|
|
||||||
switch (ruleToUpdate.name) {
|
|
||||||
case 'payoutRatio':
|
|
||||||
ruleToUpdate.value = valuePayoutRatio;
|
|
||||||
break;
|
|
||||||
case 'dividendGrowth':
|
|
||||||
ruleToUpdate.value = valueDividendGrowth;
|
|
||||||
break;
|
|
||||||
case 'dividendYield':
|
|
||||||
ruleToUpdate.value = valueDividendYield;
|
|
||||||
break;
|
|
||||||
case 'annualDividend':
|
|
||||||
ruleToUpdate.value = valueAnnualDividend;
|
|
||||||
break;
|
|
||||||
case 'eps':
|
|
||||||
ruleToUpdate.value = valueEPS;
|
|
||||||
break;
|
|
||||||
case 'growthEPS':
|
|
||||||
ruleToUpdate.value = valueGrowthEPS;
|
|
||||||
break;
|
|
||||||
case 'marketCap':
|
|
||||||
ruleToUpdate.value = valueMarketCap;
|
|
||||||
break;
|
|
||||||
case 'beta':
|
|
||||||
ruleToUpdate.value = valueBeta;
|
|
||||||
break;
|
|
||||||
case 'pe':
|
|
||||||
ruleToUpdate.value = valuePE;
|
|
||||||
break;
|
|
||||||
case 'forwardPE':
|
|
||||||
ruleToUpdate.value = valueForwardPE;
|
|
||||||
break;
|
|
||||||
case 'priceToBookRatio':
|
|
||||||
ruleToUpdate.value = valuePriceToBookRatio;
|
|
||||||
break;
|
|
||||||
case 'priceToSalesRatio':
|
|
||||||
ruleToUpdate.value = valuePriceToSalesRatio;
|
|
||||||
break;
|
|
||||||
case 'interestIncome':
|
|
||||||
ruleToUpdate.value = valueInterestIncome;
|
|
||||||
break;
|
|
||||||
case 'esgScore':
|
|
||||||
ruleToUpdate.value = valueESGScore;
|
|
||||||
break;
|
|
||||||
case 'ratingRecommendation':
|
|
||||||
ruleToUpdate.value = valueAnalyst //ruleTrend[ruleName];
|
|
||||||
break;
|
|
||||||
case 'revenue':
|
|
||||||
ruleToUpdate.value = valueRevenue;
|
|
||||||
break;
|
|
||||||
case 'growthRevenue':
|
|
||||||
ruleToUpdate.value = valueGrowthRevenue;
|
|
||||||
break;
|
|
||||||
case 'ebitda':
|
|
||||||
ruleToUpdate.value = valueEBITDA;
|
|
||||||
break;
|
|
||||||
case 'growthEBITDA':
|
|
||||||
ruleToUpdate.value = valueGrowthEBITDA;
|
|
||||||
break;
|
|
||||||
case 'operatingExpenses':
|
|
||||||
ruleToUpdate.value = valueOperatingExpenses;
|
|
||||||
break;
|
|
||||||
case 'growthOperatingExpenses':
|
|
||||||
ruleToUpdate.value = valueGrowthOperatingExpenses;
|
|
||||||
break;
|
|
||||||
case 'costOfRevenue':
|
|
||||||
ruleToUpdate.value = valueCostOfRevenue;
|
|
||||||
break;
|
|
||||||
case 'growthCostOfRevenue':
|
|
||||||
ruleToUpdate.value = valueGrowthCostOfRevenue;
|
|
||||||
break;
|
|
||||||
case 'costAndExpenses':
|
|
||||||
ruleToUpdate.value = valueCostAndExpenses;
|
|
||||||
break;
|
|
||||||
case 'growthCostAndExpenses':
|
|
||||||
ruleToUpdate.value = valueGrowthCostAndExpenses;
|
|
||||||
break;
|
|
||||||
case 'netIncome':
|
|
||||||
ruleToUpdate.value = valueNetIncome;
|
|
||||||
break;
|
|
||||||
case 'growthNetIncome':
|
|
||||||
ruleToUpdate.value = valueGrowthNetIncome;
|
|
||||||
break;
|
|
||||||
case 'grossProfit':
|
|
||||||
ruleToUpdate.value = valueGrossProfit;
|
|
||||||
break;
|
|
||||||
case 'growthGrossProfit':
|
|
||||||
ruleToUpdate.value = valueGrowthGrossProfit;
|
|
||||||
break;
|
|
||||||
case 'researchAndDevelopmentExpenses':
|
|
||||||
ruleToUpdate.value = valueResearchAndDevelopmentExpenses;
|
|
||||||
break;
|
|
||||||
case 'growthResearchAndDevelopmentExpenses':
|
|
||||||
ruleToUpdate.value = valueGrowthResearchAndDevelopmentExpenses;
|
|
||||||
break;
|
|
||||||
case 'interestExpense':
|
|
||||||
ruleToUpdate.value = valueInterestExpenses;
|
|
||||||
break;
|
|
||||||
case 'growthInterestExpense':
|
|
||||||
ruleToUpdate.value = valueGrowthInterestExpenses;
|
|
||||||
break;
|
|
||||||
case 'operatingIncome':
|
|
||||||
ruleToUpdate.value = valueOperatingIncome;
|
|
||||||
break;
|
|
||||||
case 'growthOperatingIncome':
|
|
||||||
ruleToUpdate.value = valueGrowthOperatingIncome;
|
|
||||||
break;
|
|
||||||
case 'rsi':
|
|
||||||
ruleToUpdate.value = valueRSI;
|
|
||||||
break;
|
|
||||||
case 'stochRSI':
|
|
||||||
ruleToUpdate.value = valueStochRSI;
|
|
||||||
break;
|
|
||||||
case 'mfi':
|
|
||||||
ruleToUpdate.value = valueMFI;
|
|
||||||
break;
|
|
||||||
case 'cci':
|
|
||||||
ruleToUpdate.value = valueCCI;
|
|
||||||
break;
|
|
||||||
case 'atr':
|
|
||||||
ruleToUpdate.value = valueATR;
|
|
||||||
break;
|
|
||||||
case 'sma50':
|
|
||||||
ruleToUpdate.value = valueSMA50;
|
|
||||||
break;
|
|
||||||
case 'sma200':
|
|
||||||
ruleToUpdate.value = valueSMA200;
|
|
||||||
break;
|
|
||||||
case 'ema50':
|
|
||||||
ruleToUpdate.value = valueEMA50;
|
|
||||||
break;
|
|
||||||
case 'ema200':
|
|
||||||
ruleToUpdate.value = valueEMA200;
|
|
||||||
break;
|
|
||||||
case 'change1W':
|
|
||||||
ruleToUpdate.value = valueChange1W;
|
|
||||||
break;
|
|
||||||
case 'change1M':
|
|
||||||
ruleToUpdate.value = valueChange1M;
|
|
||||||
break;
|
|
||||||
case 'change3M':
|
|
||||||
ruleToUpdate.value = valueChange3M;
|
|
||||||
break;
|
|
||||||
case 'change6M':
|
|
||||||
ruleToUpdate.value = valueChange6M;
|
|
||||||
break;
|
|
||||||
case 'change1Y':
|
|
||||||
ruleToUpdate.value = valueChange1Y;
|
|
||||||
break;
|
|
||||||
case 'change3Y':
|
|
||||||
ruleToUpdate.value = valueChange3Y;
|
|
||||||
case 'avgVolume':
|
|
||||||
ruleToUpdate.value = valueAvgVolume;
|
|
||||||
break;
|
|
||||||
case 'var':
|
|
||||||
ruleToUpdate.value = valueVaR;
|
|
||||||
break;
|
|
||||||
case 'trendAnalysis':
|
|
||||||
ruleToUpdate.value = valueTrendAnalysis;
|
|
||||||
break;
|
|
||||||
case 'fundamentalAnalysis':
|
|
||||||
ruleToUpdate.value = valueFundamentalAnalysis;
|
|
||||||
break;
|
|
||||||
case 'currentRatio':
|
|
||||||
ruleToUpdate.value = valueCurrentRatio;
|
|
||||||
break;
|
|
||||||
case 'quickRatio':
|
|
||||||
ruleToUpdate.value = valueQuickRatio;
|
|
||||||
break;
|
|
||||||
case 'debtEquityRatio':
|
|
||||||
ruleToUpdate.value = valueDebtEquityRatio;
|
|
||||||
break;
|
|
||||||
case 'debtRatio':
|
|
||||||
ruleToUpdate.value = valueDebtRatio;
|
|
||||||
break;
|
|
||||||
case 'returnOnAssets':
|
|
||||||
ruleToUpdate.value = valueReturnOnAssets;
|
|
||||||
break;
|
|
||||||
case 'returnOnEquity':
|
|
||||||
ruleToUpdate.value = valueReturnOnEquity;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
// Handle any case not explicitly mentioned
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
ruleToUpdate.condition = ruleCondition[ruleToUpdate.name];
|
|
||||||
ruleOfList = [...ruleOfList]; // This is common for all cases, so it's moved out of the switch.
|
|
||||||
}
|
|
||||||
|
|
||||||
filteredData = filterStockScreenerData();
|
|
||||||
|
|
||||||
if(ruleOfList?.some(item => item.name === 'ratingRecommendation')) {
|
|
||||||
filteredData = filteredData?.filter(item => item?.ratingRecommendation === valueAnalyst)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2149,31 +1999,7 @@ $: charNumber = $screenWidth < 640 ? 20 : 40;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--Start ESGScore Rule-->
|
|
||||||
{#if ruleName === 'esgScore'}
|
|
||||||
|
|
||||||
<div class="w-full max-w-xl text-white font-medium text-sm sm:text-[1rem] flex flex-row justify-center items-center">
|
|
||||||
ESG Score {ruleCondition[ruleName]} {valueESGScore}
|
|
||||||
|
|
||||||
<label on:click={() => changeRuleCondition('below')} class="ml-5 cursor-pointer flex flex-row mr-2 justify-center items-center">
|
|
||||||
<input type="radio" class="radio checked:bg-purple-600 bg-[#09090B] border border-slate-800 mr-2" checked={ruleCondition[ruleName] === 'below'} />
|
|
||||||
<span class="label-text text-white">Below</span>
|
|
||||||
</label>
|
|
||||||
<label on:click={() => changeRuleCondition('above')} class="cursor-pointer flex flex-row ml-2 justify-center items-center">
|
|
||||||
<input type="radio" class="radio checked:bg-purple-600 bg-[#09090B] border border-slate-800 mr-2" checked={ruleCondition[ruleName] === 'above'} />
|
|
||||||
<span class="label-text text-white">Above</span>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="w-full pt-5">
|
|
||||||
<input type="range" min="10" max="100" step="10" bind:value={valueESGScore} class="range range-secondary" />
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{/if}
|
|
||||||
<!--End ESGScore Rule-->
|
|
||||||
|
|
||||||
<!--Start RSI Rule-->
|
<!--Start RSI Rule-->
|
||||||
{#if ruleName === 'rsi'}
|
{#if ruleName === 'rsi'}
|
||||||
@ -2505,7 +2331,6 @@ $: charNumber = $screenWidth < 640 ? 20 : 40;
|
|||||||
|
|
||||||
<!--End Adding Rules-->
|
<!--End Adding Rules-->
|
||||||
|
|
||||||
|
|
||||||
<!--Start Rules Preview -->
|
<!--Start Rules Preview -->
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user