()
| 14718 | window.setTagMultiFilter([trimmed]); |
| 14719 | } else { |
| 14720 | tagSelect.value = trimmed; |
| 14721 | } |
| 14722 | if (typeof window.performCombinedSearch === 'function') { |
| 14723 | await window.performCombinedSearch(); |
| 14724 | } |
| 14725 | } |
| 14726 | |
| 14727 | /** Render tag names as clickable spans that apply the tag filter (use in model list/detailed views). */ |
| 14728 | function fillTagsWithFilterLinks(tagsValueSpan, names) { |
| 14729 | if (!tagsValueSpan) return; |
| 14730 | const sorted = (Array.isArray(names) ? names : []) |
| 14731 | .map((n) => { |
| 14732 | if (typeof n === 'string') return n.trim(); |
| 14733 | return String((n && (n.name || n)) || '').trim(); |
| 14734 | }) |
no test coverage detected