fix: sort attributes by label too

feat/type-attributes
Tomáš Mládek 2023-04-23 16:42:52 +02:00
parent fc63652a6e
commit 5fa38e202f
2 changed files with 8 additions and 6 deletions

View File

@ -109,8 +109,8 @@
function sortEntries() {
sortedEntries = orderByValue
? entityValueSort(entries, sortKeys)
: defaultEntitySort(entries, sortKeys);
? entityValueSort(entries, Object.assign(sortKeys, $attributeLabels))
: defaultEntitySort(entries, Object.assign(sortKeys, $attributeLabels));
}
$: {

View File

@ -45,9 +45,11 @@ export function sortByValueLength(entries: UpEntry[]) {
});
}
export function sortByAttribute(entries: UpEntry[]): void {
export function sortByAttribute(entries: UpEntry[], sortKeys: SortKeys): void {
entries.sort((aEntry, bEntry) => {
return aEntry.attribute.localeCompare(bEntry.attribute);
const aResolved = (sortKeys[aEntry.attribute] || [])[0] || aEntry.attribute;
const bResolved = (sortKeys[bEntry.attribute] || [])[0] || bEntry.attribute;
return aResolved.localeCompare(bResolved);
});
}
@ -82,7 +84,7 @@ export function defaultEntitySort(
const result = entries.concat();
sortByValue(result, sortKeys);
sortByValueLength(result);
sortByAttribute(result);
sortByAttribute(result, sortKeys);
sortByEntity(result, sortKeys);
return result;
}
@ -93,7 +95,7 @@ export function entityValueSort(
): UpEntry[] {
const result = entries.concat();
sortByEntity(result, sortKeys);
sortByAttribute(result);
sortByAttribute(result, sortKeys);
sortByValueLength(result);
sortByValue(result, sortKeys);
return result;