angular-pipes
Version:
Angular pipes library
49 lines • 4.79 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';
var TruncatePipe = /** @class */ (function () {
function TruncatePipe() {
}
TruncatePipe.prototype.transform = function (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 || '';
var 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);
return TruncatePipe;
}());
export { TruncatePipe };
var NgTruncatePipeModule = /** @class */ (function () {
function NgTruncatePipeModule() {
}
NgTruncatePipeModule = tslib_1.__decorate([
NgModule({
declarations: [TruncatePipe],
exports: [TruncatePipe],
})
], NgTruncatePipeModule);
return NgTruncatePipeModule;
}());
export { NgTruncatePipeModule };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZ3VsYXItcGlwZXMvIiwic291cmNlcyI6WyJzdHJpbmcvdHJ1bmNhdGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpR0FBaUc7O0FBRWpHLE9BQU8sRUFBRSxJQUFJLEVBQWlCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3ZEO0lBQUE7SUEwQkEsQ0FBQztJQXpCQyxnQ0FBUyxHQUFULFVBQVUsS0FBVSxFQUFFLE1BQWUsRUFBRSxNQUFlLEVBQUUsUUFBa0I7UUFDeEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBRXJELElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxNQUFNLEVBQUU7WUFDMUIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELFFBQVEsR0FBRyxRQUFRLElBQUksS0FBSyxDQUFDO1FBQzdCLE1BQU0sR0FBRyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUVuQixJQUFJLFFBQVEsRUFBRTtZQUNaLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3JDLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO2FBQ3RCO2lCQUFNO2dCQUNMLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUNwQztTQUNGO1FBRUQsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUM7SUFDNUMsQ0FBQztJQXpCVSxZQUFZO1FBSHhCLElBQUksQ0FBQztZQUNKLElBQUksRUFBRSxVQUFVO1NBQ2pCLENBQUM7T0FDVyxZQUFZLENBMEJ4QjtJQUFELG1CQUFDO0NBQUEsQUExQkQsSUEwQkM7U0ExQlksWUFBWTtBQWdDekI7SUFBQTtJQUFtQyxDQUFDO0lBQXZCLG9CQUFvQjtRQUpoQyxRQUFRLENBQUM7WUFDUixZQUFZLEVBQUUsQ0FBQyxZQUFZLENBQUM7WUFDNUIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO1NBQ3hCLENBQUM7T0FDVyxvQkFBb0IsQ0FBRztJQUFELDJCQUFDO0NBQUEsQUFBcEMsSUFBb0M7U0FBdkIsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSW5zcGlyZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYThtL2FuZ3VsYXItZmlsdGVyL2Jsb2IvbWFzdGVyL3NyYy9fZmlsdGVyL3N0cmluZy90cnVuY2F0ZS5qc1xyXG5cclxuaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNTdHJpbmcsIGlzVW5kZWZpbmVkIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICd0cnVuY2F0ZScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcnVuY2F0ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICB0cmFuc2Zvcm0oaW5wdXQ6IGFueSwgbGVuZ3RoPzogbnVtYmVyLCBzdWZmaXg/OiBzdHJpbmcsIHByZXNlcnZlPzogYm9vbGVhbik6IGFueSB7XHJcbiAgICBpZiAoIWlzU3RyaW5nKGlucHV0KSkge1xyXG4gICAgICByZXR1cm4gaW5wdXQ7XHJcbiAgICB9XHJcblxyXG4gICAgbGVuZ3RoID0gaXNVbmRlZmluZWQobGVuZ3RoKSA/IGlucHV0Lmxlbmd0aCA6IGxlbmd0aDtcclxuXHJcbiAgICBpZiAoaW5wdXQubGVuZ3RoIDw9IGxlbmd0aCkge1xyXG4gICAgICByZXR1cm4gaW5wdXQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJlc2VydmUgPSBwcmVzZXJ2ZSB8fCBmYWxzZTtcclxuICAgIHN1ZmZpeCA9IHN1ZmZpeCB8fCAnJztcclxuICAgIGxldCBpbmRleCA9IGxlbmd0aDtcclxuXHJcbiAgICBpZiAocHJlc2VydmUpIHtcclxuICAgICAgaWYgKGlucHV0LmluZGV4T2YoJyAnLCBsZW5ndGgpID09PSAtMSkge1xyXG4gICAgICAgIGluZGV4ID0gaW5wdXQubGVuZ3RoO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGluZGV4ID0gaW5wdXQuaW5kZXhPZignICcsIGxlbmd0aCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW5wdXQuc3Vic3RyaW5nKDAsIGluZGV4KSArIHN1ZmZpeDtcclxuICB9XHJcbn1cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbVHJ1bmNhdGVQaXBlXSxcclxuICBleHBvcnRzOiBbVHJ1bmNhdGVQaXBlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5nVHJ1bmNhdGVQaXBlTW9kdWxlIHt9XHJcbiJdfQ==