projects/rebirth-ng/src/lib/ellipsis/ellipsis.component.ts
| changeDetection | ChangeDetectionStrategy.OnPush |
| exportAs | ellipsis |
| selector | re-ellipsis |
| styleUrls | ellipsis.component.scss |
| templateUrl | ./ellipsis.component.html |
Properties |
Methods |
|
Inputs |
constructor(rebirthNGConfig: RebirthNGConfig, documentRef: DocumentRef)
|
|||||||||
|
Parameters :
|
html
|
Default value: |
max
|
Type: |
placement
|
Type: |
text
|
Type: |
| Private ellipsis |
ellipsis()
|
|
Returns :
void
|
| Private unCodeHtml | ||||||
unCodeHtml(text: string)
|
||||||
|
Parameters :
Returns :
string
|
| ellipsisText |
ellipsisText:
|
Type : string
|
Default value : ''
|
| fullText |
fullText:
|
Type : string
|
Default value : ''
|
| length |
length:
|
Type : number
|
| max | ||||||
setmax(length: number)
|
||||||
|
Parameters :
Returns :
void
|
| text | ||||||
settext(text: string)
|
||||||
|
Parameters :
Returns :
void
|
import { Component, ChangeDetectionStrategy, Input } from '@angular/core';
import { RebirthNGConfig } from '../rebirth-ng.config';
import { DocumentRef } from '../window-ref/document-ref.service';
@Component({
selector: 're-ellipsis',
templateUrl: './ellipsis.component.html',
styleUrls: ['./ellipsis.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
exportAs: 'ellipsis'
})
export class EllipsisComponent {
length: number;
fullText = '';
ellipsisText = '';
@Input() placement: 'top' | 'bottom' | 'left' | 'right';
@Input() html = false;
constructor(rebirthNGConfig: RebirthNGConfig, private documentRef: DocumentRef) {
this.length = rebirthNGConfig.ellipsis.length;
this.placement = <any>rebirthNGConfig.ellipsis.placement;
}
@Input()
set max(length: number) {
this.length = length;
this.ellipsis();
}
@Input()
set text(text: string) {
this.fullText = text || '';
this.ellipsis();
}
private ellipsis() {
const text = this.html ? this.unCodeHtml(this.fullText) : this.fullText;
this.ellipsisText = text.length > this.length ? text.substr(0, this.length) : '';
}
private unCodeHtml(text: string) {
const $div = this.documentRef.createElement('div');
$div.innerHTML = text;
text = $div.innerText;
return text;
}
}
<span *ngIf="ellipsisText" [reTooltip]="fullText" [placement]="placement">{{ellipsisText}}...</span>
<span *ngIf="!html && !ellipsisText">{{fullText}}</span>
<span *ngIf="html && !ellipsisText" [innerHTML]="fullText"></span>