@knora/action
Version:
Knora ui module: action
54 lines • 7.17 kB
JavaScript
import * as tslib_1 from "tslib";
import { Pipe } from '@angular/core';
/**
* This pipe stringifies an array of StringLiterals. With the parameter 'all', the pipe concats all values and appends the corresponding language in brackets.
*
* Otherwise the pipe displays the value corresponding to the default language which comes from the user profile (if a user is logged-in) or from the browser. With the predefined language the pipe checks, if a value exists in the array, otherwise it shows the first value.
*/
let StringifyStringLiteralPipe = class StringifyStringLiteralPipe {
transform(value, args) {
let stringified = '';
let language;
if (!value || !value.length) {
return;
}
if (args === 'all') {
// show all values
let i = 0;
for (const sl of value) {
const delimiter = (i > 0 ? ' / ' : '');
stringified += delimiter + sl.value + ' (' + sl.language + ')';
i++;
}
return stringified;
}
else {
// show only one value, depending on default language
// the language is defined in user profile if a user is logged-in
// otherwise it takes the language from browser
if (localStorage.getItem('session') !== null) {
// get language from the logged-in user profile data
language = JSON.parse(localStorage.getItem('session')).user.lang;
}
else {
// get default language from browser
language = navigator.language.substr(0, 2);
}
// does the defined language exists and does it have a value?
const index = value.findIndex(i => i.language === language);
if (value[index] && value[index].value.length > 0) {
return value[index].value;
}
else {
return value[0].value;
}
}
}
};
StringifyStringLiteralPipe = tslib_1.__decorate([
Pipe({
name: 'kuiStringifyStringLiteral'
})
], StringifyStringLiteralPipe);
export { StringifyStringLiteralPipe };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5naWZ5LXN0cmluZy1saXRlcmFsLnBpcGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Aa25vcmEvYWN0aW9uLyIsInNvdXJjZXMiOlsibGliL3BpcGVzL3N0cmluZ2lmeS1zdHJpbmctbGl0ZXJhbC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUdwRDs7OztHQUlHO0FBSUgsSUFBYSwwQkFBMEIsR0FBdkMsTUFBYSwwQkFBMEI7SUFFbkMsU0FBUyxDQUFDLEtBQXNCLEVBQUUsSUFBWTtRQUMxQyxJQUFJLFdBQVcsR0FBVyxFQUFFLENBQUM7UUFFN0IsSUFBSSxRQUFnQixDQUFDO1FBRXJCLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ3pCLE9BQU87U0FDVjtRQUVELElBQUksSUFBSSxLQUFLLEtBQUssRUFBRTtZQUNoQixrQkFBa0I7WUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ1YsS0FBSyxNQUFNLEVBQUUsSUFBSSxLQUFLLEVBQUU7Z0JBQ3BCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdkMsV0FBVyxJQUFJLFNBQVMsR0FBRyxFQUFFLENBQUMsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQztnQkFFL0QsQ0FBQyxFQUFFLENBQUM7YUFDUDtZQUNELE9BQU8sV0FBVyxDQUFDO1NBQ3RCO2FBQU07WUFDSCxxREFBcUQ7WUFDckQsaUVBQWlFO1lBQ2pFLCtDQUErQztZQUMvQyxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUMxQyxvREFBb0Q7Z0JBQ3BELFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ3BFO2lCQUFNO2dCQUNILG9DQUFvQztnQkFDcEMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUM5QztZQUNELDZEQUE2RDtZQUM3RCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQztZQUU1RCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQy9DLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQzthQUM3QjtpQkFBTTtnQkFDSCxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7YUFDekI7U0FFSjtJQUVMLENBQUM7Q0FFSixDQUFBO0FBN0NZLDBCQUEwQjtJQUh0QyxJQUFJLENBQUM7UUFDRixJQUFJLEVBQUUsMkJBQTJCO0tBQ3BDLENBQUM7R0FDVywwQkFBMEIsQ0E2Q3RDO1NBN0NZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0cmluZ0xpdGVyYWwgfSBmcm9tICdAa25vcmEvYXBpJztcblxuLyoqXG4gKiBUaGlzIHBpcGUgc3RyaW5naWZpZXMgYW4gYXJyYXkgb2YgU3RyaW5nTGl0ZXJhbHMuIFdpdGggdGhlIHBhcmFtZXRlciAnYWxsJywgdGhlIHBpcGUgY29uY2F0cyBhbGwgdmFsdWVzIGFuZCBhcHBlbmRzIHRoZSBjb3JyZXNwb25kaW5nIGxhbmd1YWdlIGluIGJyYWNrZXRzLlxuICpcbiAqIE90aGVyd2lzZSB0aGUgcGlwZSBkaXNwbGF5cyB0aGUgdmFsdWUgY29ycmVzcG9uZGluZyB0byB0aGUgZGVmYXVsdCBsYW5ndWFnZSB3aGljaCBjb21lcyBmcm9tIHRoZSB1c2VyIHByb2ZpbGUgKGlmIGEgdXNlciBpcyBsb2dnZWQtaW4pIG9yIGZyb20gdGhlIGJyb3dzZXIuIFdpdGggdGhlIHByZWRlZmluZWQgbGFuZ3VhZ2UgdGhlIHBpcGUgY2hlY2tzLCBpZiBhIHZhbHVlIGV4aXN0cyBpbiB0aGUgYXJyYXksIG90aGVyd2lzZSBpdCBzaG93cyB0aGUgZmlyc3QgdmFsdWUuXG4gKi9cbkBQaXBlKHtcbiAgICBuYW1lOiAna3VpU3RyaW5naWZ5U3RyaW5nTGl0ZXJhbCdcbn0pXG5leHBvcnQgY2xhc3MgU3RyaW5naWZ5U3RyaW5nTGl0ZXJhbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICAgIHRyYW5zZm9ybSh2YWx1ZTogU3RyaW5nTGl0ZXJhbFtdLCBhcmdzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBsZXQgc3RyaW5naWZpZWQ6IHN0cmluZyA9ICcnO1xuXG4gICAgICAgIGxldCBsYW5ndWFnZTogc3RyaW5nO1xuXG4gICAgICAgIGlmICghdmFsdWUgfHwgIXZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGFyZ3MgPT09ICdhbGwnKSB7XG4gICAgICAgICAgICAvLyBzaG93IGFsbCB2YWx1ZXNcbiAgICAgICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgICAgIGZvciAoY29uc3Qgc2wgb2YgdmFsdWUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWxpbWl0ZXIgPSAoaSA+IDAgPyAnIC8gJyA6ICcnKTtcbiAgICAgICAgICAgICAgICBzdHJpbmdpZmllZCArPSBkZWxpbWl0ZXIgKyBzbC52YWx1ZSArICcgKCcgKyBzbC5sYW5ndWFnZSArICcpJztcblxuICAgICAgICAgICAgICAgIGkrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzdHJpbmdpZmllZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHNob3cgb25seSBvbmUgdmFsdWUsIGRlcGVuZGluZyBvbiBkZWZhdWx0IGxhbmd1YWdlXG4gICAgICAgICAgICAvLyB0aGUgbGFuZ3VhZ2UgaXMgZGVmaW5lZCBpbiB1c2VyIHByb2ZpbGUgaWYgYSB1c2VyIGlzIGxvZ2dlZC1pblxuICAgICAgICAgICAgLy8gb3RoZXJ3aXNlIGl0IHRha2VzIHRoZSBsYW5ndWFnZSBmcm9tIGJyb3dzZXJcbiAgICAgICAgICAgIGlmIChsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc2Vzc2lvbicpICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgLy8gZ2V0IGxhbmd1YWdlIGZyb20gdGhlIGxvZ2dlZC1pbiB1c2VyIHByb2ZpbGUgZGF0YVxuICAgICAgICAgICAgICAgIGxhbmd1YWdlID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnc2Vzc2lvbicpKS51c2VyLmxhbmc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGdldCBkZWZhdWx0IGxhbmd1YWdlIGZyb20gYnJvd3NlclxuICAgICAgICAgICAgICAgIGxhbmd1YWdlID0gbmF2aWdhdG9yLmxhbmd1YWdlLnN1YnN0cigwLCAyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGRvZXMgdGhlIGRlZmluZWQgbGFuZ3VhZ2UgZXhpc3RzIGFuZCBkb2VzIGl0IGhhdmUgYSB2YWx1ZT9cbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdmFsdWUuZmluZEluZGV4KGkgPT4gaS5sYW5ndWFnZSA9PT0gbGFuZ3VhZ2UpO1xuXG4gICAgICAgICAgICBpZiAodmFsdWVbaW5kZXhdICYmIHZhbHVlW2luZGV4XS52YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlW2luZGV4XS52YWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlWzBdLnZhbHVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH1cblxufVxuIl19