feature(core): add ellipsis directive

pull/1565/head
mehmet-erim 6 years ago
parent 8da158c07c
commit f85e836f7f

@ -18,6 +18,7 @@ import { ConfigState } from './states/config.state';
import { ProfileState } from './states/profile.state'; import { ProfileState } from './states/profile.state';
import { SessionState } from './states/session.state'; import { SessionState } from './states/session.state';
import { getInitialData } from './utils/initial-utils'; import { getInitialData } from './utils/initial-utils';
import { EllipsisDirective } from './directives/ellipsis.directive';
@NgModule({ @NgModule({
imports: [ imports: [
@ -36,6 +37,7 @@ import { getInitialData } from './utils/initial-utils';
PermissionDirective, PermissionDirective,
VisibilityDirective, VisibilityDirective,
LocalizationPipe, LocalizationPipe,
EllipsisDirective,
], ],
exports: [ exports: [
CommonModule, CommonModule,
@ -47,6 +49,7 @@ import { getInitialData } from './utils/initial-utils';
DynamicLayoutComponent, DynamicLayoutComponent,
PermissionDirective, PermissionDirective,
VisibilityDirective, VisibilityDirective,
EllipsisDirective,
LocalizationPipe, LocalizationPipe,
], ],
providers: [LocalizationPipe], providers: [LocalizationPipe],

@ -0,0 +1,34 @@
import { AfterContentInit, ChangeDetectorRef, Directive, ElementRef, HostBinding, Input } from '@angular/core';
@Directive({
selector: '[abpEllipsis]',
})
export class EllipsisDirective implements AfterContentInit {
@Input('abpEllipsis')
witdh: string;
@HostBinding('title')
@Input()
title: string;
@HostBinding('class.abp-ellipsis')
enabled = true;
@HostBinding('style.max-width')
get maxWidth() {
return this.witdh || '180px';
}
constructor(private cdRef: ChangeDetectorRef, private elRef: ElementRef) {}
ngAfterContentInit() {
setTimeout(() => {
const title = this.title;
this.title = title || (this.elRef.nativeElement as HTMLElement).innerText;
if (this.title !== title) {
this.cdRef.detectChanges();
}
}, 0);
}
}

@ -1,2 +1,3 @@
export * from './ellipsis.directive';
export * from './permission.directive'; export * from './permission.directive';
export * from './visibility.directive'; export * from './visibility.directive';

@ -28,6 +28,13 @@ export default `
background-color: rgba(0, 0, 0, .6); background-color: rgba(0, 0, 0, .6);
} }
.abp-ellipsis {
display: inline-block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
/* <animations */ /* <animations */
.fade-in-top { .fade-in-top {

Loading…
Cancel
Save