import { lmt } from "../../Helpers/readI18NProp"; import { CommonKeyword } from "../commonKeyword"; import { logger } from '../../Logger/logger'; import { SelectDropdown } from '../selectDropdown'; import { DewElement } from "../element"; /** * Calendar works */ export class ClassicDatePicker { /** * To select today's date * * ```js * * await ClassicDatePicker.selectToday("//input[@aria-label='date']") * ``` * * @param {String} locator located by CSS|XPath|strict locator. * */ static async selectToday(locator: string) { try { await CommonKeyword.clickElement(locator); await CommonKeyword.click(`.//td[contains(@class,'ui-datepicker-today')]/a`); } catch (error) { logger.log(`Issue while performing operation in DDCC: Error while selecting todays date`); throw error; } } /** * To select date * * ```js * * await ClassicDatePicker.selectDate("//input[@aria-label='date']","01/25/2020") * ``` * * @param {String} locator located by CSS|XPath|strict locator. * @param {String} date in MM/DD/YYYY date format */ static async selectDate(locator: string, date: string) { try { const detailsAPI: any = await lmt.getUserLangCode(); const lang: string = detailsAPI[`langCode`]; const langValue = lang.replace(`_`, `-`); const dateObj = new Date(Date.parse(date)); const month = dateObj.toLocaleString(`en-GB`, { month: `short` }); // months from 1-12 const day = dateObj.getDate().toLocaleString(langValue); const year = dateObj.getFullYear().toLocaleString(langValue) .replace(`,`, ``); await CommonKeyword.clickElement(locator); await selectYear(year.toString()); await selectMonth(await lmt.getLabel(month)); await selectDay(day.toString()); } catch (error) { logger.log(`Issue while performing operation in DDCC: Error while selecting date`); throw error; } } } /** * Select Year from calender * * @param {string} year */ async function selectYear(year: string) { try { await SelectDropdown.selectByLocator(`.//select[contains(@class,'ui-datepicker-year')]/option[text()='${year}']`); } catch (error) { logger.log(`Issue while performing operation in DDCC: Error while selecting Year`); throw error; } } /** * Select Month from calender * * @param {string} month */ async function selectMonth(month: string) { try { await SelectDropdown.selectByLocator(`.//select[contains(@class,'ui-datepicker-month')]/option[text()='${month}']`); } catch (error) { logger.log(`Issue while performing operation in DDCC: Error while selecting month`); throw error; } } /** * Select Day from calender * * @param {string} day * @param {boolean} IEClick */ async function selectDay(day: string) { try { await DewElement.verifyIfISeeElement(`#ui-datepicker-div`); await CommonKeyword.click(`//td[@data-handler="selectDay"]/a[text()='${day}']`); } catch (error) { logger.log(`Issue while performing operation in DDCC: Error while selecting day`); throw error; } }