UNPKG

ang-readmore

Version:

This is a simple angular component to add "read more"/"read less" links to your long sentenses/paragraphs.

79 lines 5.68 kB
/** * @fileoverview added by tsickle * Generated from: lib/ang-readmore.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, Input } from "@angular/core"; export class AngReadmoreComponent { constructor() { this.show = true; this.showReadMore = true; this.text = "NO-TEXT"; this.length = 20; this.linkColor = "#26A69A"; this.isCollapsed = true; } /** * @return {?} */ ngOnInit() { this.stringToShow = this.text; if (this.text.length > this.length) { this.stringToShow = this.text.slice(0, this.length - 1) + "..."; } else { this.showReadMore = false; } if (this.text.length === 0) { this.show = false; } } /** * @return {?} */ toggle() { this.isCollapsed = !this.isCollapsed; if (this.isCollapsed) { this.stringToShow = this.text.slice(0, this.length - 1) + "..."; } else { this.stringToShow = this.text; } } } AngReadmoreComponent.decorators = [ { type: Component, args: [{ selector: "ang-readmore", template: ` <p *ngIf="show"> {{ stringToShow }} <span *ngIf="showReadMore" (click)="toggle()" [style.color]="linkColor">{{ isCollapsed ? "read more" : "read less" }}</span> </p> `, styles: ["span{cursor: pointer;} p{white-space: pre-line;}"] }] } ]; AngReadmoreComponent.propDecorators = { text: [{ type: Input }], length: [{ type: Input }], linkColor: [{ type: Input }] }; if (false) { /** @type {?} */ AngReadmoreComponent.prototype.show; /** @type {?} */ AngReadmoreComponent.prototype.showReadMore; /** @type {?} */ AngReadmoreComponent.prototype.stringToShow; /** @type {?} */ AngReadmoreComponent.prototype.text; /** @type {?} */ AngReadmoreComponent.prototype.length; /** @type {?} */ AngReadmoreComponent.prototype.linkColor; /** @type {?} */ AngReadmoreComponent.prototype.isCollapsed; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5nLXJlYWRtb3JlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2FuZy1yZWFkbW9yZS8iLCJzb3VyY2VzIjpbImxpYi9hbmctcmVhZG1vcmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFjekQsTUFBTSxPQUFPLG9CQUFvQjtJQVpqQztRQWFFLFNBQUksR0FBRyxJQUFJLENBQUM7UUFDWixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUVYLFNBQUksR0FBRyxTQUFTLENBQUM7UUFDakIsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLGNBQVMsR0FBRyxTQUFTLENBQUM7UUFDL0IsZ0JBQVcsR0FBRyxJQUFJLENBQUM7SUF3QnJCLENBQUM7Ozs7SUF0QkMsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM5QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDakU7YUFBTTtZQUNMLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1NBQzNCO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7U0FDbkI7SUFDSCxDQUFDOzs7O0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRXJDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUNqRTthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQy9CO0lBQ0gsQ0FBQzs7O1lBMUNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsY0FBYztnQkFDeEIsUUFBUSxFQUFFOzs7Ozs7O0dBT1Q7eUJBQ1Esa0RBQWtEO2FBQzVEOzs7bUJBS0UsS0FBSztxQkFDTCxLQUFLO3dCQUNMLEtBQUs7Ozs7SUFMTixvQ0FBWTs7SUFDWiw0Q0FBb0I7O0lBQ3BCLDRDQUFhOztJQUNiLG9DQUEwQjs7SUFDMUIsc0NBQXFCOztJQUNyQix5Q0FBK0I7O0lBQy9CLDJDQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhbmctcmVhZG1vcmVcIixcbiAgdGVtcGxhdGU6IGBcbiAgICA8cCAqbmdJZj1cInNob3dcIj5cbiAgICAgIHt7IHN0cmluZ1RvU2hvdyB9fVxuICAgICAgPHNwYW4gKm5nSWY9XCJzaG93UmVhZE1vcmVcIiAoY2xpY2spPVwidG9nZ2xlKClcIiBbc3R5bGUuY29sb3JdPVwibGlua0NvbG9yXCI+e3tcbiAgICAgICAgaXNDb2xsYXBzZWQgPyBcInJlYWQgbW9yZVwiIDogXCJyZWFkIGxlc3NcIlxuICAgICAgfX08L3NwYW4+XG4gICAgPC9wPlxuICBgLFxuICBzdHlsZXM6IFtcInNwYW57Y3Vyc29yOiBwb2ludGVyO30gcHt3aGl0ZS1zcGFjZTogcHJlLWxpbmU7fVwiXSxcbn0pXG5leHBvcnQgY2xhc3MgQW5nUmVhZG1vcmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBzaG93ID0gdHJ1ZTtcbiAgc2hvd1JlYWRNb3JlID0gdHJ1ZTtcbiAgc3RyaW5nVG9TaG93O1xuICBASW5wdXQoKSB0ZXh0ID0gXCJOTy1URVhUXCI7XG4gIEBJbnB1dCgpIGxlbmd0aCA9IDIwO1xuICBASW5wdXQoKSBsaW5rQ29sb3IgPSBcIiMyNkE2OUFcIjtcbiAgaXNDb2xsYXBzZWQgPSB0cnVlO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3RyaW5nVG9TaG93ID0gdGhpcy50ZXh0O1xuICAgIGlmICh0aGlzLnRleHQubGVuZ3RoID4gdGhpcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc3RyaW5nVG9TaG93ID0gdGhpcy50ZXh0LnNsaWNlKDAsIHRoaXMubGVuZ3RoIC0gMSkgKyBcIi4uLlwiO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3dSZWFkTW9yZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRleHQubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnNob3cgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGUoKSB7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9ICF0aGlzLmlzQ29sbGFwc2VkO1xuXG4gICAgaWYgKHRoaXMuaXNDb2xsYXBzZWQpIHtcbiAgICAgIHRoaXMuc3RyaW5nVG9TaG93ID0gdGhpcy50ZXh0LnNsaWNlKDAsIHRoaXMubGVuZ3RoIC0gMSkgKyBcIi4uLlwiO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0cmluZ1RvU2hvdyA9IHRoaXMudGV4dDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==