support selecting all visible in account / category / tag filter dialog / page

This commit is contained in:
MaysWind
2025-10-29 00:52:03 +08:00
parent 48a06c6570
commit 274fb8b4e2
24 changed files with 146 additions and 0 deletions
+20
View File
@@ -249,6 +249,26 @@ export function selectAccountOrSubAccounts(filterAccountIds: Record<string, bool
}
}
export function selectAllVisible(filterAccountIds: Record<string, boolean>, allAccountsMap: Record<string, Account>): void {
for (const accountId of keys(filterAccountIds)) {
const account = allAccountsMap[accountId];
if (account) {
if (account.hidden) {
continue;
}
if (account.parentId && allAccountsMap[account.parentId] && allAccountsMap[account.parentId]!.hidden) {
continue;
}
if (account.type === AccountType.SingleAccount.type) {
filterAccountIds[account.id] = false;
}
}
}
}
export function selectAll(filterAccountIds: Record<string, boolean>, allAccountsMap: Record<string, Account>, skipHiddenAccount: boolean): void {
for (const accountId of keys(filterAccountIds)) {
const account = allAccountsMap[accountId];
+18
View File
@@ -414,6 +414,24 @@ export function selectAllSubCategories(filterCategoryIds: Record<string, boolean
}
}
export function selectAllVisible(filterCategoryIds: Record<string, boolean>, allTransactionCategoriesMap: Record<string, TransactionCategory>): void {
for (const categoryId of keys(filterCategoryIds)) {
const category = allTransactionCategoriesMap[categoryId];
if (category) {
if (category.hidden) {
continue;
}
if (category.parentId && allTransactionCategoriesMap[category.parentId] && allTransactionCategoriesMap[category.parentId]!.hidden) {
continue;
}
filterCategoryIds[category.id] = false;
}
}
}
export function selectAll(filterCategoryIds: Record<string, boolean>, allTransactionCategoriesMap: Record<string, TransactionCategory>): void {
for (const categoryId of keys(filterCategoryIds)) {
const category = allTransactionCategoriesMap[categoryId];
+10
View File
@@ -482,6 +482,16 @@ export function selectInvert(filterItemIds: Record<string, boolean>, allItemsMap
}
}
export function selectAllVisible(filterItemIds: Record<string, boolean>, allItemsMap: { [key: string]: { id: string, hidden?: boolean } }): void {
for (const itemId of keys(filterItemIds)) {
const item = allItemsMap[itemId];
if (item && !item.hidden) {
filterItemIds[item.id] = false;
}
}
}
export function isPrimaryItemHasSecondaryValue(primaryItem: Record<string, Record<string, unknown>[]>, primarySubItemsField: string, secondaryValueField: string | undefined, secondaryHiddenField: string | undefined, secondaryValue: unknown): boolean {
const secondaryItems = primaryItem[primarySubItemsField];