| import { Toast } from '../e2elib/lib/src/pageobjects/toast/toast'; | 
| import { QToastType } from '../e2elib/lib/src/pageobjects/toast/toastmessage.component'; | 
| import { browser } from '../e2elib/node_modules/protractor/built'; | 
|   | 
| export class ToastGlobal extends Toast { | 
|   private static _toast: ToastGlobal; | 
|   | 
|   /** | 
|    * Returns the singleton instance of Toast. | 
|    * | 
|    * @returns singleton instance of Toast | 
|    */ | 
|   public static getInstance(): ToastGlobal { | 
|     if (this._toast === undefined) { | 
|       this._toast = new ToastGlobal(); | 
|     } | 
|     return this._toast; | 
|   } | 
|   | 
|   /** | 
|    * Click on toast button | 
|    * | 
|    * @param value type of button to click (using ButtonType enum) | 
|    */ | 
|   public async clickToastButton(value: ButtonType): Promise<void> { | 
|     await this.getToastMessageBox().clickToastButton(value); | 
|   } | 
|   | 
|   /** | 
|    * Close the last toast message box | 
|    * | 
|    */ | 
|   public async closeLastToast(): Promise<void> { | 
|     await this.waitForToast(); | 
|     await this.getToastMessageBox().close(); | 
|   } | 
|   | 
|   /** | 
|    * Get the message of last toast box | 
|    * | 
|    */ | 
|   public async getLastToastMessage(): Promise<string> { | 
|     await this.waitForToast(); | 
|     return this.getToastMessageBox().getMessage(); | 
|   } | 
|   | 
|   /** | 
|    * Check whether the type of last toast box is same as pass-in type | 
|    * | 
|    * @param toastType expected type of the toast message box | 
|    * @param waitTime [Default = 10] the duration (in seconds) to wait for the toast message box to show up | 
|    * @returns true if the last toast type is same as pass-in toast type, false otherwise | 
|    */ | 
|   public async verifyLastToastType(toastType: QToastType, waitTime?: number): Promise<boolean> { | 
|     await this.waitForToast(waitTime); | 
|     return (await this.getToastMessageBox().getType()) === toastType; | 
|   } | 
|   | 
|   /** | 
|    * Wait for toast message box to show up | 
|    * | 
|    * @param durationInSecond the duration to wait for the toast message box to show up | 
|    */ | 
|   public async waitForToast(durationInSecond: number = 10): Promise<void> { | 
|     await browser.wait(async () => (await this.toastMessageBoxCount()) > 0, durationInSecond * 1000, `No toast message box shows up within ${durationInSecond} seconds`); | 
|   } | 
| } | 
|   | 
| export enum ButtonType { | 
|   Yes = 'Yes', | 
|   No = 'No', | 
| } |