61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
export function $$(className) {
 | 
						|
  return document.body.querySelectorAll(className);
 | 
						|
}
 | 
						|
export function hasSelected(wrapper, date) {
 | 
						|
  return document.body
 | 
						|
    .querySelector(`[title="${date.format('LL')}"][role="gridcell"]`)
 | 
						|
    .getAttribute('class')
 | 
						|
    .split(' ')
 | 
						|
    .includes('ant-calendar-selected-day');
 | 
						|
}
 | 
						|
 | 
						|
export function openPanel(wrapper) {
 | 
						|
  wrapper.find('.ant-calendar-picker-input').trigger('click');
 | 
						|
}
 | 
						|
 | 
						|
export function clearInput(wrapper) {
 | 
						|
  wrapper.find('.ant-calendar-picker-clear').trigger('click');
 | 
						|
}
 | 
						|
 | 
						|
export function nextYear() {
 | 
						|
  $$('.ant-calendar-next-year-btn')[0].click();
 | 
						|
}
 | 
						|
 | 
						|
export function nextMonth() {
 | 
						|
  $$('.ant-calendar-next-month-btn')[0].click();
 | 
						|
}
 | 
						|
 | 
						|
export function selectDateFromBody(date, index) {
 | 
						|
  let calendar = document.body;
 | 
						|
  if (index !== undefined) {
 | 
						|
    calendar = document.body.querySelectorAll('.ant-calendar-range-part')[index];
 | 
						|
  }
 | 
						|
  calendar.querySelector(`[title="${date.format('LL')}"][role="gridcell"]`).click();
 | 
						|
}
 | 
						|
 | 
						|
export function openPicker(wrapper, index = 0) {
 | 
						|
  wrapper.findAll('input')[index].trigger('mousedown');
 | 
						|
  wrapper.findAll('input')[index].trigger('focus');
 | 
						|
}
 | 
						|
export function closePicker(wrapper, index = 0) {
 | 
						|
  wrapper.findAll('input')[index].trigger('blur');
 | 
						|
}
 | 
						|
 | 
						|
export function selectCell(wrapper, text, index = 0) {
 | 
						|
  let matchCell;
 | 
						|
  $$('table')
 | 
						|
    [index].querySelectorAll('td')
 | 
						|
    .forEach(td => {
 | 
						|
      if (td.textContent === String(text) && td.className.includes('-in-view')) {
 | 
						|
        matchCell = td;
 | 
						|
        td.click('click');
 | 
						|
      }
 | 
						|
    });
 | 
						|
 | 
						|
  if (!matchCell) {
 | 
						|
    throw new Error('Cell not match in picker panel.');
 | 
						|
  }
 | 
						|
 | 
						|
  return matchCell;
 | 
						|
}
 |