sparnatural
Version:
Visual client-side SPARQL query builder and knowledge graph exploration tool
71 lines • 2.45 kB
JavaScript
/**
* An implementation of ListDataProviderIfc that sorts items of another data provider
*/
export class SortListDataProvider {
constructor(delegate) {
this.delegate = delegate;
}
init(lang, defaultLang, typePredicate) {
this.lang = lang;
this.delegate.init(lang, defaultLang, typePredicate);
}
getListContent(domain, predicate, range, callback, errorCallback) {
this.delegate.getListContent(domain, predicate, range, (items) => {
// sort according to lang
var collator = new Intl.Collator(this.lang);
items.sort((a, b) => {
return collator.compare(a.label, b.label);
});
callback(items);
}, errorCallback);
}
}
/**
* An implementation of ValuesListDataProviderIfc that sorts items of another data provider
*/
export class SortValuesListDataProvider {
constructor(delegate) {
this.delegate = delegate;
}
init(lang, defaultLang, typePredicate) {
this.lang = lang;
this.delegate.init(lang, defaultLang, typePredicate);
}
getListContent(values, callback, errorCallback) {
this.delegate.getListContent(values, (items) => {
// sort according to lang
var collator = new Intl.Collator(this.lang);
items.sort((a, b) => {
return collator.compare(a.label, b.label);
});
callback(items);
}, errorCallback);
}
}
/**
* An implementation of ListDataProviderIfc that sorts items of another data provider
*/
export class SortTreeDataProvider {
constructor(delegate) {
this.delegate = delegate;
}
init(lang, defaultLang, typePredicate) {
this.lang = lang;
this.delegate.init(lang, defaultLang, typePredicate);
}
getRoots(domain, predicate, range, callback, errorCallback) {
this.delegate.getRoots(domain, predicate, range, (items) => {
var collator = new Intl.Collator(this.lang);
items.sort(function (a, b) {
return collator.compare(a.label, b.label);
});
callback(items);
}, errorCallback);
}
getChildren(node, domain, predicate, range, callback, errorCallback) {
this.delegate.getChildren(node, domain, predicate, range, (items) => {
callback(items);
}, errorCallback);
}
}
//# sourceMappingURL=DataProviders.js.map