import { PanelBase } from '../../libappbase/panelbase'; 
 | 
import { DialogSOP } from '../../libappsop/dialogsop'; 
 | 
import { DropDownListSOP } from '../../libappsop/dropdownlistsop'; 
 | 
import { EditFieldSOP } from '../../libappsop/editfieldsop'; 
 | 
import { DateTimeSelectorSOP } from '../../libappsop/datetimeselectorsop'; 
 | 
import { CheckboxSOP } from '../../libappsop/checkboxsop'; 
 | 
import { RadioButtonSOP } from '../../libappsop/radiobuttonsop'; 
 | 
  
 | 
export interface DialogUnitFields { 
 | 
  Name?: string; 
 | 
  Parent?: string; 
 | 
  CapacityType?: string; 
 | 
  StartEnabled?: string; 
 | 
  Start?: string; 
 | 
  EndEnabled?: string; 
 | 
  End?: string; 
 | 
  // Advanced tab fields 
 | 
  BatchEditShiftPatternOpt?: string; 
 | 
  ShiftPatternOpt?: string; 
 | 
} 
 | 
  
 | 
export class DialogUnit extends DialogSOP<DialogUnitFields> { 
 | 
  public static readonly title = 'Unit'; 
 | 
  
 | 
  public ddlParent = new DropDownListSOP('selParentUnit'); 
 | 
  public efName = new EditFieldSOP('EditFieldName'); 
 | 
  public rbgCapacityType = new RadioButtonSOP('RadioButtonGroupCapacityType'); 
 | 
  public pnlGeneral = new PanelBase('PanelGeneral'); 
 | 
  public pnlAdvanced = new PanelBase('PanelAdvanced'); 
 | 
  public cbHasStart = new CheckboxSOP('CheckboxHasStart'); 
 | 
  public cbHasEnd = new CheckboxSOP('CheckboxHasEnd'); 
 | 
  public dtsStart = new DateTimeSelectorSOP('dsStart'); 
 | 
  public dtsEnd = new DateTimeSelectorSOP('dsEnd'); 
 | 
  // Advanced tab fields 
 | 
  public cbBatchEditShiftPatternOpt = new CheckboxSOP('CheckBoxBatchEditUseShiftPatternOptimization'); 
 | 
  public cbShiftPatternOpt = new CheckboxSOP('CheckboxUseShiftPatternOptimization'); 
 | 
  
 | 
  public constructor() { 
 | 
    super('DialogCreateEditUnit'); 
 | 
  
 | 
    // Set UI element mapping to pair the UI name to the UI element for use in DialogSOP to find the UI object to set value or verify value 
 | 
    // This prevents each new Dialog to duplicate code just to set/verify UI element value 
 | 
    this._uiMap.set('Name', this.efName); 
 | 
    this._uiMap.set('Parent', this.ddlParent); 
 | 
    this._uiMap.set('CapacityType', this.rbgCapacityType); 
 | 
    this._uiMap.set('StartEnabled', this.cbHasStart); 
 | 
    this._uiMap.set('Start', this.dtsStart); 
 | 
    this._uiMap.set('EndEnabled', this.cbHasEnd); 
 | 
    this._uiMap.set('End', this.dtsEnd); 
 | 
    // Advanced tab fields 
 | 
    this._uiMap.set('BatchEditShiftPatternOpt', this.cbBatchEditShiftPatternOpt); 
 | 
    this._uiMap.set('ShiftPatternOpt', this.cbShiftPatternOpt); 
 | 
  } 
 | 
} 
 | 
  
 | 
/** 
 | 
 * Expected tooltip for OK button when disabled. 
 | 
 */ 
 | 
export const okButtonDisabledTooltip = { 
 | 
  // Partial prefix indicates precondition defined partially thus use partial match when verifying. 
 | 
  partialEndLaterThanStart: (startDate: string, endDate: string): string => `End (${endDate}) must be later than start (${startDate}).`, 
 | 
}; 
 |