UNPKG

angular-pipes

Version:
43 lines 4.52 kB
// 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==