mirror of https://github.com/Squidex/squidex.git
8 changed files with 4 additions and 155 deletions
@ -1,32 +0,0 @@ |
|||||
/* |
|
||||
* Squidex Headless CMS |
|
||||
* |
|
||||
* @license |
|
||||
* Copyright (c) Sebastian Stehle. All rights reserved |
|
||||
*/ |
|
||||
|
|
||||
import { CloakDirective } from './cloak.directive'; |
|
||||
|
|
||||
describe('CloakDirective', () => { |
|
||||
it('should remove class from element on ngOnInit', () => { |
|
||||
let called = false; |
|
||||
|
|
||||
const element = { |
|
||||
nativeElement: {} |
|
||||
}; |
|
||||
|
|
||||
const renderer = { |
|
||||
setElementClass: (target: any, className: string, isAdd: boolean) => { |
|
||||
called = true; |
|
||||
|
|
||||
expect(target).toBe(element.nativeElement); |
|
||||
expect(className).toBe('sqx-cloak'); |
|
||||
expect(isAdd).toBeFalsy(); |
|
||||
} |
|
||||
}; |
|
||||
|
|
||||
new CloakDirective(<any>element, <any>renderer).ngOnInit(); |
|
||||
|
|
||||
expect(called).toBeTruthy(); |
|
||||
}); |
|
||||
}); |
|
||||
@ -1,23 +0,0 @@ |
|||||
/* |
|
||||
* Squidex Headless CMS |
|
||||
* |
|
||||
* @license |
|
||||
* Copyright (c) Sebastian Stehle. All rights reserved |
|
||||
*/ |
|
||||
|
|
||||
import { Directive, ElementRef, OnInit, Renderer } from '@angular/core'; |
|
||||
|
|
||||
@Directive({ |
|
||||
selector: '[sqxCloak]' |
|
||||
}) |
|
||||
export class CloakDirective implements OnInit { |
|
||||
constructor( |
|
||||
private readonly element: ElementRef, |
|
||||
private readonly renderer: Renderer |
|
||||
) { |
|
||||
} |
|
||||
|
|
||||
public ngOnInit() { |
|
||||
this.renderer.setElementClass(this.element.nativeElement, 'sqx-cloak', false); |
|
||||
} |
|
||||
} |
|
||||
@ -1,53 +0,0 @@ |
|||||
/* |
|
||||
* Squidex Headless CMS |
|
||||
* |
|
||||
* @license |
|
||||
* Copyright (c) Sebastian Stehle. All rights reserved |
|
||||
*/ |
|
||||
|
|
||||
import { ElementRef, Renderer } from '@angular/core'; |
|
||||
|
|
||||
import { FocusOnChangeDirective } from './focus-on-change.directive'; |
|
||||
|
|
||||
describe('FocusOnChangeDirective', () => { |
|
||||
let originalTimeout = 0; |
|
||||
|
|
||||
beforeEach(() => { |
|
||||
originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL; |
|
||||
|
|
||||
jasmine.DEFAULT_TIMEOUT_INTERVAL = 800; |
|
||||
}); |
|
||||
|
|
||||
it('should call focus on element when value changes', (done: any) => { |
|
||||
const calledMethods: string[] = []; |
|
||||
const calledElements: any[] = []; |
|
||||
|
|
||||
const renderer = { |
|
||||
invokeElementMethod: (elem: any, method: any, args: any) => { |
|
||||
calledElements.push(elem); |
|
||||
calledMethods.push(method); |
|
||||
} |
|
||||
}; |
|
||||
|
|
||||
const element: ElementRef = { |
|
||||
nativeElement: {} |
|
||||
}; |
|
||||
|
|
||||
const directive = new FocusOnChangeDirective(element, renderer as Renderer); |
|
||||
directive.select = true; |
|
||||
directive.ngOnChanges(); |
|
||||
|
|
||||
expect(calledMethods).toEqual([]); |
|
||||
|
|
||||
setTimeout(() => { |
|
||||
expect(calledMethods).toEqual(['focus', 'select']); |
|
||||
expect(calledElements).toEqual([element.nativeElement, element.nativeElement]); |
|
||||
|
|
||||
done(); |
|
||||
}, 400); |
|
||||
}); |
|
||||
|
|
||||
afterEach(() => { |
|
||||
jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout; |
|
||||
}); |
|
||||
}); |
|
||||
@ -1,35 +0,0 @@ |
|||||
/* |
|
||||
* Squidex Headless CMS |
|
||||
* |
|
||||
* @license |
|
||||
* Copyright (c) Sebastian Stehle. All rights reserved |
|
||||
*/ |
|
||||
|
|
||||
import { Directive, ElementRef, Input, OnChanges, Renderer }from '@angular/core'; |
|
||||
|
|
||||
@Directive({ |
|
||||
selector: '[sqxFocusOnChange]' |
|
||||
}) |
|
||||
export class FocusOnChangeDirective implements OnChanges { |
|
||||
@Input() |
|
||||
public sqxFocusOnChange: any; |
|
||||
|
|
||||
@Input() |
|
||||
public select: boolean; |
|
||||
|
|
||||
constructor( |
|
||||
private readonly element: ElementRef, |
|
||||
private readonly renderer: Renderer |
|
||||
) { |
|
||||
} |
|
||||
|
|
||||
public ngOnChanges() { |
|
||||
setTimeout(() => { |
|
||||
this.renderer.invokeElementMethod(this.element.nativeElement, 'focus', []); |
|
||||
|
|
||||
if (this.select) { |
|
||||
this.renderer.invokeElementMethod(this.element.nativeElement, 'select', []); |
|
||||
} |
|
||||
}, 100); |
|
||||
} |
|
||||
} |
|
||||
Loading…
Reference in new issue