/**
|
* @file Collapsible form component base class (e.g. side panel)
|
* @description Component extended from CollapsibleForm with additional methods
|
* @author Adrian Foo (adrian.foo@3ds.com), Wong Jia Hui (jiahui.wong@3ds.com)
|
* @copyright Dassault Systèmes
|
*/
|
import { Form } from '../e2elib/lib/src/pageobjects/form.component';
|
|
export class CollapsibleForm extends Form {
|
/**
|
* @override To include checking whether the form is not collapse before execute collapse action
|
*/
|
public async collapse(): Promise<void> {
|
const isFormCollapse = await this.isCollapse();
|
|
if (!isFormCollapse) {
|
await super.collapse();
|
}
|
}
|
|
/**
|
* @override To include checking whether the form is docked before execute the dock action
|
*/
|
public async dock(): Promise<void> {
|
const isOpen = await this.isOpen();
|
const isDocked = await this.isdocked();
|
|
if (isOpen && !isDocked) {
|
await super.dock();
|
}
|
}
|
|
/**
|
* @override
|
*/
|
public async isFocused(): Promise<boolean> {
|
try {
|
const isFocused = await super.isFocused();
|
return isFocused;
|
} catch {
|
return false;
|
}
|
}
|
|
/**
|
* @override To include checking whether the form is collapse before execute restore action
|
*/
|
public async restore(): Promise<void> {
|
const isFormCollapse = await this.isCollapse();
|
const isFocused = await this.isFocused();
|
|
if (isFormCollapse || !isFocused) {
|
await super.restore();
|
}
|
await this.waitUntilPresent();
|
}
|
}
|