| /** | 
|  * @file Context Menu component base class | 
|  * @description Allow to check whether Menu Item in Context menu is clickable. | 
|  * @author      Wong Jia Hui (jiahui.wong@3ds.com) | 
|  * @copyright   Dassault Systèmes | 
|  */ | 
| import { ContextMenu } from '../e2elib/lib/src/pageobjects/contextmenu/contextmenu.component'; | 
|   | 
| export class ContextMenuBase extends ContextMenu { | 
|   /** | 
|    * To check if a menu item in context menu is able to click | 
|    * | 
|    * @param menuItemName Name of target menu item | 
|    * @param waitTime [Default = 1000] miliseconds of how long it should wait for Menu Item in context menu to be clickable. | 
|    * @return boolean to indicate whether pass-in menu item is clickable | 
|    */ | 
|   public async isMenuItemClickable(menuItemName: string | string[], waitTime: number = 1000): Promise<boolean> { | 
|     await this.waitForScreenUpdate(waitTime); | 
|   | 
|     return !(await this.isDisabled(menuItemName)); | 
|   } | 
|   | 
|   /** | 
|    * To verify if pass-in menu item in context menu is clickable | 
|    * | 
|    * @param menuItemName Name of target menu item | 
|    * @return An array of combination of boolean and string, where boolean indicate whether the menuItem is clickable and string inidcate the disabled tooltip | 
|    */ | 
|   public async verifyIsMenuItemClickable(menuItemName: string | string[]): Promise<[boolean, string]> { | 
|     let contextMenuDisabledTooltip = ''; | 
|     const isClickable = await this.isMenuItemClickable(menuItemName); | 
|     if (!isClickable) { | 
|       contextMenuDisabledTooltip = await this.getToolTip(menuItemName); | 
|     } | 
|     return [isClickable, contextMenuDisabledTooltip]; | 
|   } | 
| } |