Add history window controls and expand taxonomy pack support
- add 3Y/5Y/10Y financial history filtering and reorganize normalization details UI - add new fiscal taxonomy surface/income bridge/KPI packs and update Rust taxonomy loading - auto-detect Homebrew SQLite for native `sqlite-vec` in local dev/e2e with docs and env guidance
This commit is contained in:
42
lib/financials/history-window.ts
Normal file
42
lib/financials/history-window.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
import type { FinancialCadence, FinancialStatementPeriod } from "@/lib/types";
|
||||
|
||||
export type FinancialHistoryWindow = 3 | 5 | 10;
|
||||
|
||||
export function financialHistoryLimit(
|
||||
cadence: FinancialCadence,
|
||||
window: FinancialHistoryWindow,
|
||||
) {
|
||||
if (cadence === "quarterly") {
|
||||
return window * 4 + 4;
|
||||
}
|
||||
|
||||
return window + 2;
|
||||
}
|
||||
|
||||
function visiblePeriodCount(
|
||||
cadence: FinancialCadence,
|
||||
window: FinancialHistoryWindow,
|
||||
) {
|
||||
if (cadence === "quarterly") {
|
||||
return window * 4;
|
||||
}
|
||||
|
||||
return window;
|
||||
}
|
||||
|
||||
export function filterPeriodsByHistoryWindow(
|
||||
periods: FinancialStatementPeriod[],
|
||||
cadence: FinancialCadence,
|
||||
window: FinancialHistoryWindow,
|
||||
) {
|
||||
if (periods.length === 0) {
|
||||
return periods;
|
||||
}
|
||||
|
||||
const count = visiblePeriodCount(cadence, window);
|
||||
if (periods.length <= count) {
|
||||
return periods;
|
||||
}
|
||||
|
||||
return periods.slice(-count);
|
||||
}
|
||||
Reference in New Issue
Block a user