[ADF-4403] ClipboardDirective - add default translation key and fix styling (#4610)

* [ADF-4403] ClipboardDirective - add default translation key and fix style on sticky header

* [ADF-4403] - lint

* [ADF-4403] - revert datatable style

* [ADF-4403] - fix unit tests

* [ADF-4403] - fix e2e tests
This commit is contained in:
Silviu Popa
2019-04-23 12:00:46 +03:00
committed by Maurizio Vitale
parent fafe80c021
commit 834c32f23f
8 changed files with 45 additions and 25 deletions

View File

@@ -0,0 +1,24 @@
@mixin adf-clipboard-theme($theme) {
$primary: map-get($theme, primary);
$config: mat-typography-config();
.adf-copy-tooltip {
position: absolute;
background: mat-color($primary);
color: mat-color($primary, default-contrast) !important;
font-size: mat-font-size($config, caption);
padding: 2px 5px;
border-radius: 5px;
bottom: 93%;
left:0;
z-index: 1001;
min-height: 20px;
}
.adf-sticky-header {
.adf-copy-tooltip {
top:85% !important;
bottom:0 !important;
}
}
}

View File

@@ -72,7 +72,7 @@ describe('CopyClipboardDirective', () => {
@Component({
selector: 'adf-copy-conent-test-component',
template: `<span adf-clipboard='DOCUMENT_LIST.ACTIONS.DOCUMENT.CLICK_TO_COPY'>{{ mockText }}</span>`
template: `<span adf-clipboard>{{ mockText }}</span>`
})
class TestCopyClipboardComponent {
@@ -105,16 +105,16 @@ describe('CopyClipboardDirective', () => {
const spanHTMLElement: HTMLInputElement = <HTMLInputElement> element.querySelector('span');
spanHTMLElement.dispatchEvent(new Event('mouseenter'));
fixture.detectChanges();
expect(fixture.debugElement.nativeElement.querySelector('.adf-datatable-copy-tooltip')).not.toBeNull();
expect(fixture.debugElement.nativeElement.querySelector('.adf-copy-tooltip')).not.toBeNull();
}));
it('should not show tooltip when element it is not hovered', (() => {
const spanHTMLElement: HTMLInputElement = <HTMLInputElement> element.querySelector('span');
spanHTMLElement.dispatchEvent(new Event('mouseenter'));
expect(fixture.debugElement.nativeElement.querySelector('.adf-datatable-copy-tooltip')).not.toBeNull();
expect(fixture.debugElement.nativeElement.querySelector('.adf-copy-tooltip')).not.toBeNull();
spanHTMLElement.dispatchEvent(new Event('mouseleave'));
expect(fixture.debugElement.nativeElement.querySelector('.adf-datatable-copy-tooltip')).toBeNull();
expect(fixture.debugElement.nativeElement.querySelector('.adf-copy-tooltip')).toBeNull();
}));
it('should copy the content of element when click it', fakeAsync(() => {

View File

@@ -15,7 +15,7 @@
* limitations under the License.
*/
import { Directive, Input, HostListener, Component, ViewContainerRef, ComponentFactoryResolver, ViewEncapsulation } from '@angular/core';
import { Directive, Input, HostListener, Component, ViewContainerRef, ComponentFactoryResolver, ViewEncapsulation, OnInit } from '@angular/core';
import { ClipboardService } from './clipboard.service';
@Directive({
@@ -75,12 +75,17 @@ export class ClipboardDirective {
}
@Component({
selector: 'adf-datatable-copy-content-tooltip',
selector: 'adf-copy-content-tooltip',
template: `
<span class='adf-datatable-copy-tooltip'>{{ placeholder | translate }} </span>
<span class='adf-copy-tooltip'>{{ placeholder | translate }} </span>
`,
styleUrls: ['./clipboard.component.scss'],
encapsulation: ViewEncapsulation.None
})
export class ClipboardComponent {
export class ClipboardComponent implements OnInit {
placeholder: string;
ngOnInit() {
this.placeholder = this.placeholder || 'CLIPBOARD.CLICK_TO_COPY';
}
}