import { DropDownListSOP } from '../../../libappsop/dropdownlistsop'; 
 | 
import { LabelSOP } from '../../../libappsop/labelsop'; 
 | 
import { NumberPickerSOP } from '../../../libappsop/numberpickersop'; 
 | 
import { PanelSOP } from '../../../libappsop/panelsop'; 
 | 
  
 | 
/** 
 | 
 * Panel period in left navigation panel. 
 | 
 * Set the period specification to filter forms data as well as set number of past and future periods to display. 
 | 
 */ 
 | 
export class PanelPeriod extends PanelSOP { 
 | 
  public lblStartOfPlanning = new LabelSOP('LabelStartOfPlanning'); 
 | 
  public ddlPeriodGranularity = new DropDownListSOP('DropDownListNavPeriodSpecification'); 
 | 
  public nmpNumFuturePeriods = new NumberPickerSOP('NumberPickerShowFuture'); 
 | 
  public nmpNumHistoricalPeriods = new NumberPickerSOP('NumberPickerShowPast'); 
 | 
  
 | 
  public constructor() { 
 | 
    super('PanelNavPeriod'); 
 | 
  } 
 | 
  
 | 
  /** 
 | 
   * Set number of future periods to be shown in the app (direct edit the number picker text field). 
 | 
   * 
 | 
   * @param numPeriods Number of periods to show. 
 | 
   */ 
 | 
  public async setNumFuturePeriods(numPeriods: string): Promise<void> { 
 | 
    await this.nmpNumFuturePeriods.setValue(numPeriods); 
 | 
  } 
 | 
  
 | 
  /** 
 | 
   * Set number of historical periods to be shown in the app (direct edit the number picker text field). 
 | 
   * 
 | 
   * @param numPeriods Number of periods to show. 
 | 
   */ 
 | 
  public async setNumHistoricalPeriods(numPeriods: string): Promise<void> { 
 | 
    await this.nmpNumHistoricalPeriods.setValue(numPeriods); 
 | 
  } 
 | 
  
 | 
  /** 
 | 
   * Set the period specification to be used to filter the app. 
 | 
   * Use the enum provided in data.period.ts which includes the system period specification named 'Planning periods'. 
 | 
   * 
 | 
   * @param periodSpecification Period specification to select. 
 | 
   */ 
 | 
  public async setPeriodGranularity(periodSpecification: string): Promise<void> { 
 | 
    await this.ddlPeriodGranularity.selectItemSOP(periodSpecification); 
 | 
  } 
 | 
} 
 | 
  
 | 
// Step description to re-use in spec file to prevent scriptor re-write each time 
 | 
const stepNavigationPanelPeriod = { 
 | 
  setNumFuturePeriods: (numFuturePeriods: number): string => `In left Navigation panel (Period panel), set number future periods = ${numFuturePeriods}.`, 
 | 
  setNumHistoricalPeriods: (numHistoricalPeriods: number): string => `In left Navigation panel (Period panel), set number historical periods = ${numHistoricalPeriods}.`, 
 | 
  setPeriodGranularity: (periodSpecName: string): string => `In left Navigation panel (Period panel), select period granularity = '${periodSpecName}'.`, 
 | 
}; 
 | 
  
 | 
export { stepNavigationPanelPeriod as StepNavigationPanelPeriod }; 
 |