|
@ -86,6 +86,7 @@ import { |
|
|
parseISO, |
|
|
parseISO, |
|
|
set |
|
|
set |
|
|
} from 'date-fns'; |
|
|
} from 'date-fns'; |
|
|
|
|
|
import Fuse from 'fuse.js'; |
|
|
import { isEmpty } from 'lodash'; |
|
|
import { isEmpty } from 'lodash'; |
|
|
|
|
|
|
|
|
import { PortfolioCalculator } from './calculator/portfolio-calculator'; |
|
|
import { PortfolioCalculator } from './calculator/portfolio-calculator'; |
|
@ -1049,14 +1050,17 @@ export class PortfolioService { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (searchQuery) { |
|
|
if (searchQuery) { |
|
|
positions = positions.filter(({ symbol }) => { |
|
|
const fuse = new Fuse(Object.values(symbolProfileMap), { |
|
|
const enhancedSymbolProfile = symbolProfileMap[symbol]; |
|
|
keys: ['isin', 'name', 'symbol'], |
|
|
|
|
|
threshold: 0.3 |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
return ( |
|
|
const symbolSearchResults = fuse |
|
|
enhancedSymbolProfile.isin?.toLowerCase().startsWith(searchQuery) || |
|
|
.search(searchQuery) |
|
|
enhancedSymbolProfile.name?.toLowerCase().startsWith(searchQuery) || |
|
|
.map(({ item }) => item.symbol); |
|
|
enhancedSymbolProfile.symbol?.toLowerCase().startsWith(searchQuery) |
|
|
|
|
|
); |
|
|
positions = positions.filter(({ symbol }) => { |
|
|
|
|
|
return symbolSearchResults.includes(symbol); |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|