mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-09-05 09:25:03 +00:00
Use normalize-diacritics
This commit is contained in:
@@ -1,42 +1,10 @@
|
||||
const EXTRA_DIACRITIC_REPLACEMENTS: Record<string, string> = {
|
||||
'\u00c6': 'AE',
|
||||
'\u00e6': 'ae',
|
||||
'\u00d0': 'D',
|
||||
'\u00f0': 'd',
|
||||
'\u00d8': 'O',
|
||||
'\u00f8': 'o',
|
||||
'\u00de': 'Th',
|
||||
'\u00fe': 'th',
|
||||
'\u0110': 'D',
|
||||
'\u0111': 'd',
|
||||
'\u0131': 'i',
|
||||
'\u0141': 'L',
|
||||
'\u0142': 'l',
|
||||
'\u0152': 'OE',
|
||||
'\u0153': 'oe',
|
||||
'\u00df': 'ss',
|
||||
}
|
||||
|
||||
// ng-select has a similar private helper stripSpecialChars, but we can't use it
|
||||
const EXTRA_DIACRITICS_PATTERN = new RegExp(
|
||||
`[${Object.keys(EXTRA_DIACRITIC_REPLACEMENTS).join('')}]`,
|
||||
'g'
|
||||
)
|
||||
|
||||
function normalizeSearchText(value: unknown): string {
|
||||
return String(value ?? '')
|
||||
.normalize('NFD')
|
||||
.replace(/[\u0300-\u036f]/g, '')
|
||||
.replace(
|
||||
EXTRA_DIACRITICS_PATTERN,
|
||||
(char) => EXTRA_DIACRITIC_REPLACEMENTS[char] ?? char
|
||||
)
|
||||
.toLocaleLowerCase()
|
||||
}
|
||||
import { normalizeSync } from 'normalize-diacritics'
|
||||
|
||||
export function matchesSearchText(
|
||||
value: unknown,
|
||||
searchText: unknown
|
||||
): boolean {
|
||||
return normalizeSearchText(value).includes(normalizeSearchText(searchText))
|
||||
return normalizeSync(String(value))
|
||||
.toLocaleLowerCase()
|
||||
.includes(normalizeSync(String(searchText)).toLocaleLowerCase())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user