@knora/action
Version:
Knora ui module: action
41 lines • 4.06 kB
JavaScript
import * as tslib_1 from "tslib";
import { Pipe } from '@angular/core';
/**
* This pipe can be used to shorten long text by a defined length.
*
* In markup:
*
* {{ str | kuiTruncate:['24'] }}
*
* or
*
* {{ str | kuiTruncate:['24', '...'] }}
*
*
* The first parameter defines the length where to truncate the string.
* Second optional parameter defines the characters to append to the shortened string. Default is '...'.
*
* The advantage of this pipe over the default Angular slice pipe is the simplicity of adding additional characters at the end of the shortened string.
* The same construct with Angular slice pipe looks as follow: `{{ (str.length>24)? (str | slice:0:24)+'...':(str) }}`.
*
*/
var TruncatePipe = /** @class */ (function () {
function TruncatePipe() {
}
TruncatePipe.prototype.transform = function (value, args) {
if (!value || value.length === 0) {
return;
}
var limit = args.length > 0 ? parseInt(args[0], 10) : 20;
var trail = args.length > 1 ? args[1] : '...';
return value.length > limit ? value.substring(0, limit) + trail : value;
};
TruncatePipe = tslib_1.__decorate([
Pipe({
name: 'kuiTruncate'
})
], TruncatePipe);
return TruncatePipe;
}());
export { TruncatePipe };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Brbm9yYS9hY3Rpb24vIiwic291cmNlcyI6WyJsaWIvcGlwZXMvdHJ1bmNhdGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFcEQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUlIO0lBQUE7SUFhQSxDQUFDO0lBWEcsZ0NBQVMsR0FBVCxVQUFVLEtBQWEsRUFBRSxJQUFjO1FBRW5DLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDOUIsT0FBTztTQUNWO1FBRUQsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMzRCxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDaEQsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDNUUsQ0FBQztJQVhRLFlBQVk7UUFIeEIsSUFBSSxDQUFDO1lBQ0YsSUFBSSxFQUFFLGFBQWE7U0FDdEIsQ0FBQztPQUNXLFlBQVksQ0FheEI7SUFBRCxtQkFBQztDQUFBLEFBYkQsSUFhQztTQWJZLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogVGhpcyBwaXBlIGNhbiBiZSB1c2VkIHRvIHNob3J0ZW4gbG9uZyB0ZXh0IGJ5IGEgZGVmaW5lZCBsZW5ndGguXG4gKlxuICogSW4gbWFya3VwOlxuICpcbiAqIHt7IHN0ciB8IGt1aVRydW5jYXRlOlsnMjQnXSB9fVxuICpcbiAqIG9yXG4gKlxuICoge3sgc3RyIHwga3VpVHJ1bmNhdGU6WycyNCcsICcuLi4nXSB9fVxuICpcbiAqXG4gKiBUaGUgZmlyc3QgcGFyYW1ldGVyIGRlZmluZXMgdGhlIGxlbmd0aCB3aGVyZSB0byB0cnVuY2F0ZSB0aGUgc3RyaW5nLlxuICogU2Vjb25kIG9wdGlvbmFsIHBhcmFtZXRlciBkZWZpbmVzIHRoZSBjaGFyYWN0ZXJzIHRvIGFwcGVuZCB0byB0aGUgc2hvcnRlbmVkIHN0cmluZy4gRGVmYXVsdCBpcyAnLi4uJy5cbiAqXG4gKiBUaGUgYWR2YW50YWdlIG9mIHRoaXMgcGlwZSBvdmVyIHRoZSBkZWZhdWx0IEFuZ3VsYXIgc2xpY2UgcGlwZSBpcyB0aGUgc2ltcGxpY2l0eSBvZiBhZGRpbmcgYWRkaXRpb25hbCBjaGFyYWN0ZXJzIGF0IHRoZSBlbmQgb2YgdGhlIHNob3J0ZW5lZCBzdHJpbmcuXG4gKiBUaGUgc2FtZSBjb25zdHJ1Y3Qgd2l0aCBBbmd1bGFyIHNsaWNlIHBpcGUgbG9va3MgYXMgZm9sbG93OiBge3sgKHN0ci5sZW5ndGg+MjQpPyAoc3RyIHwgc2xpY2U6MDoyNCkrJy4uLic6KHN0cikgfX1gLlxuICpcbiAqL1xuQFBpcGUoe1xuICAgIG5hbWU6ICdrdWlUcnVuY2F0ZSdcbn0pXG5leHBvcnQgY2xhc3MgVHJ1bmNhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgYXJnczogc3RyaW5nW10pOiBzdHJpbmcge1xuXG4gICAgICAgIGlmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBsaW1pdCA9IGFyZ3MubGVuZ3RoID4gMCA/IHBhcnNlSW50KGFyZ3NbMF0sIDEwKSA6IDIwO1xuICAgICAgICBjb25zdCB0cmFpbCA9IGFyZ3MubGVuZ3RoID4gMSA/IGFyZ3NbMV0gOiAnLi4uJztcbiAgICAgICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+IGxpbWl0ID8gdmFsdWUuc3Vic3RyaW5nKDAsIGxpbWl0KSArIHRyYWlsIDogdmFsdWU7XG4gICAgfVxuXG59XG4iXX0=