/** 
 | 
 * @file          Common Calendar Event List Panel 
 | 
 * @author        Wong Jia Hui (jiahui.wong@3ds.com) 
 | 
 */ 
 | 
import { ListSOP } from '../../../libappsop/listsop'; 
 | 
import { PanelSOP } from '../../../libappsop/panelsop'; 
 | 
import { DialogCalendarEvent } from '../../dialogs/calendarevent/dialog.calendarevent'; 
 | 
import { DialogDummy } from '../../dialogs/dialog.dummy'; 
 | 
import { FormCommonCalendar } from './form.commoncalendar'; 
 | 
  
 | 
export class PanelCommonEventsList extends PanelSOP { 
 | 
  public static readonly title = 'Common Calendar Events (List)'; 
 | 
  public listCommonEvent = new ListCommonEvent(); 
 | 
  public listCommonEventOccurrence = new ListCommonEventOccurrence(); 
 | 
  
 | 
  public constructor() { 
 | 
    super(`${FormCommonCalendar.componentName}.pnlCommonCalendar.tabEventsAndOccurrences`); 
 | 
  } 
 | 
  
 | 
  /** 
 | 
   * @override Additionally wait for lists to be present (Events and Occurrences) 
 | 
   */ 
 | 
  public async clickTab(): Promise<void> { 
 | 
    await super.clickTab(); 
 | 
    await this.listCommonEvent.waitUntilPresent(); 
 | 
    await this.listCommonEventOccurrence.waitUntilPresent(); 
 | 
  } 
 | 
} 
 | 
  
 | 
export class ListCommonEvent extends ListSOP<DialogCalendarEvent, ListCommonEventColumn> { 
 | 
  public static readonly title = 'Events'; 
 | 
  
 | 
  public constructor() { 
 | 
    super(`${FormCommonCalendar.componentName}.pnlCommonCalendar.tabEventsAndOccurrences.lstParticipations`, new DialogCalendarEvent()); 
 | 
  } 
 | 
} 
 | 
  
 | 
export class ListCommonEventOccurrence extends ListSOP<DialogDummy, ListCommonEventOccurrenceColumn> { 
 | 
  public static readonly title = 'Occurrence'; 
 | 
  
 | 
  public constructor() { 
 | 
    super(`${FormCommonCalendar.componentName}.pnlCommonCalendar.tabEventsAndOccurrences.pnlEventsAndOccurrences.pnlOccurrences.lstOccurrences`, new DialogDummy()); 
 | 
  } 
 | 
} 
 | 
  
 | 
export interface ListCommonEventColumn { 
 | 
  Category?: string; // Event category name (level 1 row) 
 | 
  Name?: string; // Event name (level 2 row) 
 | 
  NrOfOccurrences?: string; // Level 2 row 
 | 
} 
 | 
  
 | 
export interface ListCommonEventOccurrenceColumn { 
 | 
  Start?: string; 
 | 
  End?: string; 
 | 
} 
 | 
  
 | 
const listCommonEventContextMenuItem = { 
 | 
  CreateEvent: { ContextMenu: 'cmEventParticipationsWithoutSubscription', Name: 'mnuCreateEventWS', Label: 'Create event' }, 
 | 
  EditEvent: { ContextMenu: 'cmEventParticipationsWithoutSubscription', Name: 'mnuEditEventWS', Label: 'Edit event' }, 
 | 
  DeleteEvent: { ContextMenu: 'cmEventParticipationsWithoutSubscription', Name: 'mnuDeleteEventWS', Label: 'Delete event' }, 
 | 
}; 
 | 
  
 | 
export { listCommonEventContextMenuItem as ListCommonEventContextMenuItem }; 
 |