import 'codeceptjs'; import { TextField } from "./textfield"; import { CommonKeyword } from "./commonKeyword"; import { DewLoader } from './dewLoader'; import { logger } from '../Logger/logger'; // import { Wait } from './dewWait'; /** * Modal Close Button class */ export class ModalPopUp { /** * AutoComplete for Grid Search in Modal Popup * * ```js * ModalPopUp.applyGridSearch("Search","Project_123","Project Name"); * ``` * * @param {string} inputPlaceHolder searchbox placeholder * @param {String} dataToSearch value * @param {String} dataCategory type */ static async applyGridSearch(inputPlaceHolder: string, dataToSearch: string | number, dataCategory: string) { try { await TextField.enterTextUsingLocator(`//dew-modal[contains(@class,'show')]//input[@placeholder[normalize-space()='${inputPlaceHolder}']]`, dataToSearch); /* await TextField.enterTextUsingPlaceHolder(inputPlaceHolder, dataToSearch); await Wait.waitForDefaultTimeout(5); */ // await Wait.waitUntilVisibilityOfElement(`.//dew-modal[contains(@class,'show')]//span[@title='${dataToSearch}']/following-sibling::span[@title='${dataCategory}']`); await CommonKeyword.clickElement(`.//dew-modal[contains(@class,'show')]//span[@title='${dataToSearch}']/following-sibling::span[@title='${dataCategory}']`); await DewLoader.waitForSpinner(); } catch (error) { logger.log(`Issue while performing operation in DDCC: Error while applying search in modal popup`); throw error; } } /** * Click Label In the modal popup * * ```js * ModalPopUp.clickLabel("Create"); * ``` * @param {String} labelName Button label */ static async clickLabel(labelName: string) { // await CommonKeyword.clickLabel(labelName); await CommonKeyword.clickElement(`//dew-modal[contains(@class,'show')]//*[text()[normalize-space()='${labelName}']]`); } /** * Click Element In the modal popup * * ```js * ModalPopUp.clickElement("Create"); * * ``` * * @param {*} locator Located By XPath|CSS */ static async clickElement(locator: string) { const newLocator = `.//dew-modal[contains(@class,'show')]${locator}`; await CommonKeyword.clickElement(newLocator); } /** * Click Close Button In the modal popup * * ```js * ModalPopUp.clickCloseButton(); * * ``` */ static async clickCloseButton() { await CommonKeyword.clickElement(`.//dew-modal[contains(@class,'show')]//button[@aria-label='close-modal']`); } }