/** 
 | 
 * @file        S&OP Form component to wrap common methods the team encounter during development 
 | 
 * @description Form class extending libappbase's Form. 
 | 
 * All S&OP page objects inherit from our own class (inheriting e2e/libappbase), but we can propose common methods to them. 
 | 
 * @author      Clarence (clarence.chan@3ds.com) 
 | 
 * @copyright   Dassault Systèmes 
 | 
 */ 
 | 
import { ElementFinder } from '../e2elib/node_modules/protractor/built'; 
 | 
import { QForm } from '../e2elib/lib/api/pageobjects/qform.component'; 
 | 
  
 | 
export class FormSOP extends QForm { 
 | 
  public constructor(componentPath: string, isCustomPath?: boolean, elementObj?: ElementFinder) { 
 | 
    super(componentPath, isCustomPath, elementObj); 
 | 
  } 
 | 
  
 | 
  public async openDockedForm(): Promise<void> { 
 | 
    // Check if form is close 
 | 
    if (await this.isOpen(false)) { 
 | 
      await this.restore(); 
 | 
    } 
 | 
    await this.waitUntilPresent(); 
 | 
  } 
 | 
 } 
 | 
  
 | 
// Step description to re-use in spec file to prevent scriptor re-write each time 
 | 
const stepForm = { 
 | 
  clickPanel: (formName: string, panelName: string): string => `In form "${formName}", click the panel "${panelName}".`, 
 | 
}; 
 | 
  
 | 
export { stepForm as StepForm }; 
 |