angular-pipes
Version:
Angular pipes library
43 lines • 4.52 kB
JavaScript
// Inspired from https://github.com/a8m/angular-filter/blob/master/src/_filter/string/truncate.js
import * as tslib_1 from "tslib";
import { Pipe, NgModule } from '@angular/core';
import { isString, isUndefined } from '../utils/utils';
let TruncatePipe = class TruncatePipe {
transform(input, length, suffix, preserve) {
if (!isString(input)) {
return input;
}
length = isUndefined(length) ? input.length : length;
if (input.length <= length) {
return input;
}
preserve = preserve || false;
suffix = suffix || '';
let index = length;
if (preserve) {
if (input.indexOf(' ', length) === -1) {
index = input.length;
}
else {
index = input.indexOf(' ', length);
}
}
return input.substring(0, index) + suffix;
}
};
TruncatePipe = tslib_1.__decorate([
Pipe({
name: 'truncate',
})
], TruncatePipe);
export { TruncatePipe };
let NgTruncatePipeModule = class NgTruncatePipeModule {
};
NgTruncatePipeModule = tslib_1.__decorate([
NgModule({
declarations: [TruncatePipe],
exports: [TruncatePipe],
})
], NgTruncatePipeModule);
export { NgTruncatePipeModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcGlwZXMvIiwic291cmNlcyI6WyJzdHJpbmcvdHJ1bmNhdGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpR0FBaUc7O0FBRWpHLE9BQU8sRUFBRSxJQUFJLEVBQWlCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3ZELElBQWEsWUFBWSxHQUF6QixNQUFhLFlBQVk7SUFDdkIsU0FBUyxDQUFDLEtBQVUsRUFBRSxNQUFlLEVBQUUsTUFBZSxFQUFFLFFBQWtCO1FBQ3hFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDcEIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUVyRCxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksTUFBTSxFQUFFO1lBQzFCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxRQUFRLEdBQUcsUUFBUSxJQUFJLEtBQUssQ0FBQztRQUM3QixNQUFNLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLEtBQUssR0FBRyxNQUFNLENBQUM7UUFFbkIsSUFBSSxRQUFRLEVBQUU7WUFDWixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUNyQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQzthQUN0QjtpQkFBTTtnQkFDTCxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDcEM7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQzVDLENBQUM7Q0FDRixDQUFBO0FBMUJZLFlBQVk7SUFIeEIsSUFBSSxDQUFDO1FBQ0osSUFBSSxFQUFFLFVBQVU7S0FDakIsQ0FBQztHQUNXLFlBQVksQ0EwQnhCO1NBMUJZLFlBQVk7QUFnQ3pCLElBQWEsb0JBQW9CLEdBQWpDLE1BQWEsb0JBQW9CO0NBQUcsQ0FBQTtBQUF2QixvQkFBb0I7SUFKaEMsUUFBUSxDQUFDO1FBQ1IsWUFBWSxFQUFFLENBQUMsWUFBWSxDQUFDO1FBQzVCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztLQUN4QixDQUFDO0dBQ1csb0JBQW9CLENBQUc7U0FBdkIsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSW5zcGlyZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYThtL2FuZ3VsYXItZmlsdGVyL2Jsb2IvbWFzdGVyL3NyYy9fZmlsdGVyL3N0cmluZy90cnVuY2F0ZS5qc1xyXG5cclxuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNTdHJpbmcsIGlzVW5kZWZpbmVkIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICd0cnVuY2F0ZScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVuY2F0ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICB0cmFuc2Zvcm0oaW5wdXQ6IGFueSwgbGVuZ3RoPzogbnVtYmVyLCBzdWZmaXg/OiBzdHJpbmcsIHByZXNlcnZlPzogYm9vbGVhbik6IGFueSB7XHJcbiAgICBpZiAoIWlzU3RyaW5nKGlucHV0KSkge1xyXG4gICAgICByZXR1cm4gaW5wdXQ7XHJcbiAgICB9XHJcblxyXG4gICAgbGVuZ3RoID0gaXNVbmRlZmluZWQobGVuZ3RoKSA/IGlucHV0Lmxlbmd0aCA6IGxlbmd0aDtcclxuXHJcbiAgICBpZiAoaW5wdXQubGVuZ3RoIDw9IGxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gaW5wdXQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJlc2VydmUgPSBwcmVzZXJ2ZSB8fCBmYWxzZTtcclxuICAgIHN1ZmZpeCA9IHN1ZmZpeCB8fCAnJztcclxuICAgIGxldCBpbmRleCA9IGxlbmd0aDtcclxuXHJcbiAgICBpZiAocHJlc2VydmUpIHtcclxuICAgICAgaWYgKGlucHV0LmluZGV4T2YoJyAnLCBsZW5ndGgpID09PSAtMSkge1xyXG4gICAgICAgIGluZGV4ID0gaW5wdXQubGVuZ3RoO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGluZGV4ID0gaW5wdXQuaW5kZXhPZignICcsIGxlbmd0aCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW5wdXQuc3Vic3RyaW5nKDAsIGluZGV4KSArIHN1ZmZpeDtcclxuICB9XHJcbn1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbVHJ1bmNhdGVQaXBlXSxcclxuICBleHBvcnRzOiBbVHJ1bmNhdGVQaXBlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nVHJ1bmNhdGVQaXBlTW9kdWxlIHt9XHJcbiJdfQ==