import { QConsole } from '../e2elib/lib/src/helper/qconsole'; 
 | 
import { frmSelectImage } from '../e2elib/lib/src/UI/WebComponentTypeLibrary/frmSelectImage'; 
 | 
import { ButtonSOP } from './buttonsop'; 
 | 
  
 | 
/** 
 | 
 * Web built-in select image dialog. 
 | 
 */ 
 | 
export class FormSelectImage extends frmSelectImage { 
 | 
  
 | 
  private readonly btnSelectImage: ButtonSOP; 
 | 
  
 | 
  public constructor(btnSelectImage: string) { 
 | 
    super(frmSelectImage._name); 
 | 
    this.btnSelectImage = new ButtonSOP(btnSelectImage); 
 | 
  } 
 | 
  
 | 
  /** 
 | 
   * Opens the select image form, finds and select the icon and click ok. 
 | 
   * Enters image name using the Search/Filter edit field, then find the image in the lists and selects it. 
 | 
   * 
 | 
   * @param name Icon name 
 | 
   */ 
 | 
  public async selectImage(name: string): Promise<void> { 
 | 
    // Open select image form by clicking select icon button. 
 | 
    await this.btnSelectImage.click(); 
 | 
    await QConsole.waitForStable(); 
 | 
  
 | 
    // Filter icon list 
 | 
    await this.efSearch._ref().sendInput(name); 
 | 
  
 | 
    // Navigate category one by one to search for the icon (on the filtered list) 
 | 
    const rowCount = await this.lstImageCategories._ref().getRowCount(); 
 | 
    let isFound = false; 
 | 
    for (let i = 0; i < rowCount; i++) { 
 | 
      await this.lstImageCategories._ref().selectListRowsByIndex([i]); 
 | 
      try { 
 | 
        await this.lstImages._ref().selectListRowsByValue([[{ columnID: ListImagesColumn.Name, value: name }]]); 
 | 
        isFound = true; 
 | 
        break; 
 | 
      } catch { 
 | 
        // do nothing 
 | 
      } 
 | 
    } 
 | 
    expect(isFound).toBe(true, `Unable to find the image name "${name}" in the select image dialog.`); 
 | 
    await this.btnOk._ref().click(); 
 | 
    await this._ref().waitUntilHidden(); // Wait dialog dismiss 
 | 
  } 
 | 
} 
 | 
  
 | 
export enum ListImagesColumn { 
 | 
  Name = 'Name', 
 | 
} 
 |