1
0
mirror of https://github.com/koloml/philomena-tagging-assistant.git synced 2026-09-23 04:19:39 +00:00

Added event for resolved categories, coloring from the tag wrapper

This commit is contained in:
2025-03-10 06:07:10 +04:00
parent 8c51d2d482
commit c1ed23dee5
4 changed files with 49 additions and 10 deletions

View File

@@ -1,6 +1,8 @@
import type { TagDropdownWrapper } from "$lib/components/TagDropdownWrapper";
import TagGroup from "$entities/TagGroup";
import { escapeRegExp } from "$lib/utils";
import { emit } from "$lib/components/events/comms";
import { eventTagCustomGroupResolved } from "$lib/components/events/tag-dropdown-events";
export default class CustomCategoriesResolver {
#exactGroupMatches = new Map<string, TagGroup>();
@@ -36,7 +38,6 @@ export default class CustomCategoriesResolver {
#updateUnprocessedTags() {
this.#tagDropdowns
.filter(CustomCategoriesResolver.#skipTagsWithOriginalCategory)
.filter(this.#applyCustomCategoryForExactMatches.bind(this))
.filter(this.#matchCustomCategoryByRegExp.bind(this))
.forEach(CustomCategoriesResolver.#resetToOriginalCategory);
@@ -55,7 +56,12 @@ export default class CustomCategoriesResolver {
return true;
}
tagDropdown.tagCategory = this.#exactGroupMatches.get(tagName)!.settings.category;
emit(
tagDropdown,
eventTagCustomGroupResolved,
this.#exactGroupMatches.get(tagName)!
);
return false;
}
@@ -67,7 +73,12 @@ export default class CustomCategoriesResolver {
continue;
}
tagDropdown.tagCategory = this.#regExpGroupMatches.get(targetRegularExpression)!.settings.category;
emit(
tagDropdown,
eventTagCustomGroupResolved,
this.#regExpGroupMatches.get(targetRegularExpression)!
);
return false;
}
@@ -105,12 +116,12 @@ export default class CustomCategoriesResolver {
this.#queueUpdatingTags();
}
static #skipTagsWithOriginalCategory(tagDropdown: TagDropdownWrapper): boolean {
return !tagDropdown.originalCategory;
}
static #resetToOriginalCategory(tagDropdown: TagDropdownWrapper): void {
tagDropdown.tagCategory = tagDropdown.originalCategory;
emit(
tagDropdown,
eventTagCustomGroupResolved,
null,
);
}
static #unprocessedTagsTimeout = 0;